Subscriptions & retention13 min readUpdated October 14, 2026

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.
Want to go further? AskChatGPTClaudePerplexityGrok
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:

MetricWhat it countsQuestion it answers
Customer (subscriber) churnCustomers who leftAre we losing people?
Subscription churnSubscriptions canceled, even if the customer keeps another oneAre we losing plans or products?
Revenue churn (gross and net)Monthly recurring revenue lostAre 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

  1. Pick the period. One calendar month, for example October 1 to October 31.
  2. Count customers at the start. 2,000 paying subscribers on October 1.
  3. Count the starting customers lost by the end. 90 of those 2,000 canceled or ended unpaid during October.
  4. Leave new customers aside. 400 people subscribed in October. 20 of them also left before October 31. Neither number goes into this formula.
  5. 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:

DefinitionFormulaWho uses it
Start of periodStarting customers lost ÷ customers at startRecurly 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 newAll 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
AverageAll customers lost ÷ average of start and end customersCommon in finance teams and spreadsheets
End of periodChurn for the month ÷ active paid customers at the end of the monthChargebee'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

MethodCalculationChurn rate
Start of period, starting customers only90 ÷ 2,0004.50%
Start plus new (Stripe Billing)110 ÷ (2,000 + 400)4.58%
End of period110 ÷ 2,2904.80%
Average customers110 ÷ ((2,000 + 2,290) ÷ 2)5.13%
Mixed: all losses ÷ starting customers110 ÷ 2,0005.50%

Same customers, different denominators

Illustrative example: 2,000 at start, 400 new, 110 lost (90 from the starting base, 20 new), 2,290 at end.

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 churnMonthly × 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.

MetricFormula
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 retentionMRR 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.

Start free

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:

CalculationRate
Voluntary churn62 ÷ 2,0003.1%
Involuntary churn28 ÷ 2,0001.4%
Total customer churn90 ÷ 2,0004.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

  1. Renewal declinedSubscription goes past due, still counted as active
  2. Retries and dunningEmails, card update link, scheduled retries
  3. RecoveredPaid: no churn recorded
  4. Window ends unpaidCanceled or unpaid: involuntary churn counted here

Not on the day of the decline

Simplified sequence based on Stripe Billing statuses. Retry windows and the final status depend on your settings.

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.

MonthActive at end of monthLost in monthChurn in monthRetention
Start400100%
13524848 ÷ 400 = 12.0%88.0%
23242828 ÷ 352 = 8.0%81.0%
33051919 ÷ 324 = 5.9%76.3%
42931212 ÷ 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)

  1. Month 190%
  2. Month 281%
  3. Month 373%
  4. Month 466%
  5. Month 559%

Source: Stripe Docs, Billing analytics, Retention by cohort (example with 10% monthly subscriber churn)

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.

EventWhat billing tools doHow to count it
Skips one deliveryRecharge presents skipping as a way to keep customers as active subscribers8Recharge, Glossary: customer churnNot churn. Track skip rate separately: repeated skips often come before a cancellation
Pauses the subscriptionChargebee: 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 collectionNot 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 dunningStripe: 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 backStripe counts a reactivation; a second cancellation is a second churn2Stripe Support, Calculating churn rate in BillingChurn in the month they left. The return is a reactivation, not a correction of last month
Cancels one of two subscriptionsStripe: 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 intervalStripe 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 trialStripe 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.

ColumnContentFormula (row 2)
AMonthOctober
BActive at start2,000
CNew during month400
DLost from starting base90
ELost among new customers20
FReactivated0
GActive at end=B2+C2+F2-D2-E2
HCustomer churn (start of period)=D2/B2
IChurn, start plus new=(D2+E2)/(B2+C2)
JAnnualized 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

  1. 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
  2. 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
  3. Churn spikes in one month every yearAnnual plans are mixed into a monthly rateMeasure annual plans on renewals due
  4. Last month always looks better than it ends upSubscribers still in dunning are counted as retainedCompare complete periods, after retries end
  5. Churn falls while paused subscribers risePauses are absorbing cancellationsShow paused subscribers next to churn and cap pause length
  6. 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.

Nick Bonnassies

CMO at Tagada

CMO at Tagada. Before Tagada, Nick built direct-to-consumer brands that generated over $115M in sales, raised over $25M in crowdfunding and sold two of them. He also works as a fractional CMO on marketing operations and AI systems.

Frequently asked questions

How do you calculate churn rate?

Pick a period, usually a month. Count the customers active on the first day. Count how many of those customers left by the last day. Divide the second number by the first and multiply by 100. With 2,000 customers at the start and 90 lost, churn is 4.5%. Customers who joined during the month don't go in either number.

How do you convert monthly churn to annual churn?

Use annual churn = 1 − (1 − monthly churn)^12, not monthly churn × 12. Each month you lose a share of a smaller base, so losses compound. A 2% monthly churn gives about 21.5% a year, and 5% monthly gives about 46%. To go the other way, monthly churn = 1 − (1 − annual churn)^(1/12).

Should new customers be included in the churn rate?

Not in the classic formula: customers acquired during the period are left out of the denominator, and out of the numerator if they leave before it ends. Some tools do it differently. Stripe Billing adds new subscribers to the denominator and counts their cancellations. Whatever you choose, use one definition every month, and write it down next to the number.

What is the difference between customer churn and revenue churn?

Customer churn counts people: the share of customers who left. Revenue churn counts money: the share of starting recurring revenue lost to cancellations and downgrades. They diverge when the customers who leave pay more or less than average. Net revenue churn also subtracts upgrades from customers who stayed, so it can go below zero.

Do failed payments count as churn?

Only when the payment is never recovered. While retries and dunning run, the subscriber is still active: Stripe keeps past_due subscriptions in MRR and counts churn when the subscription is canceled or marked unpaid. Report those losses as involuntary churn, separately from cancellations, because the fix is payment recovery, not a retention offer.

Does a paused subscription count as churn?

Usually not. Chargebee states that paused subscriptions aren't counted in churn, and at Stripe a subscription with paused payment collection stays active. A skipped delivery isn't churn either. Track paused subscribers and paused MRR as their own line, and count a churn only when the pause ends in a cancellation.

Sources

Checked October 14, 2026
  1. Stripe Docs, Billing analytics: metric definitions (MRR, subscriber churn rate, churned revenue, retention by cohort)
  2. Stripe Support, Calculating churn rate in Billing
  3. Chargebee Docs, Churn metrics (Billing 2.0, RevenueStory)
  4. Chargebee Docs, How is the lifetime value metric calculated in RevenueStory
  5. Chargebee Docs, What is Pause MRR and Cancellation/Churn MRR
  6. Recurly Docs, Subscriber churn analysis
  7. Stripe Docs, Pause payment collection
  8. Recharge, Glossary: customer churn

Tagada

Lose fewer subscribers to failed renewals

Funnels, one-click upsells, subscription billing and payment routing, on one customer record.

  1. 01Create your free account
  2. 02Connect your store or build a checkout
  3. 03Launch funnels, upsells and subscriptions