Retention 9 min read · · Last updated:
By Mark Ashworth · Founder, ChurnTools

The One Screen Before Cancel That Saves 10-15% of Churn

Most SaaS teams treat the cancel click as the end. It is actually the one moment you have a leaving customer's full attention, and a plain "Are you sure?" popup throws it away. Here is the screen that goes in front of the button, and how to match every cancellation reason to an offer that actually lands.

📊

Want a personalized score for your situation?

Take the free 60-second Churn Health Check

Score me →
TL;DR
  • The cancel click is the most attention you will ever get from a leaving customer. Most SaaS teams spend it on an "Are you sure?" dialog, which saves almost nobody.
  • Put one screen in front of the button. Ask why they are leaving, give four to six real reasons as buttons, then show a different offer depending on which one they pick.
  • The matching matters more than the size of the offer. "Too expensive" wants a pause or a smaller plan. "Missing a feature" wants proof it exists or a date. "Not using it" wants a person and fifteen minutes.
  • A matched one-screen flow keeps roughly 10 to 15% of people who were already walking. At 120 cancels a month on $60 MRR each, that is about $58,000 of rescued revenue in the first year.
  • One screen. Cancel always visible. No timers, no three offers in a row, no mandatory survey. Friction is not a save, it is a complaint waiting to happen.

Click cancel inside most SaaS products and watch what happens. A grey box slides in. "Are you sure you want to cancel?" Yes or No. That is the entire retention effort, deployed at the exact second you have more of that person's attention than you have had in months.

I find this genuinely strange. Teams will spend a quarter on an onboarding redesign to move activation by two points, then hand the single highest-intent moment in the whole lifecycle to a browser confirm dialog. Someone has decided to leave, they have gone looking for the setting, they are staring at your product with more focus than they have shown since the trial. And the response is a shrug.

Here is the short version, then I will show you the screen and how to match each reason to an offer:

Why is the cancel click worth more than any other moment?

Three things are true at once when someone hits cancel, and they are never all true again.

They are paying attention. Cancelling is a deliberate act that takes navigation and a decision, so for about thirty seconds you have something your product emails almost never buy: focus. They have also just told you something they would never have answered in a survey, which is that the value stopped being worth the price. And they have not left yet. The card is still on file, the data is still there, the integrations are still connected. Every switching cost you built is still working in your favour, right up until the moment the subscription ends.

That last part is the one people underrate. Loss aversion says people feel a loss roughly twice as hard as an equivalent gain, and the endowment effect says they overvalue what they already own. At the cancel screen, your customer still owns the account. Reminding them what specifically goes away, the three years of history, the reports their boss reads, the integration nobody wants to rebuild, is a completely different conversation from asking a stranger to buy something. It costs you nothing and it is only available in this window.

An "Are you sure?" dialog asks a question the customer has already answered. Of course they are sure. They clicked the button. You have to give them new information, not a second chance to confirm the old one.

The economics back this up too. Keeping an existing customer costs a fraction of acquiring a replacement, which is the whole reason retention math dominates SaaS unit economics, and why David Skok's write-up on why churn is critical in SaaS and a16z's 16 startup metrics both put churn near the top. A save at the cancel screen is the cheapest customer you will acquire all month, because you do not have to acquire them at all.

What does a plain "Are you sure?" popup actually save?

Close to nothing. In the products I have looked at, a bare confirmation dialog rescues low single digits, and most of that is people who clicked the wrong thing. It is a misclick filter dressed up as retention.

Swap it for a screen that asks why and then answers the why, and the number moves into double digits. Same traffic, same customers, same product. The only change is that you stopped guessing.

What each cancel flow saves out of 100 cancellations Two ten by ten dot grids, each representing 100 people who clicked cancel. Under a plain "Are you sure?" confirmation dialog, 2 of the 100 dots are highlighted as saved. Under a one-screen flow that asks the reason and matches an offer to it, 13 of the 100 dots are highlighted as saved. The difference is 11 customers per 100 cancellations, rescued with no change to the product. Out of every 100 people who click cancel Same product, same customers. The only variable is what the button opens. PLAIN "ARE YOU SURE?" DIALOG 2 saved Mostly misclicks. No new information, so nothing changes. ONE SCREEN, REASON MATCHED TO OFFER 13 saved Eleven more customers, no roadmap work.

Eleven extra customers per hundred cancellations does not sound dramatic until you remember it repeats every month, on people you had already written off, with no engineering work on the product itself. Retention compounds in a way that acquisition does not, which is the point Andrew Chen makes about retention being king and what Reforge calls the silent killer when it goes the other way.

What goes on the one screen?

One screen. Not a funnel, not a wizard, not a sequence of increasingly desperate offers. The whole thing is a single question with buttons, and the cancel link stays visible the entire time.

Anatomy of the screen that goes before the cancel button A wireframe of the cancellation screen next to five annotations. The screen asks "Before you go, what is driving this?" and offers five reasons as buttons: it is too expensive right now, I am missing a feature I need, I am not really using it, I am moving to another tool, and the project or season is over. Below the buttons sits a plain text link reading "Just cancel my plan". The annotations explain: one question asked like a human, reasons as buttons rather than a text box, four to six options maximum, the cancel link visible at every step, and the offer shown only after the reason is picked. Anatomy of the one screen Before you go, what's driving this? It's too expensive right now I'm missing a feature I need I'm not really using it I'm moving to another tool The project is over Just cancel my plan always visible, never buried 1 One question, asked like a person Not a six-field exit survey. You get one ask. 2 Reasons as buttons, not a text box You are routing to an offer, not collecting essays. 3 Four to six options, no more Every extra choice slows the decision and costs you exits. 4 The cancel link never disappears Legally safer, and it stops the screen feeling like a trap. 5 The offer comes after the answer One offer, chosen by what they just told you.

A few of those deserve a sentence more.

Buttons instead of a text box, because a text box gets you a 4% response rate and a pile of unstructured sentences you will never process. Buttons get you close to 100% and a field you can query on Monday. If you want the sentences too, put an optional text field underneath the button they picked, once they have already committed to an answer.

Four to six options, because Hick's law is real and this is a screen where hesitation costs you the customer. Only list reasons you have an actual answer for. A reason with no matching offer is dead weight, and a lone "other" catch-all with an optional text field will pick up the rest.

The cancel link stays visible because burying it is a textbook dark pattern, it is the thing regulators go after, and a save that came from confusion is not a save. The FTC's negative option work has been pushing this direction for years, and I wrote up what it means for save flows in the click-to-cancel breakdown. The short version: ask, do not require. Offer, do not block. One screen is defensible, three stacked offers with a countdown timer is not. It also just fails Nielsen's user control heuristic, which is a decent tell that you have wandered somewhere you should not be.

How do you match each cancellation reason to a save offer?

This is the part almost everyone skips, and it is the part that does the work. The same offer applied to every reason performs badly, because the reasons are not variations of one problem, they are five different problems that happen to end at the same button.

The reason-to-offer matrix for cancellation save flows Six cancellation reasons mapped to the save offer that fits each one. Too expensive maps to pause the plan or move to a smaller tier. Missing a feature maps to showing where it already is, or a dated roadmap commitment. Not using it maps to a fifteen minute setup session with a human. Moving to a competitor maps to an honest comparison plus a founder conversation. Project or season is over maps to pausing the subscription and keeping the data. Too hard to set up maps to done-for-you implementation. Each row shows the reason on the left in blue and the matched offer on the right in orange. Reason in. Offer out. One screen, six routes. The button they press decides what they see next. WHAT THEY PICKED WHAT YOU SHOW NEXT It's too expensive Pause for 2 months, or drop a tier Discount last. It reprices you forever. I'm missing a feature Show it exists, or give a real date Half of these are discovery failures, not gaps. I'm not really using it 15 minutes with a human, this week They don't want it cheaper. They want it working. I'm moving to a competitor An honest comparison, then a founder call Hardest to save. Most valuable to learn from. The project is over Pause and keep everything intact The highest save rate on the whole screen. It was too hard to set up We'll do the setup for you Also a bug report about your onboarding.

The detail behind each route, including the thing that quietly kills it:

Reason they picked What they are actually saying The offer that lands Save rate I see What kills it
Too expensive The value is real but it lost the budget fight this month. A two-month pause, or a smaller tier that keeps the core job working. 20-30% Leading with 50% off. You reprice the account permanently and teach them to threaten.
Missing a feature One blocked workflow, often something you already shipped and they never found. A 30-second clip showing it working, or a dated commitment if it genuinely does not exist. 10-15% "It's on the roadmap." No date, no save. Promise a month or say no.
Not using it They never got to first value. This is an activation failure showing up 90 days late. Fifteen minutes with a real person this week, plus a month on the house to use it. 15-25% Offering a discount. Cheaper access to a thing they do not use is worth nothing.
Moving to a competitor They already decided, and usually already started the migration. An honest side-by-side, and a direct line to a founder if the account is worth it. 5-10% Trashing the competitor. It confirms they were right to look.
Project or season over Nothing is wrong. They just do not need it in August. Pause the subscription, keep the data, restart in one click when they are back. 30-40% Not offering pause at all, so a temporary gap becomes a permanent cancellation.
Too hard to set up They wanted it to work. Your implementation beat them. Done-for-you setup, this week, at no cost. 15-20% Sending help docs. They already tried the docs. That is how they got here.

One caveat on that save rate column, because I would rather you distrust it usefully. Those ranges are what I see in the flows I have looked at, not published research, and they move a lot by price point and segment. Use them to decide which route to build first, then replace them with your own numbers inside a month. Your own data beats my averages the moment you have thirty cancellations tagged.

Match the offer to the reason and a mediocre offer beats a generous one. A 20% discount aimed at someone who could not get set up is worse than useless. It tells them you were not listening on the way out either.

The pause deserves its own mention because it is the most underused save in SaaS. It costs you one or two months of revenue instead of all of it, it requires no discount, and both Stripe and Chargebee support it natively, so this is a configuration job rather than a build. Recurly's subscription research consistently shows pause and win-back mechanics recovering meaningful revenue that a hard cancel just throws away.

What is one screen actually worth to you?

Put your own numbers in. The point of this calculator is not the headline figure, it is the shape: a small save rate applied every month to people you had already lost adds up faster than most founders expect, because saved customers keep paying after the month you saved them.

What is one screen worth?
Drag the sliders. This is the revenue your cancel button is currently letting walk out.
Cancellations per month 120
Average MRR per customer $60
Save rate on the new screen 12%
How long a saved customer stays 8 months
14
customers rescued every month
$6,912
extra MRR on the books by month 12
$58,752
revenue rescued in the first 12 months

Where these numbers come from: the first card is just cancellations multiplied by the save rate, so 120 cancels at 12% is 14.4 customers a month. The third card is the part people get wrong. It is not that figure times twelve, because a customer you save in January keeps paying in February, March and April as well. So the model runs twelve monthly cohorts and gives each one revenue for however many months you said a saved customer sticks around, capped at the end of the year. With an 8-month lifespan, the January cohort bills 8 times, the June cohort bills 7 times before the year ends, the December cohort bills once, and the total across the year works out at 68 customer-months of revenue rather than 12. The middle card is your steady state: once the flow has been running longer than the stick length, you are carrying about save-rate times cancels times stick length worth of active rescued customers at any moment. Two assumptions worth arguing with. Saved customers usually churn faster than average customers, so if you are being conservative, set the stick length shorter than your normal customer lifetime. And this counts revenue, not margin, so pauses and discounts you hand out inside the flow come off the top. For the compounding version of the same maths across your whole base, the MRR churn impact simulator runs it over multiple years, and Lenny Rachitsky's retention benchmarks are a decent sanity check on what your lifespan should look like in the first place.

The Churn Fix
One churn fix in your inbox every week

Next one is the pause offer: the exact wording that turns a cancellation into a two-month gap, and the three places it backfires. One specific, stealable fix a week. Give me your best email and I'll send it.

No spam. One idea a week. Unsubscribe anytime.

How do you ship this in a week?

This is a small build, and treating it like a big one is how it ends up in the backlog for a year. A working first version is one screen, one table, and six branches.

Day 1: pick the reasons from your own cancellations

Read the last fifty. Not a sample, all fifty, including the ones with no comment. Cluster them and you will find four or five reasons cover almost everything. Those are your buttons. Do not copy someone else's list, including mine, because your reasons will be shaped by your pricing and your onboarding.

Day 2: write the six offers

One per reason, each specific enough to act on today. "Pause for two months" is an offer. "We'd love to keep you" is not. Decide the limits now, before anyone is on the screen: how long a pause runs, what discount a support rep can approve without asking, who takes the founder calls. I wrote a longer breakdown of the wording in how to write a cancellation save offer.

Day 3: build the screen

A modal, a page, whatever your stack makes cheap. Reason buttons, cancel link visible, offer swaps in after the click. If you would rather buy it, Churnkey, ProsperStack and Paddle Retain all do this off the shelf. I compared the tradeoffs in build vs buy for save flows and ranked the options in the best save flow software guide.

Day 4: log everything

Reason picked, offer shown, offer accepted, cancelled anyway. Four columns. Without them you will never know which route works, and you will end up arguing about the flow from memory. Baremetrics Cancellation Insights does the tagging side if you do not want to build it, and Amplitude's retention guide covers the cohort view you will want on top.

Day 5: ship it to everyone

Do not A/B this one against nothing. The comparison you care about is between offers, not between having a flow and not having one, and cancellation volume is usually too thin to power a clean test against a control anyway. Ship it, watch it for a month, then test one offer at a time.

Where save flows go wrong

Three failure modes, and I have watched all three happen.

The flow starts manufacturing cancellations. If word gets around that clicking cancel produces a discount, you have built a coupon machine with extra steps. I called this the Peltzman effect in save flows: make the exit feel safe and cheap enough and people will walk toward it deliberately. The defence is boring, which is to lead with pause and setup help rather than money, and to cap how often one account can accept an offer.

Save rate becomes the goal. A save rate is trivially easy to inflate. Give everyone 80% off and watch it soar, then watch the revenue and the renewal rate not follow. The number that matters is retained revenue over the next six months from customers who went through the flow, which is a harder metric to game and the one I argue for in what actually worked in churn saves. Lincoln Murphy's long-running point about churn being a symptom rather than a metric to manage applies exactly here, and if you want the version with the money attached, Bessemer's scaling benchmarks show what net retention does to a valuation when it holds.

You save the customer and ignore the reason. The best output of this screen is not the saves, it is the tally. If 40% of everyone who reaches the screen says "not using it", you do not have a cancellation problem, you have an activation problem that shows up 90 days late, and the fix lives in onboarding activation milestones rather than in the cancel flow. The save flow is a smoke alarm as much as a fire extinguisher. Reading the tally monthly is how you stop needing it so much. That framing sits alongside the split between voluntary and involuntary churn, because half of what looks like a decision to leave is actually a failed card, which is a completely different fix.

The best cancel flow makes itself less necessary every quarter, because you keep fixing whatever the buttons keep telling you.

Start with the screen, not the strategy

You do not need a retention programme, a customer health score, or a new CS hire to do this. You need one screen, six buttons and six answers, and about a week. It is the highest ratio of outcome to effort I know of in SaaS retention, which is why it sits near the top whenever I rank retention work by leverage. Everything else in retention takes months to show up in the number. This one shows up in the next billing cycle.

The free cancellation save flow build has the exact screens, the reason-to-offer matches and the copy, laid out as a 15-day plan you can hand to an engineer. And if you want to know whether the cancel screen is even your biggest leak, the 60-second churn health check will tell you where your churn is actually concentrated before you go and build anything. Sometimes the answer is the cancel button. Often it is a failed payment nobody was watching, and I would rather you fixed the right one.

Free interactive tool

Score your retention setup in 60 seconds

8 questions. Get your tier (Critical to Best-in-Class), your weakest spots, and 3 specific things to fix next.

Take the Health Check

Frequently asked questions

Answers to the questions I get most often about this topic.

What should the screen before the cancel button actually ask?

One question: why are you leaving? Ask it in plain language, like "Before you go, what is driving this?", and give four to six reasons as tappable buttons rather than a text box. You are not running research at this moment, you are routing. The answer decides which offer they see next, so every option on the screen needs to map to something you can actually do about it.

How many cancellation reasons should I show?

Four to six. Fewer than four and people pick "other" because nothing fits, which gives you nothing to act on. More than six and the screen becomes a survey, decision time goes up, and drop-off goes up with it. Cover the reasons you have a real answer for, add a single "something else" with an optional text field, and leave the rest out.

Should the save offer be a discount?

Usually not first. A discount is the only offer that costs you revenue on every acceptance, and it is the wrong answer to most reasons people leave. Someone who is not using the product does not want it cheaper, they want it working. Reserve the discount for genuine price objections, and even there try a pause or a smaller plan before you cut the price, because both keep the account alive without permanently repricing it.

Does a save flow break click-to-cancel rules?

Only if you build it as a barrier. Asking for a reason is fine, presenting one offer is fine. Requiring an answer before the cancel button appears, stacking three offers they have to reject in sequence, adding countdown timers, or sending self-serve customers to a phone line are the patterns that get you in trouble. The rule of thumb that keeps you safe and also converts better: one screen, one offer, and a visible "just cancel" option on every step.

What save rate should I expect from a one-screen cancel flow?

Around 10 to 15% of the people who reach it, once the offers are matched to the reasons. A plain confirmation dialog saves low single digits, because "are you sure?" gives someone no new information. Vendors publish higher numbers than 15%, sometimes much higher, but those usually include aggressive discounting and heavier flows. Treat 10 to 15% as the honest planning number for a first version.

Should I show the offer before or after they pick a reason?

After. The reason is what makes the offer relevant, and relevance is doing most of the work here. An offer shown before you know why they are leaving is a guess, and a guessed offer reads as a generic retention bribe. The same discount that feels insulting to someone who could not get set up feels reasonable to someone whose budget was just cut.

Does this work for annual plans as well as monthly?

Yes, and the timing is different. Annual customers usually cancel by turning off renewal, which means the cancel click happens weeks or months before the money actually stops. That is a much better position than a monthly cancel, because you have real time to fix the reason they gave you. Route those answers to a person rather than an automated offer, and treat the renewal date as the deadline.
MA

Written by Mark Ashworth

Founder of ChurnTools. I spend my time studying how SaaS companies lose customers and building tools to help them stop. Previously worked in SaaS growth and retention across multiple B2B products. I also write about growth and answer-engine optimization (AEO) at growthpigeon.com.

Ready to run your first retention experiment?

Browse 30+ proven playbooks for reducing churn across every stage of the customer lifecycle.

Browse Experiments →