How to Calculate Churn Rate: Formulas, Denominators and Worked Examples
The churn rate formula, which denominator to use, why annual churn isn't monthly × 12, revenue churn, and how to count pauses, skips and failed payments.
Article summary
TL;DR
To calculate churn rate, divide the customers you lost during a period by the customers you had at the start of it, then multiply by 100. Start the month with 2,000 subscribers, lose 90 of them, and monthly churn is 4.5%. Keep new sign-ups out of that count, and never multiply monthly churn by 12 to get annual churn.
- Customer churn = customers lost ÷ customers at the start of the period × 100. Write down which customers count in each part, because Stripe, Chargebee and Recurly don't count new sign-ups the same way.
- Annual churn compounds: 1 − (1 − monthly churn)^12. A 5% monthly churn is about 46% a year, not 60%.
- Revenue churn counts money, not people: gross revenue churn adds cancellations and downgrades, net revenue churn subtracts expansion and can go negative.
- Split voluntary cancellations from payment failures that were never recovered. They add up to your churn rate, and they need different fixes.
- In subscription ecommerce, a skip or a pause isn't churn, a reactivation is a new start, and a failed payment only becomes churn when dunning ends.
On this page
Churn rate is the share of customers you lose over a period. The formula fits on one line, but the result depends on three choices most guides skip: which customers go in the denominator, how you turn a monthly rate into an annual one, and what counts as "lost" when subscribers can pause, skip or fail a payment. This guide gives the formulas, works each one through with numbers, and shows how Stripe, Chargebee and Recurly make those choices. By industry: subscription churn for supplement brands, subscription churn for skincare brands, subscription churn for online pharmacies, subscription churn for telehealth companies, subscription churn for fitness brands and subscription churn for info product businesses.
What is churn rate?
Churn rate measures the customers, subscriptions or recurring revenue that end during a period, as a share of what you had when the period began. There are three common versions, and they answer different questions:
| Metric | What it counts | Question it answers |
|---|---|---|
| Customer (subscriber) churn | Customers who left | Are we losing people? |
| Subscription churn | Subscriptions canceled, even if the customer keeps another one | Are we losing plans or products? |
| Revenue churn (gross and net) | Monthly recurring revenue lost | Are we losing money? |
The difference between the first two matters as soon as a customer can hold more than one subscription. Stripe Billing counts a subscriber as churned only when all of their subscriptions are canceled or marked unpaid.1Stripe Docs, Billing analytics: metric definitions (MRR, subscriber churn rate, churned revenue, retention by cohort) Recurly makes the same distinction: a subscriber with two subscriptions can cancel one and still not count in subscriber churn.6Recurly Docs, Subscriber churn analysis Chargebee reports subscription churn, which counts each canceled subscription.3Chargebee Docs, Churn metrics (Billing 2.0, RevenueStory)
The churn rate formula
The classic formula, used by Recurly and in Chargebee's subscription churn reports:6Recurly Docs, Subscriber churn analysis3Chargebee Docs, Churn metrics (Billing 2.0, RevenueStory)
Customer churn rate = customers lost during the period ÷ customers at the start of the period × 100
The customers lost are those who were active on day one and are gone by the last day. Recurly's definition says exactly that: a subscriber churns if they weren't expired at the beginning of the period but are expired by the end of it.6Recurly Docs, Subscriber churn analysis
- Pick the period. One calendar month, for example October 1 to October 31.
- Count customers at the start. 2,000 paying subscribers on October 1.
- Count the starting customers lost by the end. 90 of those 2,000 canceled or ended unpaid during October.
- Leave new customers aside. 400 people subscribed in October. 20 of them also left before October 31. Neither number goes into this formula.
- Divide and multiply by 100. 90 ÷ 2,000 × 100 = 4.5% monthly churn.
Illustrative example. The numbers are invented to show the method.
The same rule applies to any period. A quarter that starts with 2,000 customers and loses 240 of them has a 12% quarterly churn. Compare like with like: a quarterly rate next to a monthly rate means nothing until you convert one of them (the conversion is two sections down).
Which denominator? Start, average or end of period
The formula above is not the only one in use. Billing platforms publish different definitions, and the same month gives a different churn rate in each of them. Here's how each one treats customers who join during the period:
| Definition | Formula | Who uses it |
|---|---|---|
| Start of period | Starting customers lost ÷ customers at start | Recurly subscriber churn; Chargebee subscription churn rate, which excludes subscriptions canceled in the period they were activated6Recurly Docs, Subscriber churn analysis3Chargebee Docs, Churn metrics (Billing 2.0, RevenueStory) |
| Start plus new | All customers lost ÷ (customers 30 days ago + new customers in the 30 days) | Stripe Billing subscriber churn rate, on a rolling 30-day window; a subscriber who joins and leaves within the window is counted in both parts1Stripe Docs, Billing analytics: metric definitions (MRR, subscriber churn rate, churned revenue, retention by cohort)2Stripe Support, Calculating churn rate in Billing |
| Average | All customers lost ÷ average of start and end customers | Common in finance teams and spreadsheets |
| End of period | Churn for the month ÷ active paid customers at the end of the month | Chargebee's lifetime value article (RevenueStory)4Chargebee Docs, How is the lifetime value metric calculated in RevenueStory |
Now apply all four to the same month. Take the October example: 2,000 subscribers at the start, 400 new, 90 starting subscribers lost and 20 new subscribers lost, so 110 losses in total and 2,290 subscribers at the end.
Fig. 1One month, five churn rates
| Method | Calculation | Churn rate |
|---|---|---|
| Start of period, starting customers only | 90 ÷ 2,000 | 4.50% |
| Start plus new (Stripe Billing) | 110 ÷ (2,000 + 400) | 4.58% |
| End of period | 110 ÷ 2,290 | 4.80% |
| Average customers | 110 ÷ ((2,000 + 2,290) ÷ 2) | 5.13% |
| Mixed: all losses ÷ starting customers | 110 ÷ 2,000 | 5.50% |
Same customers, different denominators
The last row is a mistake, not a method: it counts the 20 new customers in the numerator but not in the denominator, so it inflates churn. The spread between the others is small in a calm month and grows with acquisition. A brand that doubles its sign-ups during a promotion will see its end-of-period churn drop while nothing changed for existing subscribers.
Pick one denominator and write it down
None of these definitions is wrong, as long as you use the same one every period. Put the formula next to the number in your reports. If your dashboard comes from Stripe and your spreadsheet uses start-of-period customers, they will disagree, and both will be right.
What to do with customers who join and leave in the same period? In the start-of-period method, they don't count: they belong in a cohort report or a first-month conversion metric. Chargebee excludes them explicitly, and Stripe includes them.3Chargebee Docs, Churn metrics (Billing 2.0, RevenueStory)2Stripe Support, Calculating churn rate in Billing If your first month is where most subscribers drop, track that drop on its own; don't let it disappear or swamp the monthly rate.
Monthly vs annual churn: why you can't multiply by 12
Churn compounds. In month two you lose a share of the customers left after month one, not of the original base. Multiplying a monthly rate by 12 overstates annual churn, and above about 8.3% a month it gives more than 100%, which is impossible.
Annual churn = 1 − (1 − monthly churn)^12
Monthly churn = 1 − (1 − annual churn)^(1/12)
| Monthly churn | Monthly × 12 (wrong) | Compounded annual churn |
|---|---|---|
| 1% | 12% | 11.4% |
| 2% | 24% | 21.5% |
| 3% | 36% | 30.6% |
| 5% | 60% | 46.0% |
| 8% | 96% | 63.2% |
| 10% | 120% | 71.8% |
Read the other way, an annual churn of 30% is a monthly churn of 2.93%, not 2.5%. In a spreadsheet, with the monthly rate in cell B2: =1-(1-B2)^12.
The formula assumes the same monthly rate all year, which is rarely true: churn is often highest in the first months after sign-up. For a real annual figure, measure it directly: customers at the start of the year who are gone by the end, divided by customers at the start of the year.
Annual plans don't churn every month
A subscriber on a yearly plan can only leave at renewal. Mix them into a monthly churn rate and they lower it for eleven months, then raise it in the renewal month. Measure annual plans on their own: renewals lost ÷ renewals due in the period. For revenue, Stripe normalizes them to a monthly value: a 120 USD per year plan counts as 10 USD of MRR.1Stripe Docs, Billing analytics: metric definitions (MRR, subscriber churn rate, churned revenue, retention by cohort)
Revenue churn: gross and net
Customer churn treats a 15 USD subscriber and a 90 USD subscriber the same way. Revenue churn weights each loss by what it was worth. It is measured on MRR, and it ignores new customers: their revenue is growth, not retention.
| Metric | Formula |
|---|---|
| Gross revenue churn | (churned MRR + contraction MRR) ÷ MRR at start × 100 |
| Net revenue churn | (churned MRR + contraction MRR − expansion MRR) ÷ MRR at start × 100 |
| Net revenue retention | MRR at end from customers who were there at start ÷ MRR at start × 100 = 100% − net revenue churn |
Churned MRR comes from canceled or unpaid subscriptions. Contraction MRR comes from downgrades, smaller boxes or longer delivery intervals. Expansion MRR comes from upgrades and add-ons by existing subscribers. Stripe's "churned revenue" metric is churned MRR plus contraction MRR, which is the numerator of gross revenue churn.1Stripe Docs, Billing analytics: metric definitions (MRR, subscriber churn rate, churned revenue, retention by cohort) Chargebee also reports a narrower "cancellation MRR rate" that leaves downgrades out.3Chargebee Docs, Churn metrics (Billing 2.0, RevenueStory)
Back to October, now in dollars. Illustrative example: MRR on October 1 is 50,000 USD. The 90 subscribers who left were paying 2,000 USD a month in total. Other subscribers downgraded by 500 USD and upgraded by 1,200 USD. The 400 new subscribers added 9,000 USD, which stays out of every churn formula.
4.5%
Customer churn: 90 ÷ 2,000 (illustrative)
5.0%
Gross revenue churn: (2,000 + 500) ÷ 50,000
2.6%
Net revenue churn: (2,500 − 1,200) ÷ 50,000
97.4%
Net revenue retention: 100% − 2.6%
If upgrades had reached 3,000 USD, net revenue churn would be (2,500 − 3,000) ÷ 50,000 = −1%: negative churn, where the existing base grows even after losses. Gross revenue churn can't go below zero, which is why it's the stricter test. When and why to report each one is covered in gross vs net retention; how to build the MRR base itself is in MRR calculation, and what net revenue retention means as a ratio is in the glossary entry on net revenue retention.
Inside Tagada
Build the funnel once, route every customer to the right offer
Checkout, upsells and subscriptions on one flow, with conditions per country, order or customer.

Voluntary vs involuntary churn
Every churned subscriber left in one of two ways. Recurly's definitions: voluntary churn is subscribers who choose to leave; involuntary churn is subscribers lost to payment issues, such as a failed transaction and an unrecovered invoice.6Recurly Docs, Subscriber churn analysis Use the same denominator for both, and they add up to your total churn rate.
In October, 62 of the 90 lost subscribers canceled and 28 ended after renewals that were never paid:
| Calculation | Rate | |
|---|---|---|
| Voluntary churn | 62 ÷ 2,000 | 3.1% |
| Involuntary churn | 28 ÷ 2,000 | 1.4% |
| Total customer churn | 90 ÷ 2,000 | 4.5% |
The timing of involuntary churn trips up many reports. A failed renewal is not churn yet. Stripe keeps past_due subscriptions in MRR and among active subscribers, and counts churn only when the subscription is canceled or marked unpaid, one of the outcomes you can set for when the retry window ends.1Stripe Docs, Billing analytics: metric definitions (MRR, subscriber churn rate, churned revenue, retention by cohort) So the churn lands in the month dunning ends, not the month the card was declined.
Fig. 2When a failed payment becomes churn
- Renewal declinedSubscription goes past due, still counted as active
- Retries and dunningEmails, card update link, scheduled retries
- RecoveredPaid: no churn recorded
- Window ends unpaidCanceled or unpaid: involuntary churn counted here
Not on the day of the decline
Two edge cases to decide once and keep:
- Stop payment orders. When a cardholder tells their bank to stop paying you, the renewal fails, but the customer chose to leave. Classing it as voluntary keeps your involuntary churn a measure of payment problems.
- Subscribers still in recovery at month end. They're active until the window closes. Your latest month will look better than it will once retries finish, so compare complete periods.
Why renewals fail in the first place, by decline code, is in subscription payment failures. The recovery process, with retries, emails and grace periods, is in dunning and failed payment recovery.
Cohort churn: following one group of subscribers
A monthly churn rate mixes subscribers in their first month with subscribers in their third year. A cohort keeps them apart: everyone who started in the same month, followed month by month. Stripe assigns subscribers to cohorts by the month they first started generating positive MRR, and shows both subscriber retention and revenue retention per cohort; revenue retention can go above 100% because of expansion.1Stripe Docs, Billing analytics: metric definitions (MRR, subscriber churn rate, churned revenue, retention by cohort)
For a cohort, two numbers matter at each month n:
- Retention at month n = active cohort members at month n ÷ cohort size at start
- Churn in month n = cohort members lost during month n ÷ cohort members active at the start of month n
Illustrative example: 400 subscribers who started in January.
| Month | Active at end of month | Lost in month | Churn in month | Retention |
|---|---|---|---|---|
| Start | 400 | 100% | ||
| 1 | 352 | 48 | 48 ÷ 400 = 12.0% | 88.0% |
| 2 | 324 | 28 | 28 ÷ 352 = 8.0% | 81.0% |
| 3 | 305 | 19 | 19 ÷ 324 = 5.9% | 76.3% |
| 4 | 293 | 12 | 12 ÷ 305 = 3.9% | 73.3% |
The shape is what a blended rate hides: in this example the cohort loses more in its first month than in the next three combined. If a newer cohort loses more in month one than this one did, look at what changed for it: the offer, the acquisition channel, the checkout, or the first renewal. Stripe's own documentation shows the compounding at work: with a steady 10% monthly churn, a cohort keeps this much of its starting subscribers:1Stripe Docs, Billing analytics: metric definitions (MRR, subscriber churn rate, churned revenue, retention by cohort)
How to build and read a cohort table is covered in what is cohort analysis.
Churn in subscription ecommerce: pauses, skips and reactivations
Physical subscriptions give customers more ways out than "cancel": skip a delivery, pause for two months, swap to a cheaper product, come back after a cancellation. Each one needs a rule before you can calculate churn. Here's how billing tools handle them, and a rule that keeps the number honest.
| Event | What billing tools do | How to count it |
|---|---|---|
| Skips one delivery | Recharge presents skipping as a way to keep customers as active subscribers8Recharge, Glossary: customer churn | Not churn. Track skip rate separately: repeated skips often come before a cancellation |
| Pauses the subscription | Chargebee: paused subscriptions aren't counted in churn, but its gross MRR churn includes paused MRR5Chargebee Docs, What is Pause MRR and Cancellation/Churn MRR3Chargebee Docs, Churn metrics (Billing 2.0, RevenueStory). Stripe: with payment collection paused, the subscription stays active7Stripe Docs, Pause payment collection | Not churn while paused. Report paused subscribers and paused MRR on their own line; count churn if the pause ends in a cancellation |
| Payment failed, in dunning | Stripe: past_due stays in MRR; churn when canceled or unpaid1Stripe Docs, Billing analytics: metric definitions (MRR, subscriber churn rate, churned revenue, retention by cohort) | Not churn until recovery fails; then involuntary churn |
| Cancels, then comes back | Stripe counts a reactivation; a second cancellation is a second churn2Stripe Support, Calculating churn rate in Billing | Churn in the month they left. The return is a reactivation, not a correction of last month |
| Cancels one of two subscriptions | Stripe: not subscriber churn until all subscriptions end1Stripe Docs, Billing analytics: metric definitions (MRR, subscriber churn rate, churned revenue, retention by cohort). Chargebee: counts in subscription churn3Chargebee Docs, Churn metrics (Billing 2.0, RevenueStory) | Not customer churn; lost MRR shows in revenue churn |
| Downgrades, or moves to a longer delivery interval | Stripe counts a downgrade as contraction MRR; Chargebee's gross MRR churn includes downgrade MRR1Stripe Docs, Billing analytics: metric definitions (MRR, subscriber churn rate, churned revenue, retention by cohort)3Chargebee Docs, Churn metrics (Billing 2.0, RevenueStory) | Not customer churn; counts in revenue churn |
| Cancels during a free trial | Stripe excludes trials from active subscribers; Chargebee excludes cancellations from trial status1Stripe Docs, Billing analytics: metric definitions (MRR, subscriber churn rate, churned revenue, retention by cohort)3Chargebee Docs, Churn metrics (Billing 2.0, RevenueStory) | Not churn: a trial that didn't convert. Report it as trial conversion |
Two rules make pauses manageable. First, cap them: a pause with no end date is a cancellation that hasn't been admitted. Decide on a maximum, and count the subscriber as churned if the pause runs past it. Second, if your churn rate excludes pauses, show paused subscribers next to it. A rising pause count with a flat churn rate is a warning, not good news.
Repeat buyers without a subscription
For customers who reorder without a subscription, there is no cancellation date, so churn needs a window: a customer counts as lost after a set number of days without an order. Base the window on how long your own customers usually take to reorder, not on a calendar month, and keep these customers out of your subscription churn rate.
How to calculate churn in a spreadsheet
One row per month is enough. The columns below give the customer churn rate, the Stripe-style rate and the annualized rate, with a check that the counts reconcile.
| Column | Content | Formula (row 2) |
|---|---|---|
| A | Month | October |
| B | Active at start | 2,000 |
| C | New during month | 400 |
| D | Lost from starting base | 90 |
| E | Lost among new customers | 20 |
| F | Reactivated | 0 |
| G | Active at end | =B2+C2+F2-D2-E2 |
| H | Customer churn (start of period) | =D2/B2 |
| I | Churn, start plus new | =(D2+E2)/(B2+C2) |
| J | Annualized churn | =1-(1-H2)^12 |
Check column G against the real count of active customers at month end. If they don't match, some status changes (pauses, reactivations, refunds that ended a subscription) aren't classified yet, and the churn rate is wrong by that difference. Split column D into voluntary and involuntary to get the two rates from the previous section.
Common churn calculation mistakes
- Churn drops in your biggest acquisition monthNew customers are in the denominator, or the end-of-period count is usedUse starting customers only, or report the method next to the rate
- Annual churn above 100%, or far above your real lossesMonthly churn was multiplied by 12Use 1 − (1 − monthly churn)^12, or measure the year directly
- Churn spikes in one month every yearAnnual plans are mixed into a monthly rateMeasure annual plans on renewals due
- Last month always looks better than it ends upSubscribers still in dunning are counted as retainedCompare complete periods, after retries end
- Churn falls while paused subscribers risePauses are absorbing cancellationsShow paused subscribers next to churn and cap pause length
- Customer churn and revenue churn move apartThe customers leaving pay more, or less, than averageReport both, and split by plan or product
A few more that don't show up as a pattern:
- Mixing customers and subscriptions. Subscriber churn and subscription churn are different numbers when customers can hold several subscriptions. Name the one you report.
- Netting reactivations against churn. A customer who left in March and returned in May is a churn in March and a reactivation in May. Subtracting returns from losses hides both.
- Comparing your rate with a published benchmark. Benchmarks come from one vendor's customer base, with that vendor's definitions, often software companies on annual contracts. Compare your own cohorts over time instead.
Churn also feeds other metrics. Stripe estimates subscriber lifetime value as average revenue per user divided by the subscriber churn rate1Stripe Docs, Billing analytics: metric definitions (MRR, subscriber churn rate, churned revenue, retention by cohort), so an error in churn moves your lifetime value the opposite way. More on that in what is CLTV.
Where Tagada fits
How Tagada helps
Fewer renewals lost to payments
Tagada runs subscriptions (trials, billing cycles, dunning and automatic retries) next to the checkout. Payments can be routed across TagadaPay and processors such as Stripe, NMI and Airwallex, with one set of rules and a cascade to another processor when one is down or times out. The card vault lets you switch processors without re-onboarding customers, so running subscriptions keep charging. That works on the involuntary part of your churn. Pricing is on the pricing page.
Whatever tool you use, the method is the same: choose a denominator and keep it, compound monthly churn to get annual churn, report customer and revenue churn side by side, split voluntary from involuntary, and decide in advance how pauses, skips and reactivations count.
Frequently asked questions
How do you calculate churn rate?
How do you convert monthly churn to annual churn?
Should new customers be included in the churn rate?
What is the difference between customer churn and revenue churn?
Do failed payments count as churn?
Does a paused subscription count as churn?
Sources
Checked October 14, 2026- Stripe Docs, Billing analytics: metric definitions (MRR, subscriber churn rate, churned revenue, retention by cohort)
- Stripe Support, Calculating churn rate in Billing
- Chargebee Docs, Churn metrics (Billing 2.0, RevenueStory)
- Chargebee Docs, How is the lifetime value metric calculated in RevenueStory
- Chargebee Docs, What is Pause MRR and Cancellation/Churn MRR
- Recurly Docs, Subscriber churn analysis
- Stripe Docs, Pause payment collection
- Recharge, Glossary: customer churn
Tagada
Lose fewer subscribers to failed renewals
Funnels, one-click upsells, subscription billing and payment routing, on one customer record.
- 01Create your free account
- 02Connect your store or build a checkout
- 03Launch funnels, upsells and subscriptions
