leaking in the last 365 days (monthly average of 4 realised buckets). Last 91 days: $4,602/month.
Plus $989/month of trials that never paid (potential, shown separately).
MRR at risk now $3,508 4.4% of $80,330 MRR
Where it leaks
Bucket
USD / month
Events
Failed payments never recovered
$434
79 invoices
Involuntary churn (card failures that ended the subscription)
$929
177 subscriptions
Voluntary cancellations
$1,134
233 subscriptions
Downgrades
$292
52 downgrades
Trials not converted (potential, not realised)potential
$989
177 trials
Voluntary vs involuntary: 233 voluntary and 177 involuntary cancels; involuntary is 45.0% of cancelled MRR.
Failed first payments: 674, recovered 364, lost 79, still in retry 28 ($1,598).
Top 3 fixes
1
Fix the payment-failure sequencerealised: $1,362/mo 674 invoices failed on first attempt; 56.3% of matured ones were recovered. Top decline codes: card_declined (180), generic_decline (178), expired_card (167). Mechanism: most card failures are expired, over-limit or temporarily short of funds. They recover when the customer is asked at the right moment with a one-click card update link, and when retries are timed to those causes. Pre-expiry card-update emails remove part of the failures before they happen.
2
Put a reason-first cancel flow in front of cancellationrealised: $1,134/mo 233 voluntary cancels in the window; 207 show no discount or pause in Stripe before the cancel (email or in-app saves are not visible to Stripe). Mechanism: ask the reason, then offer the matching lever (pause for 'not using now', lower tier for 'too expensive', a one-time credit only where margin allows). Offers are priced against margin so a save is not bought at a loss.
3
Tie the trial-end sequence to activationpotential: $989/mo 177 of 426 ended trials never paid (conversion 58.5%). Mechanism: trials that reach a first value moment convert; those that do not rarely do. Nudge unactivated trials toward the value moment early, and remind about the card and the first charge before day end.
What a 90-day Retivo pilot would measure
Randomised holdout: 20% of customers (stable hash of customer id) get no touches. 80% get the fixes above. Same Stripe data, same definitions as this report.
Metric
Baseline
Expected events, treated vs holdout
Failed-payment recovery rate
56.3% now
~87 vs 22 invoices
Save rate at cancel
11.2% now (visible in Stripe)
~46 vs 11 cancels
Trial-to-paid conversion
58.5% now
~84 vs 21 trials
Primary result: net revenue per customer, treated vs holdout, after offer cost and gross margin.
Verdict by a two-proportion test at 95%. Holdout groups below 30 events are reported as an early signal, not a result.
Read-only analysis of Stripe data. Emails masked. Method and caveats for every number: next page.
Method and caveats
Number
How it is computed
Caveat
Failed payments never recovered
Invoices in the window whose first attempt failed (attempted, amount due above 0, and not paid on attempt 1). Lost = uncollectible, void, or open with no scheduled retry and older than 30 days. Value = invoice amount due, one cash event per invoice, USD.
Cash, not MRR. A subscription later cancelled for payment failure is counted in involuntary churn instead, never twice. Voided invoices are treated as lost; if the customer voids by choice, this overstates.
Recovery rate
Recovered / (recovered + lost) among failed invoices that are no longer in retry. Shown by count; invoices still in retry are excluded.
Young failures are in retry and excluded, which is conservative for the current month only.
Involuntary churn
Cancelled subscriptions with at least one paid invoice and cancellation reason payment_failed, or whose last invoice failed unrecovered within 45 days before cancel. Value = monthly recurring value of the subscription (list price x quantity, interval-normalised).
List price before coupons: slightly overstates where discounts applied. Usage-based plans use the last paid invoice.
Voluntary cancellations
Other cancelled paying subscriptions in the window, same value definition. "Visible save" = a discount started or collection paused within 45 days before the cancel.
Saves by email, in-app or support are invisible to Stripe, so "no visible save" is an upper bound; confirm with the customer. Disputes are counted here.
Downgrades
Fall of recurring monthly value between consecutive paid invoices of one subscription (non-proration lines, before discounts), summed.
Includes seat reductions. A mid-cycle plan change shows up on the next full invoice, so timing can shift by one cycle.
Trials not converted
Subscriptions whose trial ended in the window and that have no paid invoice (amount paid above 0) since trial start. Value = monthly price of the plan trialled.
Potential revenue, not lost revenue: not part of the headline. Trials still running (17) are excluded.
Headline USD / month
Sum of the four realised buckets over the window, divided by months observed (365 days).
Cancelled MRR is counted once, in the month of cancel; the revenue a lost customer would have paid in later months is not added. No benchmark or industry average is used anywhere in this report.
MRR at risk now
Monthly value of subscriptions that are past due or unpaid, active but set to cancel at period end, or whose latest invoice is failing. Pending trials ending within 14 days: $1,233/month, not included.
A snapshot, not a forecast: not all of it will be lost.
Window: 365 days to 2026-10-28. Data read: 1920 subscriptions, 10232 invoices, 680 charges.
Currency: USD. Other currencies only with an explicit rate agreed with the customer.
Not visible to Stripe: emails and offers the customer already sends, in-app saves, refunds issued outside invoices, and cancellations handled in another billing system.
Largest at-risk accounts (emails masked):
Account
Why
MRR
p***@c***.com
cancels at period end
$199/mo
p***@c***.com
cancels at period end
$199/mo
p***@c***.com
payment failing
$199/mo
p***@c***.com
payment failing
$199/mo
p***@c***.com
cancels at period end
$199/mo
Access: restricted read-only key; nothing was written to the account, and the raw data was not stored.
This is what you get in 48 hours: the same two pages, with your own numbers, computed from a read-only Stripe key. The company, customers and amounts above are made up.