Last updated:— ·
Source:TRP-PI portal + TRP-Ins (Athena) commercial
Filter by Attorney:
🔍 —
Default = all attorneys. Filter scopes the waterfall + summary cards.
TRP Payment Waterfall
Cash collected by date-of-service year
🧾TRP Portal AR Buckets — Vintage Aging
Source:
Vintage Year
Case Count
Gross Charges
Net (32%)
Payments
Balance
% Collected
TRP Charge Summary
global source applies until you click one
TRP Payment Summary
global source applies until you click one
TRP Cases by Vintage
global source applies until you click one
TRP Revenue Trend by Year
HST Billing Trend by Year
Monthly Charges & Collections (TRP)
Collection Rate by Year
📊 Collection Rate Detail — Actuals by Vintage
Projection assumption: Forward projections apply a 32% blended collection rate to gross charges, calibrated from the lifetime collection rates of mature vintages (2018–2020 averaged ≈29.7%). Recent vintages (2024–2026) have not yet matured — their current rates are intentionally low and will rise as cases settle.
Rows marked Complete have zero open balance and are excluded from forward projections.
TRP Payer Mix
HST Financial Class Mix
Top Attorney Firms by Total Amount
Rank
Attorney Name
Total Amount
Transactions
Projected Payment Waterfall — Vintage × Month
Loading vintage × month waterfall…
▸ 12-month linear forecast (envelope / Holt-Winters / blended)
Month
Envelope mid
Holt-Winters mid
Blended (likely)
Band (low – high)
Basis
Projected Revenue Trend (Charges vs Collections — TTM + Next 12 Mo)
Projected Collections — Envelope vs Holt-Winters vs Blended
Monthly Charges & Collections — Actual + Projected
Projected Collection Rate by Vintage — Current vs EOY
Projected Payer Mix (weighted by capture rate)
Projected Vintage Contribution — Next 12 Months
🎯Projected AR Collection by Vintage — Through EOY
Vintage Year
Case Count
Gross Charges
Net (32%)
Payments YTD
Expected thru EOY
Projected EOY Total
Balance @ EOY
% Collected @ EOY
Projected Charges — Next 12 Months
Projected Payments — Next 12 Months
Projected Cases & Balance by Vintage
Top Attorney Firms — Projected Collections (Next 12 Months)
Monthly Conversion Trend — consult month vs % converted
By Provider · min 5 cases · sorted by volume
Group by:Loading…
Provider
Cases
Converted
%
Avg Days
Case Volume Growth by Year
Monthly Transaction & Case Volume
Revenue by Visit Type (TRP)
Revenue by Facility (Top 10)
Top Physicians - TRP (by Revenue)
Top Physicians - HST (by Revenue)
HST Entity Summary
Entity Name
Total Amount
Transaction Count
Search Accounts
Enter filters to search. Data will load on first search.
Loading case data...
Source
Patient
DOB
DOS
Attorney
Provider
Facility
Charges
Net (32%)
Payments
Balance
Age
Bucket
Status
📈 Projections — Forward-Looking Cash & AR
How to read this page
Two side-by-side projections of what each vintage year will collect by year-end:
• Formula — simple, deterministic. Uses each vintage's own realized collection rate, scaled 20–60%, applied to Open AR. Conservative and stable.
• Curve — data-driven. Uses the empirical collection-rate curve fit across all historical cohorts to estimate remaining cash at each vintage's current age. Remaining = $ expected to be collected between today and 12/31. EOY Total = Payments-to-date + Remaining. Δ = Curve EOY − Formula EOY (green = curve higher, red = curve lower).
Projected Payment Waterfall by Vintage
Vintage
Actuals to date
Formula projection
Curve projection
Δ Curve − Formula
Cases
Charges
Net (32%)
Payments
Open AR
Remaining thru 12/31
EOY Total payments + remaining
Remaining thru 12/31
EOY Total payments + remaining
Projected AR Buckets — Per-Vintage What-If
Vintage
Cases
Open AR
Formula %
Curve %
Effective %
Expected $
Actions
Account Status by Vintage Year
Vintage Year
Open — No Pay
Open — With Pay
Closed — With Pay
Closed — No Pay
Total Cases
Modal
💰 PI Collections — PI Attorneys Who Should Pay
Ranked by payment cadence + outstanding gross + seasonal expectation. Call order: URGENT → DUE → HIDING → FOLLOW UP.
Click any tile to drill into that group of accounts in the Call List.
Tune the 5-component score weights. Weights must sum to 100.
Score Weights
30
20
20
15
15
Total: 100 / 100
✓
How the score works
-
Referring Sources
-
New This Month
-
Hot Sources
-
At-Risk Sources
-
Dormant Sources
-
Activities (This Month)
Temperature Distribution
ReferringHotWarmColdDormantAt-Risk
Top Producers (Last 12 Months)
Loading...
Name
Score
Temp
Cases 12M
Gross Charges
Collected %
Last DOS
Last Touch
Need Attention
Loading...
Name
Score
Temp
Risk Level
Days Since DOS
Next Follow-up
Action
🔮 Revenue at Risk — Attorneys with >20% Projected Cash Decline (next 30d vs trailing avg)
Pulled from the same attorney-level payment curves as the Revenue → Projections view. Flagged attorneys are predicted to pay materially less than their recent average — intervene before revenue drops.
Loading projection data...
Attorney
Tier
Open AR
Trailing cash/mo
Projected 30d
Δ%
$ at Risk (90d)
Revenue — By Doctor
Money view: charges, collections, AR, collection-rate per doctor (internal + external)
▸ KPI Summary (click to expand)+
Personal Injury — Monthly PivotInternal doctors · PI only · Volume & Charges by DoS · Payments by calendar date
Metric:
Loading pivot…
Doctor-level P&L — sorted by open AR
Loading per-doctor data...
Doctor
Internal?
Cases
Gross Charges
Collections
Open AR
Coll %
MTD Cash
YTD Cash
Proj EoY Cash
Add Doctor to Internal Roster
Flag a physician as internal — they'll appear in the Personal Injury pivot and internal-only scope filters.
Operations — By Doctor
Per-doctor visit volume, revenue, and payment rate — spot high-volume doctors and fluff-case patterns
Doctor volume & productivity
Loading doctor roster...
Doctor
Internal?
Active Cases
Closed Cases
Total Visits
Unique Patients
Avg Case Age (days)
YTD New Cases
Operations — Volume
Case / patient / visit throughput trends (no dollar amounts — operational only)
Monthly new cases + visits
Top referral sources (by case count)
Loading...
Referring Provider / Attorney
Cases (12mo)
Cases (YTD)
MoM Change
Admin — Operations Settings
Tunables and mappings that drive the COO 90-Day Forecast + the Monday COO Rounds email.
Saved.
1. Forecast Settings
2. Procedure Classification Mapping
Source value
Facility pattern
Category
Confidence
Notes
Loading…
3. Internal Doctor Roster
Source-of-truth list. Loaded from internal_doctor_roster. Add/remove handled via the existing roster ingest pipeline.
5. Availability & Time OffRecurring doctor schedule + dated absences
Source of truth for doctor working hours, MACC/Surgery/Local Procedure block assignments, and time off (PTO, depositions, conferences, court days, sick).
Recurring schedule lives in ops_doctor_availability. Upload as a CSV/XLSX with columns: doctor, day_of_week, block_start, block_end, block_type, facility, effective_from, effective_to.
Dated absences live in ops_doctor_time_off. Columns: doctor, start_date, end_date, reason, facility_affected, notes.
Whole-clinic closures live in ops_clinic_closures. Columns: date, facility, status, description.
📥 Schedule template — request from admin
Block Type values: Clinic / Local Procedure / MACC / Surgery / Admin / Off. MACC blocks must have Facility = 1900 CSC. Local Procedure can be at Gaylord, Beaumont, or 1900 CSC.
6. COO Rounds Email SettingsScheduled: Mon 12:00 UTC (7:00 AM CDT)
Email
Name
Active
Test only
Last sent
Loading…
7. Audit Log
When
Actor
Table
Action
Field
New value
Loading…
Admin — Duplicate Entities
Entity type:
Status:
Loading...
Pending Duplicate Candidates
Name A
Occurrences A
Name B
Occurrences B
Similarity
Action
Loading...
Browse all entities (search + manual merge)
Canonical Name
Aliases
Transaction Count
Created
Action
Loading...
Merge entities
TRP — INVESTOR BRIEFING
Where we are going
ENTITY:
TRP Cash Waterfall — Projections
Editable what-if forecasts — click Gross or Rate cells to edit; saves to this browser only.
Cash Waterfalls — Editable What-if Forecasts.
Loaded from TRP Combined Personal Injury Cash Waterfall as of Dec 2025.xlsx.
Edit Gross Charge or Rate; Net, row totals, column totals, and Collection % recalc live. Click Save to persist to this browser.
Edit Net Charge Rate
Applied as the expected collectable fraction of gross charges across all calculations (Projections, AR, charts, exports).
%
Current: 32% • Default: 32%
↑↓ NavigateEnter SelectEsc Close
📌 Pinned
Details
ScopeAll scopes
📞 Call Sheet — who to call right now
Plain English. Sorted with the most urgent at top.
Loading…
Loading scope…
Loading freshness…
Promise health (90d):Total:—Kept rate:—Broken:—Unreachable rate:—Avg open-promise age:—
Case NegotiationsLoading…Click to expand · settlements awaiting payment
Top Attorneys by Outstanding Settlement
Attorney
Cases
Outstanding
Agreed Total
Avg Haircut
Loading…
Recently Agreed (most recent 25)
Case ID
Attorney
Agreed Date
Charges
Agreed
Balance
Status
Loading…
Log Contact —
Record Promise-to-Pay —
Set Collection Tier —
Upload Settled Report
Drop the weekly settled-cases XLSX. The most recent upload becomes the active source for the Settled queue; all prior uploads are kept for audit but marked inactive.
Methodology: HST reversals are applied to the category they reverse. Charge reversals reduce charges. Payment reversals reduce payments (adding AR back). Adjustment reversals reduce adjustments (adding AR back). Only unknown reversals (ambiguous language or non-mappable billing_type) are held in the Unknown Reversal Review queue.
Reconciliation — Gross / Reversals / Net
⚠ Credit Balance Review — visits with negative open AR
🛠 Unknown Reversal Review — rows that need classification
Latest reconstructed open AR by entity, drawn from the same transactional history as AR Buckets.
Loading current snapshot…
Month-by-month charges, payments and adjustments straight from transactions_trp. Use for close prep and variance review.
Month
Charges
Payments
Adjustments
Net AR Δ
Collection %
Loading…
Net AR Δ = charges − payments − adjustments (positive = AR grew that month).
Collection % = payments ÷ (charges − adjustments) per month.
Source: live Supabase RPC get_acct_monthly_summary.
Loading…
Source: live Supabase RPC get_ar_aging_unified(date). Open AR = charges − payments − adjustments through snapshot date. Age = snapshot date − DOS/service date.
Click any value to drill into case-level detail.
Respects Admin → AR Display Settings — hidden rows/entities are excluded, so each month-end ties to the AR Buckets Grand Total for that date.
Open this tab to load ending-AR balances…
Ending AR = gross open balance (charges − payments − adjustments) still open as of each month-end, computed by get_ar_aging_unified(date) — the same engine as AR Buckets. Δ MoM is the month-over-month change in the rightmost total column (red = AR grew, green = AR came down). The newest row uses today’s date as the period end.
Journal Entry Support
For each snapshot date, generate JE proposals for: AR write-off candidates (cohorts ≥ 8yrs locked), bad-debt allowance shifts vs. prior period, and accrued-receivable adjustments by entity.
→ Build queued: requires the AR Buckets snapshot to be loaded first, then derives proposed entries from period-over-period deltas.
All exports use the currently selected AR Buckets snapshot date and entity scope. Switch to AR Buckets first to pick a different one.
Case-level support for every populated bucket (entity, payer class, DOS, charges/payments/adjustments through snapshot, open AR, age).
Full Aging Package
Combined workbook: Aging Summary + Detail Support + Methodology + Data Freshness — one file for audit/close binder.
Open AR formula
Open AR at snapshot = charges through snapshot − payments through snapshot − adjustments through snapshot.
Bucket assignment
Age = snapshot date − DOS / service date. Cases are bucketed by their age as of the snapshot date — never today.
Buckets:
<120 Days · 121–240 Days · 241–365 Days
Year 2 (366–730) · Year 3 (731–1,095) · Year 4 (1,096–1,460) · Year 5 (1,461–1,825) · Year 6+ (1,826+)
Sources & reconstruction
Texas Regional Physicians → reconstructed from transactions_trp (portal + Athena), filtering transactions to transaction_date ≤ snapshot and DOS ≤ snapshot.
Complete Surgery — Houston Northwest + Mesquite → reconstructed from transactions_hst grouped by visit_key and fin_class_name.
Combined sections sum the reconstructed values above — no double-counting.
Sign convention
transactions_trp.amount is always positive — payments and adjustments are subtracted explicitly. transactions_hst.billing_amount is keyed by tran_type (BL=billed, PY=payment, CW/AD/BD=adjustments).
Negative values
Negative cell values reflect credit balances or overpayments as of the snapshot date — they are real, not data errors. Display: (amount) in parentheses.
Limitations
Pathway is not yet ingested — no historical reconstruction possible.
Snapshots beyond the latest upload date are flagged with a yellow warning at the top of AR Buckets.
HST fin_class_name is preserved from source (e.g., Self-Pay, Commercial INN, Commercial OON). TRP buckets payer-class via cases.revenue_class + Athena payer_group.
Collections — Thresholds & Settings
Used by all collection RPCs + the 3 morning email digests (Contracted AR 7:00am, PI Settlement 7:15am, Settled Pending 7:30am CT).
Accounting Review — AR Display Settings
Hide/show entities and financial-class rows for the AR Buckets report. Saved as the default for all viewers until changed.
More profiles (CFO View / Investor-safe) coming later.
Loading…
Collections Team Scorecard
Per-collector workload + unassigned by source. Updates on-demand or every 5 minutes.
Who receives the morning collections emails. Each row is “scope + digest + email”. Use all for scope or digest to receive everything.
Email
Scope
Digest
Active
Loading…
Add recipient
Operations — Forecast & Alert Thresholds
Controls the Operations Forecast panel, doctor-alert RPCs, and BD scorecard benchmarks.
Daily Email Preview
— render what goes out each morning without sending
Calls each edge function in dry_run mode. The email HTML renders in the iframe below.
No email is sent.
Admin · Settings · Activity
Loading…
Preview Weekly Brief by Role
Brief Recipients (—)
Each recipient gets the sections enabled for their role. Until your Resend domain verifies, only recipients @ your Resend account email can receive emails.
Email
Name
Role
Active
Last Sent
Status
Loading…
To add a recipient: open Supabase SQL editor → INSERT INTO wcb_recipients (email, display_name, role) VALUES ('...', '...', 'ceo');
Internal Doctor Roster (— entries · auto-classify trigger active)
This is the source-of-truth list of TRP internal doctors. New physician entities matching a roster row auto-flip is_internal=true via a database trigger. Edit roster in Supabase: internal_doctor_roster table.
Portal ID
Name
NPI
Specialty
In Entities?
Internal?
Loading…
Audit Log
Sign in as an admin or collection manager, then open this tab to load the unified audit log.
Create User (admin only)
Provisions a Supabase auth user and assigns a role. A strong temporary password is auto-generated below — copy and share it securely once, then have the new user change it on first login. You must be signed in as admin.
Manage Existing Users (—)
Change a user's role, disable their account, or update their display name. Disabling a user prevents login but keeps their audit history. You cannot disable yourself.
Name
Email
Role
Scopes
Landing
Status
Last login
Last logout
Created
Actions
Click ↻ Refresh to load.
Data Freshness by Feed Loading…
For each data source: upload status, latest upload date, latest business date (transaction / DOS / negotiation),
row counts, age, and stuck/duplicate upload detection. Cash and charge freshness is keyed off the business date,
not the upload date — an upload from yesterday containing data through April only is still stale.
Feed
Source System
Latest Upload
Processed
Data Through (tx)
Service Date
Rows
Upload Status
Data Age
Notes
Loading…
Freshness rule: ● Fresh ≤ 7 days · ● Warning 8–21 days ·
● Stale 22+ days · ● Error / Stuck.
Role Access Matrix
Role
Overview
AR & Cash
Operations
BD
PI Collections
Accounting
Admin
Default landing
Collector
—
—
—
—
✅
—
—
PI Collections · Today's Work
Collection Manager
—
—
—
—
✅
—
—
PI Collections · Manager views
BD Team
—
—
—
✅
—
—
—
BD · Scorecard
BD Lead
—
—
—
✅
—
—
—
BD · Manager view
Operations / COO
—
—
✅
—
—
—
—
Operations Command Center
CFO
✅
✅
✅
✅
✅
✅
—
Overview
CEO
✅
✅
✅
✅
✅
✅
—
Executive Overview
Admin
✅
✅
✅
✅
✅
✅
✅
Overview · everything
Investor
—
—
—
—
—
—
—
Investor Briefing only (code-gated)
Enforced in-app for signed-in users (header hides disallowed modules; direct routes show access denied). Writes are additionally role-guarded server-side. The public (not-signed-in) link keeps the current open view behavior.
Roles & Access Status
Layer
Status
What it does
Dashboard sign-in
Public (no auth)
Current prod URL is open — anyone with the link can view. Role-based routing not enforced.
Weekly Brief role sections
Active
Each recipient row has role + sections_enabled. CEO sees risks + promises, CFO sees forecast, etc.
Supabase RLS
Active
Database-level: 5 BD tables now have anon-read + auth-write policies. Vault stores Resend key encrypted.
Audit trail
Active
All collection actions, tier changes, promises, brief sends logged with timestamp + actor. Visible in Activity Log tab.
Internal-doctor auto-classify
Active
112/1,146 physicians flagged internal. Trigger fires on new entity inserts.
Future: User login + role routing
Deferred
To gate the dashboard by role (CEO sees different homepage than CFO), need Supabase Auth wired in prod. Dev sandbox has this; prod doesn't yet.
Company Scopes
Which book of business each user works. Scopes drive collector queues and source filters. TRP-PI · TRP-Athena / Insurance · HST / Complete Surgery · Pathway.
Sign in as admin to manage scopes.
Invitations
Users who have never signed in (invited) or have a profile but no login yet (pending). Resend generates a fresh temporary password.