Downgrade to Free: The Cancellation Save Nobody's Churn Dashboard Agrees On
Dropping to a $0 plan hits GRR and NRR exactly like a cancellation — but logo retention and your win-back list often still call it active.
Somewhere in your cancellation flow is probably a version of this offer: "Not ready to leave? Switch to our free plan instead." It works, in the sense that the account doesn't close. The customer keeps their login, keeps their data, and technically never churns. What happens to that account in your metrics afterward depends entirely on which dashboard you're looking at — and most teams have never noticed that their dashboards disagree with each other.
Three ways a cancel click actually resolves
When someone clicks cancel, there are really only three outcomes. They leave entirely, with the subscription and usually the account itself eventually deleted. They accept a paid offer — a discount or a pause — and stay a paying customer, just a cheaper or dormant one. Or they drop to a $0 plan: still logged in, still technically a customer, contributing nothing to revenue.
That third path gets far less attention than the other two. Our downgrade churn piece covers the self-serve version of shrinking spend — a customer moving from one paid tier to a cheaper paid tier in account settings, outside the cancel flow entirely. This is different. A free-tier downgrade happens at the exact moment someone was about to leave, it takes MRR to exactly zero instead of partway down, and — unlike a paid downgrade — it puts the account in a genuinely ambiguous state that different tools will happily report in contradictory ways.
What actually happens to the numbers
Start with revenue. Gross revenue retention is calculated as starting MRR minus churned MRR minus downgrade MRR, divided by starting MRR. Say you begin the month with $50,000 in MRR across 250 accounts, and one $200/month customer drops to your free plan instead of cancelling. Whether your finance stack logs that $200 as "churned MRR" or "downgrade MRR" is an internal bookkeeping choice — either way, it's subtracted from the numerator. GRR doesn't care that the account is still open. It sees $200 gone and treats it exactly like a cancellation, because from a revenue standpoint, it is one.
Now look at logo retention — the percentage of customer accounts, not dollars, that stuck around. That same customer is still counted as a retained logo, because their account status never changed to canceled. Same event, opposite verdict, depending on which of the two most common SaaS health metrics you're reading. Neither number is calculated incorrectly. They're both doing exactly what they're designed to do. The problem is that most teams only build one of these two views deeply, and assume it tells the whole story.
The place this actually causes damage isn't the finance report — GRR gets the revenue math right regardless. It's everywhere else that keys off subscription or account status instead of MRR: your product's own "active users" count, your customer success tooling, and — most expensively — your win-back segmentation. A win-back campaign built to target "customers who cancelled in the last 90 days" will never see this account, because it never generated a cancellation event. It just sits at $0 MRR indefinitely, invisible to the exact re-engagement machinery built to bring it back to paying.
Source: ChartMogul, The SaaS Conversion Report (200 B2B software products, February 2026)
That last chart matters for a practical reason: 26% of SaaS products already run freemium as a primary entry point, and a chunk of the "free trial" and "reverse trial" slices land on a permanent free tier once the trial window closes. If your product already has a $0 plan somewhere in its pricing page, you already have a place to route cancelling customers — the question isn't whether to build a free tier, it's whether to point your cancel flow at the one you have.
Save offers, compared
| Offer type | Acceptance rate | What it does to MRR |
|---|---|---|
| Discount | 53.9% | Reduces MRR partially, temporarily |
| Pause | 19.2% | Suspends MRR, resumes automatically on a set date |
| Plan change (incl. downgrade to free) | 6.7% | Reduces MRR partially or fully, indefinitely |
| Other (trial extension, support, custom) | 20.2% | No direct MRR change |
Source: Churnkey, State of Retention 2025.
Discounts dominate because they're the easiest offer to build and the easiest for a customer to say yes to — nothing changes about how they use the product. Plan changes sit at the bottom of the list partly because fewer companies build the flow at all, and partly because a customer has to actively decide to use a smaller version of the product, which is a bigger ask than accepting 20% off for three months. But a discount just delays the same cancellation conversation by a few months. A free-tier downgrade, done right, ends it — the customer either finds enough value to upgrade again, or they don't, and either way you're not re-running this exact save offer on them next quarter.
Full cancel vs. downgrade to a lower tier vs. downgrade to free
| Outcome | Account status | Data retained? | Typically shows up in win-back segments? |
|---|---|---|---|
| Full cancellation | Canceled / deleted | Usually purged on a schedule | Yes — this is the default win-back audience |
| Downgrade to lower paid tier | Active, paying | Fully retained | No — still a paying customer |
| Downgrade to free ($0) | Active, non-paying | Fully retained | No — status reads active, so most tools skip it |
The last row is the gap. A fully cancelled account gets a win-back email sequence because it's obviously churned. A free-tier account gets nothing, because nothing in the data model flags it as a problem — even though, from a revenue standpoint, it's identical to the cancelled account. It costs $0/month either way. The only difference is that one of them is sitting inside your product, logged in, which is actually a better position to convert from than a cold email to someone who hasn't opened your app in six months.
Instrumenting it so both sides agree
Three changes close most of the gap, and none of them require rebuilding your billing page:
Fire a distinct event on the way down
Don't let a downgrade to $0 disappear into a generic subscription.updated webhook. Log it as its own event — plan before, plan after, MRR delta, and whether it originated from the cancel flow or a self-serve settings change. That single event is what makes every downstream report possible.
Build a "$0 MRR, still active" segment and feed it to win-back
Query for accounts with an active status and zero MRR for more than some threshold — 30 or 60 days is reasonable — and route them into the same re-engagement machinery you already run for lapsed trials or churned customers. Because these accounts are logged in, in-app prompts and product-usage-triggered nudges outperform email here; you don't need to win back their attention, only their willingness to pay again.
Decide, in writing, whether $0-MRR-active counts as "churned" for logo retention
Pick a definition and put it in your metrics documentation so GRR, logo retention, and your board deck all use the same rule. Most finance teams land on: revenue metrics always count it as lost (the math already does this correctly), while logo retention counts it as retained only if the account has been active — meaning logged in and using the product, not just technically not-deleted — within the last 60 days. An account that hasn't opened the app since it downgraded is not meaningfully different from one that cancelled outright, whatever its database status says. The dollar retention rate calculator can model this directly — run the same cohort once counting free-tier accounts as retained and once counting them as churned, and see how far apart the two numbers land.
When it's worth offering in the first place
A free-tier downgrade only earns its place in a cancel flow if the free plan is a genuinely useful smaller product, not a crippled shell designed to make people miserable enough to upgrade. If your free tier can't do anything meaningful on its own, offering it as a save is just a discount with extra steps — the customer either upgrades again quickly, out of frustration, or abandons the account within a month anyway, except now you're hosting it. The offer works when the free tier is good enough that a downgraded customer keeps opening the product, because every session is another chance for a usage limit or a feature gate to remind them what the paid plan does that this one doesn't.
Weigh that against the actual cost of keeping the account: infrastructure, support load, and the data-retention and compliance obligations that come with an account that still technically exists. For most SaaS products those costs are small relative to full acquisition cost, which is why the trade is usually worth making — but it's worth making on purpose, measured the same way on every dashboard, rather than as a cancel-flow feature nobody revisited after it shipped.
Cancellation flows get built to answer one question — will this person stay or leave — when a meaningful slice of the answer is actually "neither, yet." A tool like CancelFlow that routes a save offer based on why someone's leaving can point the free-tier downgrade at the customers it actually fits, instead of offering it universally or not at all — and once that account exists at $0 MRR, the same discipline that built your cancellation flow should decide what happens to it next.
Frequently asked questions
Does downgrading to a free plan count as churn?+
It depends which metric you ask. Gross and net revenue retention count it exactly like a full cancellation, because both formulas subtract the lost MRR from starting MRR regardless of whether the account technically stays open. Logo retention, subscription-status dashboards, and most CRM win-back segments count it as a retained, active customer, because the account was never cancelled. Neither answer is wrong — they are measuring different things, which is why teams need to pick one definition and apply it consistently instead of letting each tool default to its own.
Should I offer a free plan instead of cancellation on my cancel flow?+
Only if two things are true: your free tier delivers enough real value that a downgraded user has a reason to come back, and you can afford to host inactive-to-low-usage free accounts indefinitely. If your free tier is a crippled trial shell rather than a genuinely useful lightweight product, offering it as a save just delays a cancellation by a few months while adding a customer to your infrastructure bill.
What's the difference between downgrading to free and pausing a subscription?+
A pause is time-boxed and reversible without re-entering payment details or reactivating from scratch — Stripe resumes billing automatically at a set date. A downgrade to a free plan is indefinite and usually requires the customer to actively choose to upgrade again; there is no resume date. Pause suits customers with a temporary reason to stop paying (seasonality, a leave of absence). Downgrade to free suits customers who are not coming back to the paid tier soon, but might still use a lighter version of the product.
How do I track downgrade-to-free separately from cancellation in my analytics?+
Fire a distinct event — something like account.downgraded_to_zero — separate from subscription.deleted, and store the previous plan and MRR on it. Then build your churn and win-back reporting off that event stream instead of off subscription status alone, so an account sitting at $0 MRR for 90 days shows up in the same 'at risk of full churn' segment a lapsed trial would, instead of getting filtered out because its status still reads active.
Stop losing subscribers today
One script tag. One function call. A live cancellation flow in under 10 minutes.
Start free trial →