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 themeExample actionsOffer types (where applicable)
Too expensiveDiscount, downgrade, pauseCoupon, plan switch, pause
Not using enoughEducation, pause, downgradePause, contact team
Missing featureRoadmap conversation, workaroundContact team
Switching competitorWin-back later, learn positioningContact team or none
Temporary business changePause, downgradePause, 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.