Product · 11 min read · 2026-07-30
SaaS Feature Sunset: Measure Usage Before You Kill It
Deciding to remove a SaaS feature is one of the riskiest product actions there is, and it is almost always made on the thinnest data. The usual trigger is a maintenance burden and a low usage number — 'only 5% of users touch this, let's kill it' — and the usual result, when it goes wrong, is a churned enterprise account that silently depended on the feature nobody thought mattered. Feature-sunset analytics is the practice of measuring real dependency before you deprecate, so the decision rests on who breaks if the feature is gone, not on a headline percentage that hides exactly the accounts you cannot afford to lose.
This is the mirror image of measuring adoption. Where our guide to measuring feature waste helps you find candidates for removal, this post is about the step after: confirming a candidate is actually safe to remove. The two use the same event data but ask opposite questions — 'is this dead weight' versus 'who depends on this'. As one deprecation playbook advises, you start by digging into login data, feature engagement metrics, and support tickets tied to that legacy tool. But the raw engagement number is where most teams stop, and it is precisely the number most likely to mislead them.
The usage rate hides your biggest accounts
A feature usage rate is an average, and averages conceal concentration. The classic worked example is comforting on its face: if 3,500 of your 10,000 users touched the reporting dashboard last month, that is a 35% usage rate and clearly a keeper. Invert it and the danger appears — if only 200 of 10,000 use a feature, the 2% rate reads as obviously disposable. But if those 200 include your five largest contracts, a regulated-industry customer, and the account your biggest logo renewal depends on, that 2% is the most load-bearing 2% in the product. The rate did not tell you that, because a rate cannot: risk lives in the distribution, not the mean.
This is why the first move in any sunset analysis is to decompose usage by account value. Weight each account's usage of the feature by its contract size, and the picture often flips completely: a feature that looks like 4% dead weight turns out to concentrate in accounts representing a fifth of ARR. Conversely, a feature at 15% usage that is spread thinly across tiny free-tier accounts with easy alternatives may be far safer to remove than the 4% one. The headline usage rate is the starting point of the analysis, never the conclusion — and treating it as the conclusion is how deprecations become involuntary-churn incidents.
Measure dependency, not just usage
Usage tells you a feature is touched; dependency tells you something breaks without it. These are different, and the gap between them is where removal risk hides. An account might open a feature occasionally out of habit — losing it is an annoyance. Another account might route a business-critical export through it every night via an integration you cannot see in a usage dashboard — losing it breaks their operation and triggers a churn conversation. To find the second kind, you have to look past feature-open events to the downstream events that depend on the feature: exports, API calls, automations, scheduled jobs, and integrations that would silently fail if the feature disappeared.
Instrument those downstream dependencies explicitly. For each account that uses the feature, capture whether it also triggers a dependent action — a scheduled report, a webhook, a data export other systems consume — because those are the true blast radius of a removal. This is the same reason a disciplined event taxonomy and tracking plan pays off at the end of a feature's life as much as the beginning: if your events only record 'feature opened' and never the downstream actions it feeds, you are blind to exactly the dependencies that make removal dangerous. A feature that looks lightly used but anchors a chain of automations is not a cleanup candidate — it is a migration project.
Concentration, recency, and the whale problem
Three cuts of the data turn a usage number into a removal risk assessment. Concentration answers whether usage is diffuse across many small accounts or concentrated in a few large ones — the former is far safer to remove than the latter. Recency answers whether the remaining usage is active or vestigial: an account that last touched the feature four months ago is a weaker dependency than one using it daily, even if both count toward the same usage rate. Value-weighting overlays contract size on both, so you can see whether the concentrated, recent users are also the expensive ones — the whale problem in one view.
Run together, these produce a short, actionable list: the specific accounts that use the feature recently, depend on it via downstream actions, represent meaningful revenue, and would have no obvious alternative if it vanished. That list — not the aggregate percentage — is the real input to the deprecation decision. If the list is empty or trivial, you can remove the feature cleanly. If it contains three of your top ten accounts, the question is no longer 'should we deprecate' but 'how do we migrate these accounts first'. Reading these cuts correctly depends on trusting the underlying data, which is why a sunset analysis should sit on top of a passed analytics data-quality audit: a removal decision made on events that are double-firing or missing for a segment is worse than no decision at all.
Instrument the migration, not just the cutoff
Once you have decided to sunset a feature that has real dependents, the analytics job shifts from the decision to the transition. The mistake is treating deprecation as a date — a hard switch-off announced by email — rather than as a migration you monitor account by account. Define a sunset window, commonly 60 to 90 days, tag every account currently dependent on the old feature, and instrument both the old path and its replacement so you can watch each dependent account cross over. The metric that matters during the window is the migration curve: the share of tagged accounts that have adopted the replacement or stopped needing the old path.
A migration curve turns a risky removal into a managed one. If it climbs steadily and reaches near-complete before the cutoff, the sunset is safe. If it stalls with a cluster of accounts still on the old feature two weeks before the deadline, you have a precise, named list for customer-success outreach — and the option to extend the window for those accounts rather than force a churn-inducing cutoff. Instrumenting a 'last active on feature X' timestamp per account is what makes this possible; without it, you announce a date, cross your fingers, and discover who depended on the feature only when their tickets arrive. The migration curve is also the evidence that lets you close the feature down with confidence rather than leaving a half-dead code path alive indefinitely because nobody could prove it was safe to remove.
When to keep a low-usage feature alive
Not every low-usage feature should be migrated off and removed — some should simply be kept, and the data tells you which. A feature with low but stable usage, no meaningful maintenance cost, and a concentration of high-value or strategically important accounts is often worth leaving exactly as it is. The maintenance-burden argument only holds when the burden is real; a stable feature that rarely breaks and quietly retains an important segment is cheap insurance, not dead weight. The analysis should therefore weigh the actual engineering cost of keeping the feature against the concentrated value it retains, not reflexively equate low usage with 'remove'.
There is also a strategic-signalling dimension the raw numbers miss. Some features exist to win or retain a specific class of customer — a compliance export for regulated buyers, an admin control that enterprise procurement demands — and their value is in the deals they unblock, not the daily active count. Removing one to save maintenance can quietly cost you a segment you were not tracking. The discipline here is the same one that runs through all sound measurement work: decide based on the outcome a feature protects, not the vanity of its usage line — the posture our decision-first analytics framework applies to every metric. A number only earns a removal when it accounts for who breaks, how much they are worth, and whether they can be moved.
FAQ
How do I decide whether to deprecate a SaaS feature? Base it on dependency, not a headline usage rate. Deprecate only when usage is low, diffuse across accounts, and the dependent accounts have a viable migration path — never on the aggregate percentage alone.
Why is a low feature usage rate misleading? Because an average hides concentration. A 2% usage rate that includes your five largest contracts understates removal risk dramatically; deprecation risk lives in the distribution, not the mean.
What analytics should I capture before a sunset? Usage rate, per-account usage weighted by contract value, recency of each dependent account's last use, and the downstream events (exports, integrations, automations) that break if the feature disappears.
How do I track a feature migration during the sunset window? Tag every dependent account, instrument both the old feature and its replacement, and watch the migration curve — the share of tagged accounts that have crossed over — so you can target outreach before the cutoff.
Is it worth instrumenting features you plan to remove? Yes. Removal is high-risk and under-instrumented; the same event data that flags dead weight also tells you whether removal is safe, and migration instrumentation converts a hard cutoff into a monitored transition.
FAQ
How do I decide whether to deprecate a SaaS feature?
Base the decision on dependency, not on a headline usage rate. A feature used by only 5% of users can still be load-bearing for your three largest accounts, a compliance workflow, or an integration you can't see. Before deprecating, measure four things: the raw usage rate, the concentration of that usage (is it spread across many accounts or a few whales), the revenue represented by the accounts that depend on it, and whether any of those accounts have no viable alternative. Deprecate only when usage is low AND diffuse AND the dependent accounts have a migration path.
Why is a low feature usage rate misleading for deprecation?
Because an average hides concentration. If 3,500 of 10,000 users touch a feature that is a 35% usage rate, but if 200 of 10,000 do and those 200 include your five largest contracts, the raw 2% rate dramatically understates the risk of removal. Usage rate is an aggregate; deprecation risk lives in the distribution. You have to break usage down by account value and by whether the dependent accounts have somewhere to go before you read a small percentage as 'safe to kill'.
What analytics should I capture before sunsetting a feature?
Capture the current usage rate, the per-account usage distribution weighted by contract value, the recency of each dependent account's last use, and any downstream events that break if the feature disappears (exports, integrations, automations). Also instrument a 'last active on feature X' timestamp per account so you can track the migration curve after you announce the sunset. The point is to move from 'how many people use it' to 'who breaks if it's gone, and can they be moved'.
How do I track a feature migration during a sunset window?
Instrument both the old feature and its replacement, then watch each dependent account cross over. Define the sunset window (commonly 60-90 days), tag every account currently dependent on the old feature, and track the share that has adopted the replacement or stopped needing the old path over time. A stalled migration curve tells you which specific accounts need outreach before the cutoff, turning a risky removal into a managed, per-account transition rather than a hard switch-off that generates churn and support load.
Is it worth instrumenting features you plan to remove?
Yes — removal is one of the highest-risk product actions and the least-instrumented. Killing a feature that a whale account silently depends on can trigger churn worth far more than the maintenance you saved. The same event-level data that tells you a feature is dead weight also tells you whether it is safe to remove, and the migration instrumentation converts a hard cutoff into a monitored transition. Deprecation without measurement is how teams turn a routine cleanup into an involuntary-churn incident.