Click-to-cancel compliance for SaaS: how to save customers without dark patterns
California AB 2863, ROSCA enforcement and the UK DMCC rules all target cancel flows that trap people. Here's how to save customers and stay on the right side of them.
Posted by
Related reading
What's a good save rate? Benchmarks for cancel flows
15–35% is the honest range. Here's how that breaks down by reason, what drags it down, and which number you should actually optimise.
Win-back emails that actually bring people back
One well-timed email beats a drip campaign. When to send it, what to offer, and when to leave cancelled customers alone.
Involuntary churn on Stripe: how much you're losing and how to recover it
20–40% of SaaS churn on Stripe is a card that failed, not a decision. How to size it, and the recovery playbook: retry windows, three emails, an in-app banner.
The regulators are right about this one
Click-to-cancel rules exist because subscription companies earned them: cancellation flows with five confirmation screens, retention phone calls you can't skip, buttons labelled "I don't want to save money". If your cancel flow is a maze, the law is coming for it — and honestly, your customers left first.
Where that law stands today: California's AB 2863 allows one save attempt, with the option to cancel continuously visible throughout. The FTC's own click-to-cancel rule was vacated in July 2025, but ROSCA enforcement carried on — the Amazon settlement in September 2025 was the largest yet. In the UK, the DMCC subscription rules commence in spring 2027. The three don't line up exactly, but a flow that satisfies the strictest of them satisfies all of them.
The uncomfortable truth for people selling retention software: a save flow and a dark pattern are separated by three design decisions, not by intent. Here they are.
1. Cancelling must always work, in one path
"No thanks, continue cancelling" appears on every screen of a fair flow, styled as a real button, and it does what it says. The whole journey — reason, one offer, confirm — takes under 30 seconds. If a customer can't cancel because your flow errored, that's worse than never having a flow: it converts a cancellation into a chargeback and a public complaint.
2. One offer, not an auction
Escalating offers — decline 20%, get offered 40%, decline that, get 60% — train your best customers to cancel annually as a negotiation tactic. One targeted offer preserves the price integrity of your product and the self-respect of the exchange. If they decline it, let them go well.
3. The offer must be real and instant
"Applied at your next billing cycle" — automatically, verifiably, without a support ticket. An accepted pause that doesn't actually pause billing is fraud with extra steps. This is why Churntide applies outcomes directly on the subscription when you connect a billing key: the promise in the flow and the state in Stripe can't drift apart.
Fair flows convert better anyway
The pattern we see repeatedly: honest flows save 15–35% of cancellers, and — the part nobody expects — customers who cancel through a fair flow come back at meaningfully higher rates. A win-back email lands differently when the last interaction with your product wasn't a fight. Retention is a long game; the exit experience is part of the product.