Cancel Flow vs. Dunning: Two Tools, Two Churn Problems
A cancel flow and dunning solve two different churn problems: a cancel flow logs the reason and shows a save offer to subscribers who choose to leave (voluntary churn), while dunning uses smart retries and reminder emails to recover failed payments (involuntary churn).

I've built cancel flows for SaaS clients and dunning for my own business. The same mistake shows up in both. Teams treat every cancelling customer the same, when half of them never chose to leave.
A cancel flow and dunning solve two different churn problems, and most subscription businesses need both.
Key takeaways
- Use a cancel flow to fight voluntary churn, the customers who actively choose to leave.
- Use dunning to fight involuntary churn, the customers lost to failed payments.
- Expect about 26% of churned subscribers to leave from a payment failure.
- Recover up to 72% of at-risk subscribers with smart dunning.
- Run both tools, so a saved customer never gets a redundant offer.
What is the difference between a cancel flow and dunning?
A cancel flow is what a subscriber sees when they choose to leave: it logs their reason and shows a save offer. Dunning is the retry and email series that recovers failed payments. Both reduce churn, but they fix different problems.
Here’s a more thorough breakdown:
Cancel flows handle customers who chose to leave. Dunning handles the failed-charge side.
The split comes down to the trigger. A cancel flow fires when a subscriber clicks cancel, so it needs a place to ask why and offer an alternative. Dunning fires when a charge fails, so it needs retry logic and a run of reminders.
The subscriber in the second case often doesn't know anything broke. Their card expired, the bank held the charge, and they never saw a screen.
That's why one tool can't do the other's job. The cancel flow has no one to talk to when the failure is silent. Dunning has nothing to retry when the customer left on purpose.
Imagine a $49 per month product with 400 active subscribers. In October, 12 of them start the cancel flow, and 4 hit a failed-payment decline. Those 16 churn for opposite reasons.
The 12 made a choice you can try to change with an offer. The 4 made no choice at all, so an offer just confuses them. Send the same screen or email to both groups and you lose all 16.
One edge case blurs the line. A subscriber whose card declines might treat the failure as a prompt to cancel, landing on both paths at once.
It still matters, because it's why the two tools have to share what they know about each subscriber. We'll come back to that shared record later.
What does a cancel flow do (and what it can't do)
A cancel flow is the one tool built for voluntary churn. It catches a subscriber mid-cancellation, asks why through an exit survey, and presents a matched save offer. Done well, it turns a meaningful share of would-be cancellations into saves.
Save rate here means the percentage of customers who start a cancel flow and end up staying.
The reason-capture step is what makes the offer work. A subscriber who says "too expensive" gets a discount or a downgrade. One who says "not using it enough" gets a pause instead.
Matching the offer to the reason beats a blanket discount. A generic offer ignores what the customer just told you. A discount aimed at someone who isn't using the product fixes nothing. They stop using it just the same, and they leave the next month.
Cancel-flow save rates run from 15 to 35%, based on the data we've gathered across our customers. The range tracks how well the offers match the reasons. One generic discount for every exit reason sits near the bottom. Four offer types mapped to four cancel reasons sit near the top.
The Churn.io cancel flow tool routes each subscriber to the right offer automatically, without manual configuration per reason.
The gap between those two is design, not luck. What a cancel flow contains, screen by screen, is what moves a business up that range.
A cancel flow can't reach a subscriber whose payment failed quietly. That subscriber never sees the screen, because the platform closes the account in the background.
A healthy save rate on your voluntary churn says nothing about the customers leaking out the involuntary side. That's the gap dunning exists to close.
What does dunning do
Dunning recovers failed charges through smart retries, ramping emails, and card-update services. It works on failed-charge churn only. It can't reach a customer who chose to leave, just as a cancel flow can't catch a silent card failure.
Smart retry logic is the core of how dunning recovers revenue, because not every failed charge stays failed.
A soft decline is the temporary kind, like a bank hold or not enough money at the billing moment. Those often recover at higher rates when you retry at a different time of day or day of the month.
A hard decline, like a stolen card, won't recover on a retry. It needs an account-updater service or a card-update email instead. Knowing which decline you have is what decides whether you retry or escalate.
Our full dunning process guide covers that decision tree in depth.
The payoff for getting this right is large. Recurly's 2024 study of 2,200 brands found that 72% of at-risk subscribers were saved by dunning recovery. Those saved subscribers went on to generate 38% of their total lifetime value after the save.
Read that second number again. More than a third of a recovered customer's value arrives after the moment you almost lost them. That's the case for treating involuntary churn as recoverable revenue, not a write-off.
If a card declines and the customer uses the failure as their cue to cancel, the retry sequence is beside the point. Only a cancel-flow save offer could have reached them, and that window shuts the moment they confirm.
The retry still runs, the charge clears, and the customer cancels anyway. The payment was never the reason.
How they work together
The two tools route on trigger. A subscriber who clicks cancel goes to the cancel flow. A failed charge goes to dunning. Together they form what we call the Two-Tool Keep Stack.
Our platform lets both tools share subscriber state. A subscriber saved by dunning is never sent a cancel-flow offer they don't need. That shared state is what keeps the two tools from contradicting each other.
Without it, a subscriber sitting in a dunning retry window could separately start a cancel flow and get a discount offer. That offer would undercut the dunning emails and leave the customer unsure about their account.
With one shared record, each subscriber is only ever on one path, and the team sees the whole history in one place.
Here is how the routing plays out across the three components of the stack.
- Voluntary churn path: the subscriber chooses to leave.
- Involuntary churn path: the payment fails.
- Shared subscriber state: both events write to one record.
Each path has a clear trigger, and the third component is what ties them together. Here's how each one works.
Step 1. Voluntary churn path
The voluntary path starts when a subscriber clicks "Cancel my subscription" inside the product. That click is an active choice, so the cancellation flow takes over and runs the exit survey and save offer.
The reason they give is logged against their record, which feeds the shared state in Step 3.
A clean cancellation is also a customer who might return, so the flow avoids friction that would burn the relationship.
Step 2. Involuntary churn path
The involuntary path starts when the billing processor returns a failed charge.
When Stripe returns a decline, the dunning sequence fires on its own, with no screen and no subscriber input. The retry and escalation logic from the dunning section runs against that failed charge.
The two triggers are mutually exclusive, so a single subscriber is never running down both paths in the same moment.
Step 3. Shared subscriber state
Both events write into the same subscriber record, and that record is what makes the first two paths safe to run together.
A SaaS owner sets up both tools in one dashboard, and every cancel reason and every dunning event lands in one place. The retention team sees the full picture, not two disconnected logs.
It's how we handle both churn types in one place, without the contradictory experience that separate tools create.
The stack pays off most when failed payments make up a real share of total churn. A rough threshold: more than 20%. At the median in Recurly's study, roughly 1 in 4 churned subscribers left due to a payment failure, not a choice.
A business under $1K in monthly recurring revenue with few subscribers is a different case. Manual follow-up may cover the involuntary volume on its own, before a dedicated tool earns its keep.
FAQ
Do I need both a cancel flow and dunning?
Yes, because each tool reaches a customer the other cannot. A cancel flow only acts on subscribers who choose to leave, while dunning only acts on those whose payment failed. Running one leaves the other churn type unaddressed.
When should I use a cancel flow vs. dunning?
Use a cancel flow for customers who actively cancel, and use dunning for customers whose payments fail. The trigger decides the tool. A deliberate choice to leave routes to the cancel flow, and a failed charge routes to dunning.
Can dunning replace a cancel flow?
No, dunning recovers failed payments and has no way to influence a customer who decided to leave. A customer who clicks cancel never enters a dunning sequence at all.
What are the two types of churn?
The two types are voluntary churn and involuntary churn. Voluntary churn is a customer choosing to leave. Involuntary churn is a payment failure that closes the account without any decision by the customer.