Churn Analysis 101: Find Out Why Customers Leave
Churn analysis: how to measure customer churn, separate voluntary from involuntary churn, and find the causes actually worth fixing.
Churn is the metric that quietly caps every subscription business - at high enough churn, no amount of growth outruns the leak. But "our churn is 5%" is a number, not an analysis. Churn analysis is figuring out who leaves, when, and why - because each of those cuts points at a different fix.
Measure it properly first#
Two numbers, tracked separately: logo churn (what fraction of customers cancel) and revenue churn (what fraction of MRR cancels). Losing ten hobbyists and losing one enterprise account can produce the same logo churn with wildly different business impact. We covered the formulas and healthy ranges in SaaS metrics - the short version is that revenue churn is the one to obsess over for most B2B products.
Cohort the churned#
Aggregate churn hides everything. Group churned customers by when they signed up and ask when in the lifecycle they leave. Churn concentrated in the first month is an onboarding problem - people never reached the product's value. Churn at month six is a value problem - they got value once and it didn't hold. These need completely different responses, and you can't see either in a blended rate. Retention curves are the natural tool here: churn is just the flip side of a retention curve that falls to zero.
Separate voluntary from involuntary churn#
A large share of subscription churn isn't a decision at all - it's failed payments. Expired cards, insufficient funds, bank declines: the customer never chose to leave, their card just stopped working. This shows up clearly in billing data as invoice.payment_failed-style events, and the fix is dunning emails and card update flows, not product work. GraphJSON's Stripe integration streams every one of these events, so involuntary churn is directly measurable - and recoverable - rather than lumped into one scary number. See the Stripe dashboard guide for the setup.
Look for the leading indicators#
Voluntary churn rarely comes out of nowhere - usage drops first. Customers who cancel typically show declining activity weeks before they hit the button: fewer logins, fewer core actions, shrinking seat counts. If you log product events with an account or user id, "accounts whose usage fell by half month over month" is a simple query, and it gives you a save list to act on while there's still time. Logging the cancellation reason as an event when someone does leave - a one-field survey beats guessing - builds the dataset that tells you which fix to prioritize.
Close the loop#
Churn analysis earns its keep when it changes something: onboarding rework for early churn, dunning for failed payments, outreach for fading accounts, pricing or packaging for "too expensive" exits. Measure the cohort after each change. The goal isn't a perfect model of churn - it's a leak that shrinks quarter over quarter.

Written by JR
Founder and builder of GraphJSON.