How MRR, Churn and LTV Are Calculated
MRR, churn and LTV look like standard formulas, but Stripe, ChartMogul and Baremetrics each compute them a little differently. Here is what each tool counts, what it leaves out, and where the numbers part ways.
Checked against Stripe's Billing analytics docs and its "Understanding MRR and ARR" support article; ChartMogul's Help Center reports for MRR, customer churn rate, gross and net MRR churn rate, ARPA and LTV (last updated September 11 to October 1, 2026); and Baremetrics' Help Center articles on MRR, user and revenue churn, ARPU and LTV
As of · each vendor's published definitions1311
| Metric | Rule | Stripe Billing | ChartMogul | Baremetrics | What differs |
|---|---|---|---|---|---|
| MRR | Base definition | Sum of the monthly-normalized value of all active and past_due subscriptions1 | Sum of MRR for all active and past-due subscriptions in the period3 | The value of all active subscription customers11 | Same idea; each tool decides for itself what counts as active |
| MRR | Annual and other non-monthly plans | Monthly-normalized: a 600 USD yearly plan counts 50 USD1 | Computed from the invoice amount and the plan's billing interval3 | Normalized to monthly: $120 a year adds $10 for the next 12 months11 | All three spread the payment across its months |
| MRR | Discounts and coupons | Your setting: subtract recurring and/or one-time discounts; permanent recurring discounts are always subtracted1 | MRR is offset by discounts3 | Coupon amount removed; 100%-off customers count as free users and are left out11 | Stripe lets you choose; the other two subtract |
| MRR | Taxes | Excluded1 | Tax subtracted from the amount charged (API formula)9 | Not stated in its MRR article11 | Two state it; one is silent |
| MRR | Free plans and trials | Free plans and subscriptions still trialing are excluded12 | Counts active subscriptions, defined as billed more than $0.00 in their most recent period10 | Free users aren't included; trials not stated in its MRR article11 | Free plans are out everywhere; trial handling is spelled out only by Stripe |
| MRR | Refunds | One-off refunds don't affect MRR unless caused by a change in the plan's price2 | Deducted only for Stripe data; not for other billing systems3 | Not stated in its MRR article11 | The same refund can move ChartMogul's MRR but not Stripe's |
| MRR | One-time and usage charges | Metered (usage-based) products excluded; usage MRR is in preview1 | One-time (non-recurring) line items excluded3 | Not stated in its MRR article11 | Only recurring charges count where stated |
| MRR | Failed payments | past_due still counts; leaves MRR once canceled or marked unpaid12 | Past-due subscriptions count3 | Delinquent for more than 30 days = churned and removed11 | When an unpaid customer stops counting |
| Customer churn | Rate formula | Churned subscribers in the past 30 days ÷ (active subscribers 30 days ago + new subscribers in the past 30 days)1 | (Customers churned − customers who joined and churned − customers who churned and reactivated) ÷ customers at the start4 | Canceled customers in the last 30 days ÷ active customers 30 days ago; non-monthly plans use 365 days12 | Stripe adds new customers to the denominator |
| Revenue churn | Lost revenue | Churned revenue: churned MRR + contraction MRR in the period, as an amount1 | Gross: (churn MRR + contraction MRR) ÷ starting MRR. Net: also subtracts expansion and reactivation MRR65 | MRR lost to downgrades and cancellations in the last 30 days ÷ MRR 30 days ago12 | Stripe shows an amount; net churn can go below zero |
| ARPU | Average per customer | Total MRR ÷ active subscribers1 | ARPA: total MRR ÷ paying subscribers8 | MRR ÷ active customers14 | Same division, different name at ChartMogul |
| LTV | Lifetime value | ARPU ÷ subscriber churn rate1 | ARPA ÷ six-month trailing average of customer churn rate, excluding the current month7 | Average MRR per customer ÷ user churn rate13 | ChartMogul smooths churn over six months |
Each cell paraphrases the vendor's own published definition, with the vendor's units; "Not stated" means the article we checked doesn't say, not that the tool ignores it. Stripe lets you change its discount and active-subscriber settings, and ChartMogul offers options such as leaving contraction out of churn, so an account's numbers can differ from these defaults. ChartMogul's formulas are its "standard" ones, used by all accounts except some opened before August 15, 2022 that had picked its Shopify formula.4 No figures here are ranked.
How it works
MRR is a monthly snapshot, not money in the bank
Monthly recurring revenue (MRR) adds up what every paying subscription is worth per month, right now. A yearly plan is divided across its months. Stripe's own example: 100 subscribers on a 100 USD monthly plan plus 50 on a 600 USD yearly plan give (100 × 100) + (50 × 600 ÷ 12) = 12,500 USD of MRR.1 Stripe stresses that MRR "is not GAAP revenue," the accounting figure on your books; it's a forward-looking measure of predictable income. Annual recurring revenue (ARR) is simply MRR × 12 in Stripe's definition.2
What stays out of MRR
Stripe leaves out taxes, free plans, metered usage and subscriptions still in a trial. A trial starts counting once it turns active, even before the first invoice is paid.12 ChartMogul leaves out one-time line items, and its API formula subtracts tax from each charge before turning it into MRR.39 Refunds are where they split: Stripe says one-off refunds don't change MRR unless the plan's price changed, while ChartMogul deducts refunds for Stripe accounts only.23
Discounts and failed payments
A coupon lowers what a customer pays, so it can lower MRR. Baremetrics always subtracts it: a $10 a month customer with a 50% lifetime coupon adds $5.11 Stripe makes it a setting (subtract recurring discounts, one-time discounts, or both), always subtracts permanent recurring discounts, and takes 24 to 48 hours to show a change of settings.1
Failed payments split the tools too. Stripe and ChartMogul keep a past-due subscription in MRR; Stripe drops it once it's canceled or marked unpaid.13 Baremetrics treats a customer who stays delinquent for more than 30 days as churned.11
Customer churn: same idea, three denominators
Churn is the share of customers or revenue you lose in a period. Baremetrics divides customers who canceled in the last 30 days by the customers you had 30 days ago.12 Stripe divides by the customers you had 30 days ago plus the new ones you gained since, which gives a slightly lower rate when you're adding customers.1 ChartMogul divides by customers at the start of the period but takes out of the top line anyone who both joined and left in it, and anyone who left and came back.4 For a period still in progress, ChartMogul projects the rate to the end of the period from the days elapsed.4
Revenue churn: gross versus net
Revenue churn counts the MRR you lose, from cancellations and from downgrades (contraction). Gross revenue churn stops there. Net revenue churn also subtracts what existing customers added through upgrades (expansion) and comebacks (reactivation), so it can fall below zero when what existing customers add outweighs what's lost.56 Baremetrics' revenue churn is the gross kind, over a rolling 30 days.12 Stripe's dashboard reports churned revenue as a dollar amount: churned MRR plus contraction MRR.1
ARPU and LTV: one division each
Average revenue per user (ARPU) is MRR divided by paying customers in all three tools; ChartMogul calls it average revenue per account (ARPA).1814 Lifetime value (LTV) then divides ARPU by the customer churn rate. Stripe calls the result "an estimate of LTV based on the values at various points in time."1 The difference is the churn rate used: Stripe and Baremetrics use the current period's, while ChartMogul uses the average of the previous six months, leaving out the current one, which smooths out a single bad or good month.713
A worked example (illustration)
Example, made-up numbers: a one-person SaaS has 40 customers on a $20/mo plan and 10 on a $180/yr plan. MRR = (40 × $20) + (10 × $180 ÷ 12) = $800 + $150 = $950, from 50 paying customers. If a monthly customer pays $22 including tax, Stripe still counts $20.
Over the next 30 days, 4 monthly customers cancel, 2 new ones join on the monthly plan, and 1 upgrades from $20 to $30. Customer churn is 4 ÷ 50 = 8.0% by Baremetrics' formula and by ChartMogul's (no one both joined and left), but 4 ÷ (50 + 2) = 7.7% by Stripe's. Lost MRR is 4 × $20 = $80, so gross revenue churn is $80 ÷ $950 = 8.4%; net of the $10 upgrade it's ($80 − $10) ÷ $950 = 7.4%.
End-of-period MRR is $950 − $80 + $40 + $10 = $920 across 48 customers, so ARPU is $19.17. LTV is $19.17 ÷ 7.7% ≈ $249 with Stripe's churn rate and $19.17 ÷ 8.0% ≈ $240 with Baremetrics'. ChartMogul's would match Baremetrics' only if the previous six months also averaged 8.0%. Same business, same month, two to three different LTVs.
What the billing and analytics tools do for you
None of these numbers has to be built by hand. Stripe computes them on its Billing overview page from your subscriptions; ChartMogul and Baremetrics compute them from the billing data you connect.11617 What's left to you is picking settings and reading them consistently.
As of · vendor-stated list prices and docs151617
| Tool | MRR, churn, LTV computed for you | Where the data comes from | Settings you can change | Price as listed | Source |
|---|---|---|---|---|---|
| Stripe Billing | Yes | Your Stripe subscriptions, on the Billing overview page; CSV reports for MRR per subscriber and metric summaries | Subtract recurring and/or one-time discounts; count subscribers as active at the start of the subscription or at first payment (24–48 hours to apply) | 0.7% of Billing volume · pay as you go | 1, 15 |
| ChartMogul | Yes | A connected billing system (e.g. Stripe), plus API, CSV and other sources | Transaction fee handling; leave contraction or reactivations out of churn | Free · up to $10K MRR $57 / mo · billed annually (Starter) | 3, 5, 6, 16 |
| Baremetrics | Yes | "Your real billing data," priced on the ARR it tracks | Not stated in the metric articles we checked | Free · up to $180K ARR tracked $49 / mo · to $360K ARR (Launch) | 17 |
Prices are each vendor's listed prices in USD on Oct 13, 2026, with the plan and billing period as stated. Stripe's 0.7% is its pay-as-you-go Billing fee on Billing volume; the same page lists card processing separately, at 2.9% + 30¢ per successful card charge. Rows are listed alphabetically, not ranked.
Sources
- Stripe Docs, Analytics (Billing metric definitions and configuration), retrieved 2026-10-13.
- Stripe Support, Understanding Monthly Recurring Revenue (MRR) and Annual Recurring Revenue (ARR), retrieved 2026-10-13.
- ChartMogul Help Center, Report: Monthly Recurring Revenue (MRR), last updated October 1, 2026, retrieved 2026-10-13.
- ChartMogul Help Center, Customer Churn Rate, last updated September 11, 2026, retrieved 2026-10-13.
- ChartMogul Help Center, Net MRR Churn Rate, last updated October 1, 2026, retrieved 2026-10-13.
- ChartMogul Help Center, Gross MRR Churn Rate, last updated September 11, 2026, retrieved 2026-10-13.
- ChartMogul Help Center, Customer Lifetime Value (LTV), last updated September 11, 2026, retrieved 2026-10-13.
- ChartMogul Help Center, Average Revenue Per Account (ARPA), last updated September 17, 2026, retrieved 2026-10-13.
- ChartMogul Developers, How MRR is calculated from prorated invoices, retrieved 2026-10-13.
- ChartMogul Help Center, Subscription analytics glossary, last updated October 10, 2026, retrieved 2026-10-13.
- Baremetrics Help Center, Monthly Recurring Revenue, retrieved 2026-10-13.
- Baremetrics Help Center, User and Revenue Churn, retrieved 2026-10-13.
- Baremetrics Help Center, LTV: Lifetime Value, retrieved 2026-10-13.
- Baremetrics Help Center, ARPU: Average Revenue Per User, retrieved 2026-10-13.
- Stripe, Billing pricing, retrieved 2026-10-13.
- ChartMogul, Pricing, retrieved 2026-10-13.
- Baremetrics, Plans & Pricing, retrieved 2026-10-13.