Collecting Cancellation Data
Stripe has this functionality in their billing settings that you can use to capture cancellation reasons.
Once you have this set up, you get two types of data:
MCQ options that people choose from
Freeform text input field when people choose 'Other' option.
Exporting Cancellation Data from Stripe
Stripe will let you hover over each cancellation to see what they said. But you won't be able to export this data as a CSV.
You'll have to use Stripe Sigma which comes with a 30 day free trial.
I don't know SQL nor did I have the time to learn how to use it. So, I used chatGPT.
Fed chatGPT some example codes from the template section of Sigma, and asked it to create one for this use case. Took me 20 minutes of trial and error but the outcome was pretty nice!
You can paste both of these in the editor as is and then hit RUN.
SQL Snippet #1 - Freeform field
SELECT cancellation_reason_text, COUNT(*) as count FROM subscriptions WHERE status = 'canceled' GROUP BY cancellation_reason_text
SQL Snippet #2 - MCQ field data
SELECT cancellation_reason, COUNT(*) as count FROM subscriptions WHERE status = 'canceled' GROUP BY cancellation_reason
Analyzing Churn Data
Download the MCQ version and create a lovely bar graph to see the primary reasons why people cancel.
For the freeform field, it'll require a bit more work before it's usable.
You'll have to Import that data in chatGPT and ask it to run cluster analysis and 'group by themes'.
Then, you can ask it to convert it to a table format, add numbers based on how many times the theme recurs, and expand on each!
Making Decisions with Churn Data
You'll know why people are cancelling before paying hundreds of dollars for a churn prevention tool. But once you know why people are cancelling, you can take better steps to across the product, starting with segmenting them at the onboarding. ⭐
I used this data to build our Churnkey cancellation flow.