SaaS Cancellation Feedback Case Study: How to Measure What You Learn
A step-by-step template for running a 30-day cancellation feedback experiment on your SaaS. Track reason distribution, identify your #1 churn driver, and measure the impact of fixing it.
Why most SaaS teams never learn from churn
Cancellation data is only useful if you do something with it. Most founders install a feedback step, glance at the dashboard once or twice, and never build a process around it.
The teams that actually reduce churn treat cancellation feedback like a structured experiment: collect for a defined period, analyze the patterns, ship a fix, and measure whether the fix worked.
This article is a template for running that experiment. Whether you use Leavely or your own custom setup, the framework is the same.
The 30-day cancellation feedback experiment
The idea is simple. You run a structured 30-day window where you collect every cancellation reason, analyze the data, pick one problem to fix, and then track whether your fix actually moves the needle.
Here is the full process, broken into four phases.
Phase 1: Setup (day 1)
Before you start collecting, you need three things in place.
Define your cancellation reasons
Write a list of 5-8 predefined reasons. Every option should map to something your team can investigate or act on. A strong default list:
- Too expensive / not worth the price
- Missing a feature I need
- Found a better alternative
- Not using it enough
- Too complicated / hard to use
- Bugs or reliability issues
- Just testing / evaluating
Avoid vague options like "Other" or "Personal reasons" as primary choices. They generate noise, not signal. If you include an "Other" option, make it the last one and require a comment.
Install the feedback step
Add a cancellation feedback modal to your cancel flow — wherever users cancel their subscription, delete their account, or downgrade their plan. The modal should appear after the user clicks "Cancel" but before the action is confirmed.
With Leavely, this is one script tag and one function call. With a custom setup, you need a modal component, a backend endpoint to store the data, and a way to review it later.
Set your baseline metrics
Before the experiment starts, write down your current numbers:
- Monthly churn rate (logo or revenue)
- Number of cancellations per month
- Current MRR
- Any qualitative feedback you already have (support tickets, emails, NPS comments)
You will compare these numbers against the same metrics 30-60 days after shipping your fix.
Phase 2: Collect (days 1-30)
For the next 30 days, collect every cancellation reason and comment. Do not act on the data yet — just let it accumulate. You need enough volume to see patterns, not individual anecdotes.
What to track
For each cancellation, record:
- The reason — which predefined option the user selected
- The comment — the optional free-text field (this is where the real insight lives)
- The date — so you can spot spikes after deploys, pricing changes, or outages
- Plan tier — a user on your $9 plan saying "too expensive" is a different signal than a user on your $99 plan
- Tenure — how long the user was a customer before cancelling
Leavely captures the reason, comment, and date automatically. Plan tier and tenure require cross-referencing with your Stripe data.
Weekly check-ins (don't skip these)
Every Monday, spend 15 minutes scanning the latest feedback. You are not analyzing yet — you are looking for anything urgent:
- A sudden spike in "bugs" after a deploy → investigate immediately
- Multiple users naming the same competitor in comments → note it for analysis
- A comment describing a critical workflow that is broken → consider a hotfix
These check-ins are triage, not strategy. The strategy comes after 30 days.
Phase 3: Analyze (day 31)
After 30 days, export your data and build the full picture.
Step 1: Reason distribution
Calculate the percentage for each cancellation reason. A typical distribution might look like:
- Not using it enough: 32%
- Too expensive: 28%
- Missing a feature: 18%
- Found an alternative: 12%
- Bugs: 6%
- Other: 4%
This is your churn map. The biggest bucket is your highest-leverage fix.
Step 2: Read every comment
Go through every free-text comment, grouped by reason. Look for patterns:
- Under "too expensive" — are users mentioning a specific competitor's pricing? Are they on the lowest tier or the highest?
- Under "missing feature" — is there one feature that comes up more than twice? That is a strong signal.
- Under "not using it enough" — are users saying they forgot about the product? That is an engagement problem, not a value problem.
Step 3: Cross-reference with plan and tenure
Break down the data by plan tier and customer lifetime:
- Short-tenure cancellations (first 30 days) dominated by "not using it enough" → onboarding problem
- Long-tenure cancellations citing "too expensive" → the user stopped seeing increasing value over time
- High-tier users leaving for a competitor → you are losing your best customers to a specific alternative
Step 4: Pick one problem
Do not try to fix everything. Choose the single cancellation reason with the highest percentage and the clearest path to a fix. Document your choice:
- Problem: [The #1 cancellation reason]
- Supporting data: [X% of cancellations, Y comments mentioning Z]
- Hypothesis: [If we fix A, we expect this reason to decrease by B%]
- Planned fix: [Specific action — feature build, pricing change, onboarding improvement, etc.]
- Timeline: [When you will ship the fix]
Phase 4: Fix and measure (days 32-60+)
Ship your fix, then continue collecting cancellation feedback for another 30 days. Compare:
- Did the target reason decrease? If "not using it enough" was 32% and you shipped a re-engagement email sequence, did it drop to 20%? 15%?
- Did overall churn rate change? Check your monthly churn rate before and after the fix.
- Did a different reason increase? Sometimes fixing one problem surfaces another. That is expected — it means you removed the top layer and can now see the next one.
Document the results
This is where the case study comes together. Write up:
- Before: Baseline churn rate, reason distribution, the problem you identified
- The fix: What you shipped, how long it took, any tradeoffs
- After: New reason distribution, change in churn rate, change in MRR impact
- What you learned: Surprises, things you would do differently, next problem to tackle
This write-up is valuable for three reasons: it aligns your team, it creates accountability, and — if you are comfortable sharing it — it becomes one of the most powerful marketing assets you can publish.
A real example of what this looks like
Imagine a project management SaaS collecting cancellation feedback for 30 days. The data shows:
- 35% of cancellations cite "not using it enough"
- Comments reveal patterns: "forgot about it", "only used it the first week", "didn't have time to set it up properly"
- Most of these cancellations happen within the first 21 days
- Users on the lowest tier churn at 3x the rate of higher tiers
The founder decides to fix onboarding. They ship three changes: a welcome email sequence with quick-start guides, an in-app checklist that highlights the three highest-value actions, and a "you haven't logged in this week" reminder email at day 7 and day 14.
After another 30 days of collecting feedback:
- "Not using it enough" drops from 35% to 19%
- Overall monthly churn drops from 8.2% to 6.1%
- "Too expensive" is now the top reason at 30% — which is the next problem to solve
That is one cycle. Each cycle makes the product slightly better at keeping users. Over six months, three or four cycles compound into a meaningful retention improvement.
How to set this up with Leavely
Leavely handles the collection and visualization parts of this framework:
- Define your cancellation reasons in the dashboard
- Drop the script into your cancel flow (React, Next.js, or plain HTML)
- The dashboard shows reason distribution and trends over time
- Export to CSV for deeper analysis in Sheets, Notion, or your BI tool
The analysis, fix, and measurement steps are on you — Leavely gives you the data, you decide what to do with it.
You can start on the free plan (up to 50 feedbacks per month) and run your first 30-day experiment without paying anything.
The template, summarized
For easy reference, here is the full process on one page:
Day 1: Define 5-8 cancellation reasons. Install the feedback modal. Write down baseline churn metrics.
Days 1-30: Collect feedback. Weekly 15-minute check-ins for urgent issues. Do not optimize yet.
Day 31: Export data. Calculate reason distribution. Read every comment. Cross-reference with plan tier and tenure. Pick the #1 problem to fix.
Days 32-60: Ship the fix. Continue collecting feedback. Compare reason distribution and churn rate before vs after.
Day 60: Document results. Share with your team. Pick the next problem. Repeat.
Every cancellation is a signal. This template turns those signals into a system.
Ready to understand why users cancel?
Start collecting cancellation feedback in your SaaS — free plan, live in 5 minutes.
Get started free →