Cancellation Flow Design: The Current Rules and a Template
Design a cancellation flow that routes, surveys and offers correctly, with the current click-to-cancel law and a template you can copy today.

On this page
A subscription cancellation flow is a sequence of build decisions. Polishing the screen afterward won't fix one you got wrong underneath. Three of those decisions changed recently: what "pause" actually does at the billing level, what the law requires nationally right now, and what a vendor's save rate number is actually counting.
Most churn never reaches this flow at all: predicting churn before the cancel button is a different problem with its own signals. Cancellation flow design starts at the moment a customer does click cancel, with what your product shows them next.
In this guide:
- The six stages of a cancellation flow and the routing rule that decides which variant a customer sees
- A branching exit survey script and a four-level personalization ladder
- What Stripe's two "pause" mechanisms each do to billing and access
- The compliance rule that actually applies today, not the one several guides still describe
- How to define a save rate before you report one
What a cancellation flow is, and who should see which version of it
A cancellation flow is the routed sequence a subscriber moves through after clicking cancel: entry routing, an exit survey, a matched offer, a decline path, a confirmation, and a post-cancel follow-up.
The routing rule decides which variant of the rest a given customer sees. Chargebee describes seven steps, Userpilot walks through an implicit sequence, and Paddle names five stages it calls "the customer experience." Underneath the different labels, every subscription business runs the same six stages:
- Entry routing. The customer clicks cancel, and the system decides which flow variant to show before anything renders.
- Exit survey. One question asks why they're leaving.
- Matched offer. A discount, a pause or a downgrade responds to the stated reason.
- Decline path. The customer says no to the offer and continues toward cancellation.
- Confirmation. The cancellation is acknowledged in writing, with the effective date stated.
- Post-cancel follow-up. An email sequence tries to bring the customer back later; matching the right message to the right segment is user activation work.
Customers start that entry-routing step from different places: account or billing settings, an in-app downgrade or plan screen, a support email or chat request, or an app-store subscription setting on mobile. A failed or removed payment method starts it too, without any cancel screen. This flow intercepts the first four; a payment failure has to be caught upstream, in the billing system itself.
The cancel control itself should stay visible and plainly labelled on every one of those entry points, not buried behind an account menu or routed only through support.
Paddle's own product page states, under "Global compliance," that its Cancellation Flow is "intelligently surfacing compliant flows based on customer jurisdiction," as a bare feature bullet, without saying what actually differs between those workflows.
That gap is the routing rule most teams skip past. A flow with one variant for everyone either over-complies, by showing every customer its most restrictive version, or under-complies, by breaking a state law for the customers it applies to.
Route on subscription and account attributes first, then jurisdiction last, with one default fallback:
| Route on | Example values | Then |
|---|---|---|
| Plan tier / contract type | Monthly self-serve, annual, enterprise contract | Annual and enterprise accounts route to contact-us or a CS call, not self-serve cancel |
| Account age / lifetime value | New (<30 days), established, high-LTV | High-LTV accounts get a CS-routed offer path, not the default self-serve sequence |
| Jurisdiction | California (statute in force), everywhere else | California customers get a variant capped at one retention-offer surface, shown simultaneously with a persistent click-to-cancel link; everyone else can see the longer offer sequence |
| Default fallback | No jurisdiction or account signal matched | Show the California variant: one retention offer, simultaneous cancel link |
For California customers specifically, the routing rule is a legal requirement as much as a UX choice. A retention offer can be shown only if a persistent, simultaneous "click to cancel" link is shown at the same time.
The next section spells out exactly what that means. The routing table above is where the requirement has to be decided, before the survey screen even loads.
Building this yourself means owning the routing rule, the survey and the billing hooks. A vendor like Chargebee, Prosperstack or Churnkey sells a cancel flow SaaS teams can launch faster, but it still needs your billing-API mapping done correctly (next section) and your own compliance rule configured.
Neither choice removes those two decisions. Get the routing and the offer mechanism right, and the flow starts supporting a broader SaaS SEO strategy that keeps the customers acquisition already paid for, instead of losing them at the door.
Here's why the routing rule is worth the build time. At 1,000 active subscribers who pay $79 a month, an illustrative 4% reach the cancellation flow in a given month. That's 40 customers a month who hit these six stages.
At Churnkey's own stated save rate of roughly 54% for its Cancel Flows product, a working flow retains about 22 of them, or roughly $1,738 in monthly recurring revenue that would otherwise be gone.
A flow that skips routing and shows a generic offer to everyone won't hit that number. It's over- or under-complying with the law for some share of those 40 customers before the offer screen even has a chance to work.
Ask one question, then match the offer to the answer and the account
The exit survey works best as one branching question that routes straight to a matching save offer, with personalization rising to account usage data only once the reason alone stops moving the save rate.
Here's a cancellation flow example you can copy directly. The primary question: "Why are you canceling?" Five answer options, each routed to its own destination screen:
- "Too expensive." Routes to a discount or downgrade screen. (Which discount fits a price objection is churn-reduction's territory: this post's job stops at the offer mechanism, not the reason-to-offer mapping.)
- "Not using it enough right now." Routes to the pause screen (mechanism detailed below).
- "Missing a feature I need." Routes to a CS call, not an automated offer: a self-serve discount doesn't solve a feature gap.
- "Switching to another product." Routes to a tracked-reason follow-up note, no offer attached; a discount rarely reverses a decision already made elsewhere.
- "Other" (open text). Routes to confirmation with no offer attached, and the free-text response goes to product or CS for review.
The five branches above double as a cancellation flow template your design and engineering teams can implement directly. Each destination screen is already scoped.
Most flows stop there, at reason-matched offers. That's level 2 of a four-level personalization ladder, and each level up needs one specific piece of data the level below doesn't:
| Level | What it shows | Data it needs |
|---|---|---|
| 1. Generic | The same offer to every customer | None |
| 2. Reason-matched | An offer tied to the stated survey answer | The survey response itself |
| 3. Account-aware | The reason-matched offer adjusted by usage data (a heavy user gets a pause, not a discount) | Product usage or billing history |
| 4. Tested | The best-performing variant per segment, chosen by ongoing experiment | A/B test infrastructure and a defined save event (see the measurement section below) |
The save-rate gains above level 2 come from account data and tested variants, and each requires the specific data the level below it doesn't have yet. Skipping straight to level 4 without the usage data behind level 3 just tests noise.
Know what "pause" actually does before you build it
Stripe's "pause payment collection" keeps a subscription active while the customer keeps access; its separate "pause subscriptions" feature suspends invoicing entirely and revokes access through a webhook. Build the wrong one and you either give away free access indefinitely or bill a customer for a period your copy promised free.
The two mechanisms differ at every layer that matters to a merchant:
| Pause payment collection | Pause subscriptions (Public preview) | |
|---|---|---|
| Subscription status | Unchanged, stays active | Changes to "paused" |
| Invoices | Continue to generate (unless voided, marked uncollectible or kept as a draft) | Suspended entirely |
| Customer access | Kept during the pause | Revoked, via the merchant's own webhook handler |
| Webhook fired | None specific to the pause | customer.subscription.paused and related events |
| Requirements | None beyond a standard subscription | Flexible billing mode, API version 2025-06-30.preview or later |
Stripe itself labels "pause subscriptions" as Public preview, which means the requirements row above isn't optional. A subscription has to run in flexible billing mode on API version 2025-06-30.preview or later before that endpoint applies.
A "pause" button copy that says "we'll stop billing you" has to point at the second mechanism. Decide which one your "pause" offer maps to before the copy is written, so a support ticket isn't the first place the mismatch shows up.
Keep the decline path compliant with the law as it stands today
A federal click-to-cancel mandate is not currently in force nationally, but California's law is, and it requires a persistent, simultaneous "click to cancel" link any time a retention offer is shown during an online cancellation.
Here's what changed. The FTC's Negative Option Rule was the source of that federal mandate, and the Eighth Circuit's own docket confirms it issued an opinion and entered judgment against the rule on July 8, 2025, in Custom Communications, Inc. v. FTC, No. 24-3137.
The FTC's own rulemaking page separately shows a February 2026 revision "to conform to federal court decisions," and a March 2026 advance notice of proposed rulemaking that's still open for public comment. No new final rule has replaced it.
That's a meaningful difference from calling the rule dead for good: rulemaking is active again, and a future version could look different.
California didn't wait on the federal outcome. Its amended Automatic Renewal Law requires that any discounted offer, retention benefit, or information about the effects of canceling shown during an online cancellation appears only alongside a click-to-cancel link that's prominent and displayed at the same time, for contracts entered, amended or extended on or after July 1, 2025.
The statute doesn't cap the number of offers or use the phrase "single retention offer." It conditions any offer on that link being present and persistent.
A noncompliant decline path in California shows a discount screen and buries the cancel option in a footer link or behind a secondary click. A compliant one shows the same discount screen and keeps the cancel link next to the offer, equally visible at every step, so the customer never has to hunt for it.
Confirmation copy should state the effective date plainly: "Your subscription is canceled and access continues through the end of the current billing period." Design the decline path against the law that's actually in force for the jurisdiction you're serving.
Measure the save rate honestly
A save rate is only comparable once you've defined the denominator and the save event, and a vendor's advertised number is worth checking against its own current site before you use it as a benchmark.
No corpus guide defines either half of that ratio, so here's the definition this flow needs before a number means anything:
- Denominator: customers who actually reached the cancellation flow, not everyone who visited a billing page or opened a support ticket about canceling.
- Save event: still paying at a stated interval decided in advance, not a survey decline and not a clicked-but-unconverted offer.
- Observation window: long enough to exclude customers who accepted an offer and canceled anyway a week later; a save counted the day of the offer overstates the real number.
Track that save rate by signup cohort as well as one blended figure. A blended rate that looks flat overall can be rising for new signups and falling for older accounts at the same time, and cohort analysis is the tool built for separating the two.
Check a vendor's own number before you cite it as a benchmark. Churnkey's own current site states its Cancel Flows product saves "~54%" of customers, and separately states a baseline "32% Voluntary Churn Drop" across its customer base.
A competitor guide attributes a different platform-average figure to Churnkey, and that figure doesn't match what Churnkey itself currently states. Don't round the tilde off either number, and don't treat one vendor's own customer base as an industry-wide average.
Once you have a save rate you trust, Mission Growth's free LTV:CAC calculator turns it into a revenue number: a save rate is a percentage, but the retained MRR it represents is what justifies the engineering time this flow takes. That connects the retention side of the ledger to how content ROI gets measured on the acquisition side, so the two numbers sit in the same frame.
A cancellation flow is still a sequence of build decisions, and no amount of screen polish fixes one built on the wrong ones. The three that matter most right now are the billing mechanism behind "pause," the legal status of the decline path, and the definition behind whatever save rate you report.
Pick the routing rule and the pause mechanism first. The survey script and the offer copy are easy to change later; the billing and compliance decisions are the ones to lock down now.
Frequently asked questions
What counts as "a save" in a cancellation-flow save rate?
A save rate needs both halves defined: the denominator is customers who reached the cancellation flow, and the save event is still paying at a stated interval, not a survey decline or an offer that was clicked but never converted. Without both, two teams reporting the same headline rate can mean different things.
Does a cancellation flow have to look different for customers in different states or countries?
Yes, at minimum for California, which requires a persistent, simultaneous click-to-cancel link any time a retention offer is shown during an online cancellation, for contracts from July 1, 2025 onward. Other states may have their own automatic-renewal laws; check each one's actual statute text before building a specific mechanic for it.
Is a pause option the same thing as canceling and rejoining later?
No, and the difference depends on which Stripe operation you implement. "Pause payment collection" keeps the subscription active and the customer's access on while invoices keep generating; "pause subscriptions" suspends invoicing and revokes access through a webhook instead.
Should the exit survey ask about the cancellation reason before or after showing an offer?
Ask first. The survey response is what lets the offer screen respond to the actual reason instead of showing the same generic offer to everyone.
Is the FTC's click-to-cancel rule in effect right now?
No. The Eighth Circuit's own docket confirms it entered judgment against the rule on July 8, 2025, in Custom Communications, Inc. v. FTC, No. 24-3137. The FTC's own page shows the rule was revised to align with that court outcome, and only a request for public comment has been active since March 2026.
Figures and images in this post are free to reuse under CC BY 4.0 with credit to Mission Growth.
Get Mission Growth highlighted in your Google results.


