Guide
Cancellation Survey Questions: 25+ Questions to Understand Why Customers Churn
Stripe tells you who cancelled and how much MRR left. It does not tell you why. A cancellation survey collects that missing signal while the customer is still in your product — before the subscription ends.
This guide is for SaaS and subscription teams billing through Stripe. You will get 25+ example questions you can adapt, guidance on which ones to show, and a framework for turning answers into retention actions and product priorities.
These are examples to customize — not a 25-question form to deploy verbatim. Most teams ship five to eight reason options plus one optional follow-up.
Last updated September 27, 2026
Why cancellation surveys matter for SaaS churn
Voluntary churn is when a paying subscriber chooses to cancel. Silent churn is when they leave without telling you why. Without a survey at cancel time, you are left guessing whether the problem was price, product fit, support, or something outside your control.
A post-cancellation email is usually too late for useful feedback. By then the customer has often moved on, and you have missed the moment to offer a pause, downgrade, or fix while they are still in your product.
A short in-flow survey gives you four things: clearer product priorities, better-targeted save offers, signals for support and onboarding gaps, and honest competitive intelligence when someone names an alternative.
What a cancellation survey is (and is not)
A cancellation survey — sometimes called an exit survey in a subscription context — is structured feedback collected when someone tries to cancel. It is not an employee offboarding interview, a post-purchase satisfaction survey, or a 15-minute market research questionnaire.
For SaaS, the goal is one actionable reason per cancellation, with optional space for detail. That is enough to route a save attempt and rank themes over time.
The best time to ask: inside the cancellation flow
Ask after the customer clicks cancel in your app, before the subscription ends. That is when intent is highest and a relevant retention offer still makes sense.
The workflow looks like this: cancellation signal → reason → retention action → outcome → churn insight. Each step feeds the next. Skip the reason step and you are back to counting cancellations without understanding them.
How to design a cancellation survey customers will actually answer
Keep the survey short. One required reason plus zero or one follow-up is enough for most products. Customers came to cancel — respect that.
Use structured multiple-choice reasons for reporting, and add open text only where nuance helps. Place the survey inside your cancellation flow — not as a separate form days later. Make the cancel path obvious: nobody should hunt for how to leave.
Multiple choice vs open text
Multiple choice makes aggregation possible. “Too expensive” selected 40 times is actionable; 40 unique free-text answers are harder to summarize.
Open text works best as a follow-up: “Anything else we should know?” after the customer picks a reason. You can make the primary reason required and the follow-up optional.
How many questions is too many?
A practical rule: one required reason and at most one follow-up prompt. At cancel time, longer surveys add friction for customers who have already decided to leave — keep the form short so completion stays high and answers stay usable.
Common mistakes that hurt response quality
- Showing 15+ reasons with heavy overlap
- Leading questions such as “Are you sure you want to make a mistake?”
- Hiding or delaying the cancel button behind multiple screens
- Offering the same discount regardless of reason — which trains customers to click cancel for a coupon
25+ cancellation survey questions to ask churning customers
Below are example reason labels and follow-up prompts. Adapt the wording to your product. You do not need to show all of them — pick the themes that match your business and merge overlapping options.
Price, budget, and perceived value
- Too expensive for what I get
- No longer fits our budget
- Price increased or billing was unexpected
- Not enough value for the price
- Found a cheaper alternative
- Need to cut software spend
Product fit, usage, and outcomes
- Not using it enough
- Does not solve our problem anymore
- Missing a feature we need
- Product is too complex or hard to use
- Switched to a tool that fits better
- Outgrew the product — need more advanced capabilities
Onboarding, support, and experience
- Poor onboarding — never got set up properly
- Support did not resolve my issue
- Bugs or reliability problems
- Integration missing or broken
- Team adoption was low
Competition and alternatives
- Switching to a competitor
- Building in-house instead
- Consolidating tools or reducing vendors
- Recommended by someone else to switch
Business and account context
- Company shutting down or layoffs
- Project ended or seasonal need finished
- Role changed — no longer need access
- Merged with another account
Optional follow-up prompts (open text)
- Anything else we should know?
- What would have changed your mind?
- Which feature or change would have kept you?
- What are you switching to? (optional — can be sensitive)
Examples only — customize labels for your product and audience.
How to pick the right 5–8 reasons for your product
Start from the themes above, not the full list. Merge options that mean the same thing to your customers (“too expensive” and “not enough value” might be one reason for you). Avoid double-barrel labels like “too expensive and missing features.”
Randomizing the order of reasons can reduce first-option bias, where customers pick whatever appears at the top. That is optional but useful if you have six or more choices.
Product, customer success, or growth usually owns the reason taxonomy. Revisit it quarterly or when you see a spike in a single theme.
Example starter sets by SaaS type
These are illustrative starting points — not benchmarks. Adjust based on what you hear in support tickets and sales calls.
- PLG self-serve SaaS: not using it enough, too expensive, missing a feature, product too complex, found a cheaper alternative
- B2B team SaaS: low team adoption, missing a feature, poor onboarding, switching to a competitor, no longer fits budget
- API or developer tool: integration missing or broken, reliability problems, building in-house, outgrew the product, switching to a competitor
What to do with each answer (map reasons to actions)
A reason without a next step is just a label in a database. The point of the survey is to route each answer to something your team can do — including a targeted retention offer when it makes sense.
Reason → retention action framework
Map each reason to an action first. Then decide whether a save offer belongs in the flow. ChurnIntel supports four offer types in Stripe: coupon, billing pause, plan switch, and contact team.
| Reason theme | Example actions | Offer types (where applicable) |
|---|---|---|
| Too expensive | Discount, downgrade, pause | Coupon, plan switch, pause |
| Not using enough | Education, pause, downgrade | Pause, contact team |
| Missing feature | Roadmap conversation, workaround | Contact team |
| Switching competitor | Win-back later, learn positioning | Contact team or none |
| Temporary business change | Pause, downgrade | Pause, plan switch |
When not to offer a discount
A blanket discount for every reason teaches customers that cancel is the path to a coupon. Use offer-once and cooldown rules where your product supports them, and skip the offer entirely for reasons that need product fixes — not price cuts.
What to fix in the product vs what to save in the flow
“Missing a feature” often needs a roadmap conversation, not 20% off. “Not using it enough” might respond to a pause or onboarding help. The survey’s job is to send each answer to the right owner: product, support, sales, or a save offer in the cancellation flow.
How to measure cancellation survey results (beyond response counts)
Counting how often each reason was picked is a start. It is not the whole picture. Ten cancellations from $20/month accounts and two from $2,000/month accounts tell different stories — but a simple count treats them the same.
Revenue-weighted ranking multiplies each reason by the MRR behind it, so the top line item is the theme costing you the most money. Track offer accept rate per reason and the path from reason → offer → outcome where your tooling allows it.
For more on reporting, see churn analytics ranked by lost MRR.
What to review weekly vs monthly
- Weekly: top reasons, sudden spikes, offer acceptance rates, support themes tied to recent cancellations
- Monthly: product roadmap input from recurring reason clusters, pricing signals, competitive mentions, onboarding gaps
Stripe-specific considerations
Stripe records cancellations and MRR movement. Native “why” data is limited unless you use the Stripe customer portal cancellation flow or build your own survey.
According to Stripe's documentation, the customer portal can collect cancellation feedback and optionally present a retention coupon before the customer confirms. Portal configuration — including which reasons appear — is described in Stripe's portal docs.
A custom in-app flow lets you define your own reason list, show different offers per reason, and report on outcomes in your product. That requires more implementation than turning on the portal, but it fits teams that want the survey inside their app. See how ChurnIntel connects to Stripe for one approach.
Stripe portal capabilities can change. Verify current behaviour in Stripe’s docs before you rely on them in your own flow design.
Putting it together: a simple cancellation survey workflow
- Choose 5–8 reasons from the examples above and adapt the labels
- Add one optional free-text follow-up prompt
- Place the survey inside your cancel flow — not only in a post-churn email
- Map each reason to an action and, where appropriate, a retention offer
- Let customers cancel if they still want to — no retention loop
- Review reasons by revenue impact, not just frequency
- Feed recurring themes into product, support, and pricing decisions
How ChurnIntel runs cancellation surveys in Stripe SaaS
You can run cancellation surveys manually or with your own build. ChurnIntel is one option for Stripe-powered teams that want the survey embedded in a cancellation flow without hosting a separate survey page.
ChurnIntel runs the survey inside your app when you call window.ChurnIntel.showCancelFlow() from your existing cancel button. Reasons are configurable per flow without a code deploy. You can require or skip the survey, randomize reason order, and collect free-text follow-up.
Each reason maps to a retention offer — Stripe coupon, billing pause, plan switch, or contact team — applied in Stripe when the customer accepts. Outcomes are recorded with subscription MRR attached, so you can rank reasons by lost revenue, export responses, and view the journey in a Sankey chart.
ChurnIntel connects through Stripe Connect OAuth with read and write access. Write access is required because the flow applies coupons, pauses, plan switches, and cancellations on your behalf when customers act.
ChurnIntel does not ship AI classification of free-text, email exit surveys, hosted no-code cancel pages, multi-billing support, or failed-payment recovery. It handles voluntary churn inside the in-app cancellation flow.
Run cancellation surveys inside your Stripe cancel flow
Capture reasons at cancel time, map each answer to a retention offer, and rank themes by lost MRR — without sending a separate survey link.