Cancellation flow best practices: save without trapping
The cancel button is the most honest page in your product. Everyone who clicks it is telling you something, and a good share of them would stay if you offered the right thing at that moment. A bad cancellation flow goes one of two ways: it lets them go without asking anything, or it hides the exit behind five screens of guilt. The first loses customers you could have kept. The second keeps them for one more month, then loses them angrier, sometimes through their bank as a dispute instead of through your cancel button.
Here is how to build the version in between.
Step 1: ask why, once
Start with a single question and a short list of answers. Something like:
- Too expensive
- Not using it enough
- Missing a feature I need
- Switching to another service
- Just taking a break
- Other (with a free text box)
Keep it to one screen and make the answer required but quick. Five or six choices is plenty; a long list turns a five second question into a chore, and people pick whatever is first.
This answer does two jobs. It decides which offer to show next, and it becomes the most useful product data you collect. Read the free text answers every month. They tell you what your roadmap should be more directly than any survey you will send.
Step 2: make one offer that fits the reason
The point of asking why is to answer it. A single offer matched to the reason works far better than a wall of discounts shown to everyone.
| Reason | Offer that fits |
|---|---|
| Taking a break | A pause for one to three months |
| Too expensive | A cheaper plan, or a discount for a couple of months |
| Not using it enough | A smaller plan, or help getting value from it |
| Missing a feature | A note to contact you, and a real answer |
| Switching elsewhere | Usually nothing; let them go gracefully |
Some rules for the offer itself:
- One offer, not a sequence. A customer who says no once has answered. Showing a second and third offer is where saving turns into trapping.
- Make it concrete. "25% off your next two months" beats "a special deal". Say exactly what the price will be and when it goes back.
- Downgrade is often the best save. A customer on a $60 plan who only uses the basics is better kept at $30 than lost at $0. They may upgrade again later, and a lost customer never does.
- Discounts should end. An open-ended discount becomes their new price and teaches customers that clicking cancel is how you negotiate.
For more on designing the pause option in particular, see our guide to a membership pause policy.
A worked example
Say you sell a $60 a month plan, and 60 customers reach the cancel screen this month. Twelve accept the offer they are shown:
- 6 choose a one month pause.
- 4 take 25% off for two months, so they pay $45 a month.
- 2 downgrade to your $30 plan.
In the first month you keep 4 × $45 + 2 × $30 = $180 + $60 = $240 of revenue you would otherwise have lost. The paused customers pay nothing that month.
In the second month the pause ends and those six return at $60, so you keep $360 + $180 + $60 = $600.
From the third month the discount ends too, and if all twelve are still with you, that is 10 × $60 + 2 × $30 = $600 + $60 = $660 a month of retained revenue from one screen.
Not everyone who accepts an offer stays forever. Track what happens to the saved customers over the next few months, not just how many clicked yes. A save that cancels anyway 30 days later only delayed the churn.
Step 3: keep cancel one click away, at every step
The rule that separates a save flow from a trap: the customer can finish canceling from every screen. A clear "Cancel anyway" link or button beside the offer, the same size and visibility as everything else, not gray text at the bottom.
Things that cross the line:
- Requiring a phone call or a chat to cancel something bought online.
- Hiding the cancel option in account settings three levels deep.
- Making the "keep my subscription" button look like the only button.
- Asking the customer to confirm the same decision more than once.
Beyond being bad manners, this is increasingly a legal matter. Several jurisdictions have rules about automatic renewals and online cancellation, for example requiring that a subscription bought online can be canceled online, and without undue obstacles. The details differ by place and change over time, so treat this as general information and check the rules that apply where your customers are. A flow that is easy to use is the safest design everywhere.
Step 4: confirm clearly
When the customer confirms, tell them exactly what happens next, on the screen and in an email:
- When access ends. Usually at the end of the period they already paid for. Say the date.
- Whether they will be charged again. Ideally a plain "You will not be charged again."
- What happens to their data. How long you keep it, and whether they can export it.
- How to come back. One line on restarting if they change their mind.
A clear confirmation is also your best protection against a chargeback. A customer who is charged after they believe they canceled goes to their bank, not to you. We cover that in subscription chargebacks.
Step 5: let the ending be the start of a win-back
A canceled customer is not a lost cause, they are a former customer who knows your product. A modest win-back campaign uses what you learned in step 1:
- Someone who left because of a missing feature hears from you when it ships.
- Someone who left over price hears about a cheaper plan if you add one.
- Someone who was taking a break gets one friendly note a couple of months later.
Two or three messages over a few months is enough. Tie each one to their stated reason and let them unsubscribe easily. A win-back that ignores why they left reads as spam.
Measure the flow
Three numbers tell you whether it works:
- Save rate: of customers who start canceling, how many accept an offer.
- Saved retention: of those saved, how many are still paying three months later.
- Reason mix: how the reasons shift month to month.
Watch them alongside your overall churn rate. If the save rate is high but saved retention is poor, the offer is too generous or aimed at the wrong reason.
How yRecurring handles it
In the yRecurring customer portal, customers cancel on their own. The flow asks for a reason from a list you set (or a sensible default list), then shows at most one save offer you choose: a pause, a discount coupon, or a note to contact you. Cancel stays available at every step, and you decide whether a cancellation takes effect at the end of the paid period. The reason is recorded with the cancellation, and automations can trigger on a canceled subscription, for example to send a follow-up email.
We check every post against the product and date any competitor prices.
yRecurring is the billing platform behind this blog: subscriptions, usage and token billing, invoicing, and payment recovery, with every amount explained.