25 real users sampled from 5 financial personas. Each chart shows the pay period where the user's cash flow most clearly matches their persona pattern (not necessarily the most recent cycle). Cashout events are marked on the chart as triangles and detailed in the side panel.
| Persona | Sample Count (1/32) | Estimated Full Count | % of Classified | Profile |
|---|---|---|---|---|
| In the Red | 15,067 | ~482,000 | 33.0% | Frequently negative balance; overdrafts in 3+ pay periods |
| Tightrope Walkers | 6,897 | ~221,000 | 15.1% | Median balance near $0–$150; rely heavily on cashouts |
| Roller Coasters | 5,894 | ~189,000 | 12.9% | Wild swings (σ > $300), dip below $200, rarely go negative |
| Payday Surfers | 3,947 | ~126,000 | 8.6% | Balance peaks after payday then steadily drains near $0 |
| Steady Savers | 3,452 | ~110,000 | 7.6% | Min balance stays above $200 across nearly all pay periods |
| Unclassified | 10,899 | ~349,000 | 23.8% | Does not clearly match any single pattern |
Cohort: users classified in January 2026 (active login + valid bank connection + ≥3 completed cycles). Retention = % who cashed out at least once that month. 1/32 hash sample.
| Persona | Jan Cohort | Feb Ret % | Mar Ret % | Feb→Mar Δ |
|---|---|---|---|---|
| Tightrope Walkers | 8,084 | 90.4% | 81.8% | -8.6pp |
| Roller Coasters | 5,880 | 76.4% | 70.9% | -5.5pp |
| Payday Surfers | 4,429 | 72.1% | 65.9% | -6.2pp |
| Steady Savers | 3,197 | 68.9% | 64.3% | -4.6pp |
| In the Red | 18,183 | 64.8% | 60.0% | -4.8pp |
Sorted by Feb retention (highest → lowest). Δ = percentage-point decrease from Feb to Mar.
Start with users who logged in within the last 30 days (main_prod.dbo.logindetails), then exclude:
is_upbc_active and is_bfpbc_active = false.
Only weekly/biweekly cycles (5–16 days) from earningscycle are considered — monthly and anomalous long cycles are excluded. For each sampled user, we select the most recent completed cycle that best matches their persona (not necessarily the latest cycle). Per-cycle persona matching rules:
cycles_2plus_neg ≥ 3 OR cycles_deep_neg ≥ 3
cycles_tight_median ≥ 3 AND avg_cashouts ≥ 2
cycles_volatile_dip ≥ 2 AND cycles_any_negative ≤ 1
cycles_surfer ≥ 2 AND cycles_min_above_200 < MIN(4, num_cycles)
cycles_min_above_200 ≥ MIN(4, num_cycles)
| Purpose | Table |
|---|---|
| Login activity | main_prod.dbo.logindetails |
| Bank connection | main_prod.bank_dm.fact_user_bank_connection |
| Daily balance | main_prod.bank_balance.user_bank_balance |
| Pay periods | main_prod.earnings.earningscycle |
| Cashouts | main_prod.finance_dm.fact_transactions_all |
Sizing: 1/32 hash sample ×32. Classification requires ≥3 completed pay periods in last 120 days. Visualization shows the most recent cycle matching the persona pattern. Data as of March 2026.