Churn · Survey analysis
How to read churn survey replies: sort "too expensive" by what happened
"Too expensive" is a label, not a cause. Sort churn survey replies by what the person did, count each group, and reread the replies under the top counts.
In short
Read churn survey replies by sorting them on what the person did, not on the reason they gave. Give each reply a short label, count the labels, then reread the replies under your biggest counts. "Too expensive" usually splits into several different problems with different fixes.
This post covers why the stated reason misleads, a worked example with 40 replies, how to do the counting in a spreadsheet, and when to use something else. If you haven't written the questions yet, start with why "Why did you cancel?" is the wrong question.
Why does "too expensive" mislead?
Because it is the easy answer. It is polite, it needs no explanation, and it ends the survey.
Two vendor sources put numbers on the gap. Both are companies with a product to sell, so read the figures as signals, not settled benchmarks.
RevenueCat reports that, in its State of Subscription Apps 2025, "not enough usage" was the top reason people cancelled subscription apps at 37%, ahead of price at 35% (RevenueCat). Its author calls the stated reason "often the surface explanation, not the underlying cause."
The interview-software company behind that second page ran 723 AI-moderated interviews with people who had cancelled B2B software. It found the first reason given matched the root cause 27.4% of the time. Price was named by 34.2% of people but was the real reason in 11.7% of cases (exit survey study). The interviews were coded by the same company that sells them, and the page does not say how the "real reason" was checked beyond that coding.
The pattern holds either way. The reason on the form and the thing that happened are often two different facts.
What should you label each reply with?
Label what happened, in a few words. Not the category you hoped for.
- Bad label: "Pricing". It hides everything.
- Good labels: "never finished setup", "project ended", "switched to a spreadsheet", "budget cut", "found the same thing cheaper".
Three rules keep labels honest:
- One label per reply, plus a second if the person gave two reasons. Don't force a "primary reason" onto someone who wrote about two things.
- Name the situation, not the ask. "Needed it for one launch" beats "wants a cheaper plan".
- Keep an "unclear" label. A reply like "just not for us" is unclear. Count it as unclear.
Start with the first ten replies, write labels as you go, then go back and relabel the first ten once the list settles.
Sort the replies by what happened
The numbers below are invented to show the method. They are not from a real survey.
Say 40 people answered a churn survey. 14 of them wrote something like "too expensive". Read those 14 and sort them by what the rest of the reply says:
The shares are each count divided by 14, rounded.
The pie chart said 14 of 40 people left over price. The sorted list says 2 did. Five of them never got it working, which is a setup problem, not a pricing problem. A discount would have fixed two of the 14.
The same reading works on the other 26 replies. Sort them the same way, then put the labels side by side and see which counts are biggest overall.
Read all 47 replies
High price point for small teams
Unclear Pro value and abrupt paywalls
Lack of native Slack integration
Smooth onboarding experience
Drafted a 4 slide deck for the team
Response details
Rhea KapoorOct 11, 2026 at 10:52 AM
CompletedWhat stopped you from upgrading?
Price
What would have changed your mind?
A cheaper plan for one person, or paying only in the months I use it.
How likely are you to try again?
4 out of 10
Response 1 of 47
Enform reads every reply and counts what people said. Each count opens to the replies behind it, so you can check a number before you act on it.
Count your own repliesWhich counts do you reread?
The largest one or two, and any label that surprises you. Open the replies under each count and read them again with the label in mind.
You are checking two things. Do all the replies under this label really say the same thing? And would one sentence from a reply, read out loud, make the point better than the number does?
A label can quietly become a requirement. "Wants a cheaper plan" starts a pricing project. Read the five replies under "never got it working" and you may find three different setup problems. Split the label until each one describes a single problem.
How do you count the replies in a spreadsheet?
Paste the replies into one column of Google Sheets, put your label in the next column, and count with COUNTIF(range, criterion), which "returns a conditional count across a range" (Google). For example, =COUNTIF(B2:B41, "never got it working").
It takes about an hour for 40 replies and gets slow past a couple of hundred. The risk is drift: by reply 60 you are using the labels slightly differently than at reply 5. Keep a short list of what each label means and recheck the first ten at the end.
Where a survey tool fits
You have three realistic ways to do this.
- By hand in Sheets. Free, and the best way to learn your own replies. It costs you time, and labels drift as the pile grows.
- A general AI chat such as ChatGPT. Quick for suggesting labels. Check its counts against the replies before you trust them, as this post explains.
- A survey tool that does the counting. Google Forms collects the answers, but a Sheets export leaves the text answers for you to label (Enform vs Google Forms, Google Forms alternatives).
Enform writes the survey from a description, you share one link, and it reads every reply and counts what people said. Every count opens to the replies behind it, so rereading under a label is one click. Pricing is on the pricing page. If the survey is small, the spreadsheet is enough. Enform earns its place when the pile is too big to relabel by hand. The customer churn survey template is a ready set of questions to start from.
What do you do with the counts?
Match each label to a different fix.
- "Never got it working" points to onboarding.
- "Project ended" points to a pause plan or a cheaper way to stay.
- "Moved to a spreadsheet" points to what the spreadsheet does that you don't.
- A real price problem points to the price.
Then ask again in a month and compare the labels. If the same label stays at the top, your fix didn't reach it.
Questions people ask
How do I analyze churn survey responses?
Does "too expensive" really mean price?
Can I analyze churn replies in Google Sheets?
How many labels should I have?
Sources
- Not enough usage churn, RevenueCat (2026)revenuecat.com
- Why your exit survey is lying to you, userintuition.ai (2026)userintuition.ai
- COUNTIF, Google Docs Editors Helpsupport.google.com