Logic used: Cohorts use 1st Installment Month, month values use the provided Month 1 → Month 45 cumulative installment-only fields, cohort percentages are computed as sum of raw cumulative values ÷ total cohort ActualReceivable, advance is excluded from cohort math, and delay means Month 1 blank/zero = missed M1 and a month-on-month increment between 0 and 20 for later installments, but only while the loan is still meaningfully open (not already effectively fully collected).
Use only your Supabase public / publishable / anon key here. Do not use a secret or service role key.
Load a CSV manually, try the bundled CSV, or connect Supabase and click Load Cloud.
Use Ctrl/Cmd-click to pick multiple.
Use Ctrl/Cmd-click to pick multiple.
Use Ctrl/Cmd-click to pick multiple.
Use Ctrl/Cmd-click to pick multiple.
Use Ctrl/Cmd-click to pick multiple.
Show:
M1:
M2:
M3:
M4:
HEATMAP:
N/A
0–25%
25–50%
50–75%
75–90%
≥90%
Load a CSV to begin.

📋 Cohort Loan Audit

After applying the cohort filters above, choose one of the remaining cohorts here to see the exact loan list behind that cohort and export it.
Load data and apply filters. Then choose a cohort and click Show Loans.

◈ Loan Grade System

Kept the same grading framework, but inputs now come from the new cumulative installment fields. For score after M1, expected = 1 installment; after M2, expected = 2 installments; after M3, expected = 3 installments; after M4, expected = 4 installments — all against ActualReceivable.
A
≥ 95% of expected collected
On track or ahead
B
85–95% of expected collected
Minor shortfall
C
75–85% of expected collected
Moderate shortfall
D
65–75% of expected collected
High risk
E
< 65% of expected collected
Critical
Penalty logic retained: consecutive misses apply −5% each, isolated misses apply −2% each.

⚖ Data-Derived Penalty Weights

Computed from the loaded dataset using final collection shortfall as the bad-outcome anchor.
Load data to compute weights.
Definition: a miss at month N means cumulative month N is unchanged versus month N−1 (or zero at M1).

📊 Grade Distribution

Load data to view distribution.

🔁 Roll-Rate Migration Matrix

Track how loans move from one grade state to another across bigger jumps. Uses the existing Early Detection filters; the Grade filter, if used, is applied to the starting grade of the selected transition.
Load data to build migration summary.
Load data to view migrations.

🔍 Loan Grade Explorer

Score After
Grade A
Grade B
Grade C
Grade D
Grade E
Load data and click Search.

📈 Cohort Grade Improvement Tracker

Average grade score by cohort across M2 → M4 using the rewritten cumulative logic. Early detection stays focused on M1–M4, while the explorer and migration matrix can now extend to M12.
Load data to compute cohort grade trends.
As of: load data to populate the Collections Action Queue.

⚡ Early Warning: Predicted Deterioration

Surfaces Grade A/B/C loans that still look acceptable today but whose trajectory, cohort standing, and miss behavior resemble loans that later deteriorate. Use this as the first action lens.
60 minimum Early Warning Score
Load data to view early warning loans.

🔴 Intervention Required

Triage loans already in confirmed distress using a tunable priority model. Use the weighting panel to reflect collections strategy and instantly resort the queue.
Priority score weight controls
Current Grade30%
Exposure / ActualReceivable20%
Consecutive Misses M1–M420%
Grade worsened 2+ steps recently15%
Missed M1 or M210%
Cure Proxy5%
0 minimum score
Load data to populate the intervention queue.