Skip to content

The Recovery Ledger · 2026-07-15 · 5 min

Cancel flows vs dunning: two churn problems, kept separate

'Reduce churn' hides two problems that share almost nothing. One is a customer actively deciding to leave. The other is a payment failing while the customer still wants to stay. They need opposite interventions, and blending them into one 'retention' number is how teams end up optimizing the wrong thing.

Involuntary churn: plumbing

A card expires or a bank declines, and a paying customer silently drops out. The fix is mechanical: detect the failure, email the human, warn before expiries, retry through the processor. Nobody needs persuading they never chose to leave. This is dunning, and it's the higher-ROI of the two because you're recovering revenue from people who already want your product.

Voluntary churn: persuasion

A customer clicks cancel. Now the job is different: understand why, and where it's fair, offer a path to stay a pause instead of a cancel, a plan that fits better, a discount for a specific fixable reason. This is a cancel flow, and it's a conversation, not a retry. Handled badly (dark patterns, hidden cancel buttons) it torches trust; handled well it saves the saves that deserve saving.

Why bundling blurs the numbers

If a tool reports one 'revenue retained' figure across both, you can't tell whether you're getting better at recovering failed cards or at talking people out of leaving or whether a dark-pattern cancel flow is inflating the number while quietly costing you goodwill. Keep the two ledgers separate: recovered-from-failure and saved-from-cancel are different claims and should be measured as such.

Running both, honestly

Recoupe does dunning by default ($29/mo decline-aware recovery emails, pre-expiry warnings, honest attribution across Stripe, Square, and Braintree) with an optional cancel-flow module ($49/mo) for the voluntary side. The two are reported separately on purpose: recoveries only count when an email was delivered before payment, and saves are tracked apart from them. No blended number doing double duty.

Start with the free failed-payment audit →

Recoupe recovers the revenue your processor's retries leave behind $29/mo, honest attribution.

Run my free failed-payment audit →