# Subscription Analytics Software: Metrics That Matter

> How to instrument subscription analytics properly: MRR movements, churn versus retention, NRR, LTV, CAC payback, and cohorts, built on billing data rather than spreadsheet exports.
- **Author**: Deepak Jangir
- **Published**: 2026-09-20
- **Category**: SaaS, Billing
- **URL**: https://dodopayments.com/blogs/en/subscription-analytics

---

Ask three people at a subscription company what MRR was last month and you will often get three answers. The finance spreadsheet says one number, the dashboard says another, and the founder quotes a third from memory. None of them are lying. They are computing different things from different exports, and nobody wrote down which definition is authoritative.

Subscription analytics software solves that by deriving every metric from one source of truth: the billing system that actually charged the cards. Its job is to turn subscription events into MRR and its movements, churn and retention, net revenue retention, LTV, CAC payback, and cohort curves, on definitions that stay fixed from month to month so trends mean something.

This article is the instrumentation layer. It covers which metrics matter, how they interact, and where the data has to come from. It does not re-derive every formula in depth, because we have dedicated pieces for each metric and this guide links out to them.

## The Metrics That Actually Drive Decisions

Most subscription dashboards show thirty numbers and get used for four. This is the working set, and what each one is actually for.

| Metric | Question it answers | Required data source |
| :----- | :------------------ | :------------------- |
| MRR and its movements | Is recurring revenue growing, and from what? | Subscription state changes, not invoices |
| Customer churn rate | How many subscribers are leaving? | Cancellation events with period boundaries |
| Revenue churn rate | How much revenue is leaving? | Churned MRR against starting MRR |
| Net revenue retention | Does the existing base grow without new sales? | Expansion, contraction, and churn together |
| ARPU | What is an average customer worth per period? | Revenue and active customer counts |
| LTV and CAC payback | Is acquisition economically sound? | Billing data joined to marketing spend |
| Cohort retention | Is the product getting stickier over time? | Signup month plus per-month activity |

The pattern is that almost every row needs subscription state transitions rather than payment receipts. This is the single biggest reason analytics built on payout reports or invoice CSVs drift: those artifacts record money moving, not plans changing.

## MRR and ARR: The Movements Matter More Than the Total

Total MRR tells you almost nothing on its own. Two companies with identical $50,000 MRR can be in completely different health if one grew it from $45,000 with no churn and the other grew it from $60,000 while replacing departed customers with new ones.

The decomposition that matters is:

- New MRR, from subscriptions that did not exist last period.
- Expansion MRR, from existing customers upgrading or adding seats or add-ons.
- Contraction MRR, from existing customers downgrading but staying subscribed.
- Churned MRR, from customers who cancelled entirely.

Those four combine into Net New MRR:

```text
Net New MRR = New MRR + Expansion MRR - Contraction MRR - Churned MRR

Example month:
  New MRR          =  8,200
  Expansion MRR    =  3,400
  Contraction MRR  = -1,100
  Churned MRR      = -4,900
  ------------------------------
  Net New MRR      =  5,600
```

Reading that example: the business added $11,600 of gross new recurring revenue and gave back $6,000 of it. Headline growth of $5,600 looks healthy, but slightly over half of the gross gain was consumed by existing customers leaving or shrinking. That is a retention problem wearing an acquisition problem's clothes, and you cannot see it from the total alone.

Two normalisation rules keep MRR comparable. Annual plans should be counted at one twelfth per month rather than recognised in full at purchase, and one-time payments should be excluded from MRR entirely. Dodo's [analytics and reporting](https://docs.dodopayments.com/features/analytics-and-reporting) applies both, sums concurrent subscriptions per customer, and prorates by each subscription's paid-through period.

ARR is then usually just current MRR multiplied by twelve, which is a projection rather than a measurement. For where the two diverge and when each is appropriate, see [MRR vs ARR](https://dodopayments.com/blogs/mrr-vs-arr), [what is ARR](https://dodopayments.com/blogs/what-is-arr-annual-recurring-revenue), and [monthly recurring revenue explained](https://dodopayments.com/blogs/mrr-monthly-recurring-revenue).

## Churn Rate and Retention Are Not One Metric

Churn and retention are often treated as complements of the same number. In a subscription business they are not, because customers and revenue churn at different rates and in different directions.

Customer churn rate is churned subscribers divided by subscribers at the start of the period. Revenue churn rate is churned MRR divided by starting MRR. When a business sells to a mix of small and large accounts, these can move in opposite directions in the same month: losing twenty $10 accounts and keeping one $5,000 account looks terrible on customer churn and barely registers on revenue churn.

Three instrumentation decisions decide whether your churn number is usable:

- Fix the period boundary. Monthly cohorts measured on calendar months are the common default; mixing calendar and rolling windows makes the series meaningless.
- Decide how trials count. Including trial expiries in churn inflates it and hides paid-customer behaviour.
- Separate voluntary from involuntary churn. A customer who chose to leave and a customer whose card expired are different problems with different fixes.

That last point is usually the highest-leverage split available. Failed payments are recoverable revenue, not lost customers, which is why [involuntary churn from failed payments](https://dodopayments.com/blogs/involuntary-churn-failed-payments) and [dunning management](https://dodopayments.com/blogs/dunning-management) belong in the same conversation as churn reduction. Recovery is also measurable in its own right: Dodo's [subscription dunning](https://docs.dodopayments.com/features/recovery/subscription-dunning) reports retry attempts, recovery rate, and subscriptions saved, so recovered revenue is a tracked number rather than an assumption. For the formulas and segmentation, see [how to calculate churn rate](https://dodopayments.com/blogs/how-to-calculate-churn-rate), [churn rate analysis](https://dodopayments.com/blogs/churn-rate-analysis), and [reducing churn with the right metrics](https://dodopayments.com/blogs/reduce-churn-metrics-saas).

On benchmarks: treat any single "good churn is X%" figure with suspicion. Acceptable churn varies enormously between self-serve consumer tools and annual enterprise contracts, and the only comparison that reliably means anything is your own rate against your own prior periods on a fixed definition.

## Net Revenue Retention and Gross Revenue Retention

Net revenue retention is the metric that separates businesses that grow by selling harder from businesses that grow because the existing base expands.

```text
NRR = (Starting MRR + Expansion - Contraction - Churned) / Starting MRR
GRR = (Starting MRR - Contraction - Churned) / Starting MRR
```

NRR includes upgrades, so it can exceed 100%: an existing customer base that expands faster than it shrinks grows revenue with zero new logos. GRR excludes expansion, so it caps at 100% and measures pure leakage. Reporting both is the point. NRR above 100% with GRR well below it means expansion is masking a real retention problem, and that mask slips the moment expansion slows.

The reason this pair is hard to compute from spreadsheets is that it needs every plan change classified correctly as expansion or contraction at the moment it happened. Reconstructing that from invoice totals after the fact is guesswork, because an invoice that went from $200 to $150 could be a downgrade, a proration, a coupon, or a partial refund.

## ARPU, LTV, and CAC Payback

These three answer whether the acquisition engine is economically sound, and they are the metrics most often quoted with the least rigour.

ARPU is revenue divided by active customers for the period. Its value is as a segmentation tool rather than a headline: ARPU by plan, by acquisition channel, or by country tells you where the valuable customers come from, while blended ARPU mostly tells you about your pricing mix.

LTV estimates total revenue from a customer before they churn. Every LTV model is a projection built on an assumed churn rate, which means it inherits all the definitional problems above. Modelled LTV is useful for relative comparison between segments and close to useless as an absolute number quoted to two decimal places.

CAC payback period is the most operationally honest of the three, because it is denominated in months rather than modelled dollars: how long until a cohort's gross margin repays what you spent acquiring it. It needs billing data joined to spend data, which is where most instrumentation projects stall. [CAC payback period](https://dodopayments.com/blogs/cac-payback-period) and [customer acquisition cost for SaaS](https://dodopayments.com/blogs/customer-acquisition-cost-saas) cover the calculation and the common joins.

## Cohort Analysis: Retention Over Time

A single churn number is a snapshot. A cohort matrix is the film, and it answers a question no aggregate can: is the product getting better at keeping customers than it used to be?

The structure is simple. Group customers by signup month, then track what share of each cohort is still active in each subsequent month. Reading it has two directions:

- Across a row, you see one cohort's decay curve, and where it flattens. A curve that flattens at month three and holds is a healthy product with a bad onboarding month.
- Down a column, you compare cohorts at the same age. If the month-three retention of recent cohorts is higher than older ones, product and onboarding changes are working.

Cohorts also expose the thing aggregate churn hides completely: whether you have a recurring revenue business or a slow-motion one-time-purchase business. If every cohort decays to near zero by month twelve, growth is treadmill acquisition regardless of what the MRR chart shows. Dodo's retention view builds this matrix, customer and revenue churn rates, NRR, and GRR from subscription events directly.

For the strategic layer on top of this, see [building predictable revenue](https://dodopayments.com/blogs/build-predictable-revenue) and [recurring revenue models](https://dodopayments.com/blogs/recurring-revenue).

## The Quick Ratio

The quick ratio is a single number for growth efficiency, and it is the fastest sanity check on the MRR decomposition above.

```text
Quick Ratio = (New MRR + Expansion MRR) / (Contraction MRR + Churned MRR)

Using the earlier example:
  (8,200 + 3,400) / (1,100 + 4,900) = 11,600 / 6,000 = 1.93
```

A ratio of 1.93 means the business generates $1.93 of new and expansion revenue for every $1 it loses. Higher is more efficient; anything close to 1.0 means you are running hard to stand still. It is deliberately crude, and its value is that it is hard to flatter: a company hiding heavy churn behind aggressive acquisition will show a poor quick ratio even while MRR climbs.

## Why Billing-System Data Beats Spreadsheet Exports

Nearly every subscription analytics problem traces back to the same root cause: the numbers are being reconstructed from the wrong artifact.

| Data source | What it records | Failure mode |
| :---------- | :-------------- | :----------- |
| Payout reports | Money that reached your bank | Net of fees, refunds, and timing lag; not revenue |
| Invoice exports | Amounts billed in a period | Cannot distinguish downgrade from proration or coupon |
| Payment events | Successful charges | No view of plan state, trials, or pauses |
| Subscription events | Plan state transitions over time | This is the correct source |

Spreadsheet-based reporting fails in four specific ways. It is retrospective, so a mistake is discovered a month later. It is manual, so the definition quietly drifts as whoever maintains it changes. It cannot see mid-period state, so a customer who upgraded on the 8th and cancelled on the 22nd is invisible. And it cannot reconcile against money actually received, which is the check that catches everything else.

That last point is the boundary between analytics and accounting, and it is worth keeping distinct. MRR is an operating metric, not a revenue recognition figure. [Billings vs revenue](https://dodopayments.com/blogs/billings-vs-revenue), [deferred revenue](https://dodopayments.com/blogs/deferred-revenue-explained), [SaaS revenue recognition](https://dodopayments.com/blogs/saas-revenue-recognition), and [gross vs net revenue](https://dodopayments.com/blogs/gross-revenue-vs-net-revenue) cover where the two diverge, and [payment reconciliation for SaaS](https://dodopayments.com/blogs/payment-reconciliation-saas) covers tying them back together. For the wider function, see [revenue operations for SaaS](https://dodopayments.com/blogs/revenue-operations-saas) and the [SaaS accounting guide](https://dodopayments.com/blogs/saas-accounting-guide).

## What to Look for in Subscription Analytics Tooling

Evaluate subscription analytics software on how it gets its data before you evaluate the charts, because chart quality is easy to fix and data lineage is not.

- Native billing data, not a sync. Every integration layer between the billing system and the metrics adds lag and a class of silent mismatch.
- Published definitions. If the tool will not tell you exactly how it computes churn, NRR, and MRR, you cannot defend the numbers to anyone.
- Movement decomposition by default. New, expansion, contraction, and churned MRR as first-class figures rather than something you derive.
- Voluntary and involuntary churn split out, because they have different owners and different remedies.
- Cohort retention over an arbitrary window, not a fixed 30/60/90 view.
- Segmentation by plan, product, country, and payment method. Revenue by country matters once you sell across borders.
- Recovery reporting, so retries, dunning, and abandoned cart recovery are measurable rather than assumed.

The other consideration is cost structure. Standalone subscription analytics products typically price on tracked revenue or customer count, which means the bill grows with the thing you are measuring. Dodo Payments includes payment, revenue, customer, and churn analytics at no extra cost as part of its [Billing](https://dodopayments.com/billing) product, with metrics computed from the subscription events it already processes rather than from a synced copy. Subscriptions carry a 0.5% addition to the base rate, and there are no fixed monthly or setup fees; details are on the [pricing page](https://dodopayments.com/pricing).

If the tooling question is really a billing question, [subscription management software](https://dodopayments.com/blogs/subscription-management-software) and [SaaS subscription management](https://dodopayments.com/blogs/saas-subscription-management) cover that layer, while [subscription pricing models](https://dodopayments.com/blogs/subscription-pricing-models) and [usage-based billing](https://dodopayments.com/blogs/usage-based-billing-saas) cover how pricing structure changes what you need to measure. The [subscription documentation](https://docs.dodopayments.com/features/subscription) and [webhooks reference](https://docs.dodopayments.com/developer-resources/webhooks) cover piping these events into your own warehouse if you would rather model them yourself.

## FAQ

### What is the difference between subscription analytics and standard product analytics?

Product analytics tracks behaviour inside your application, such as feature usage and activation. Subscription analytics tracks the commercial relationship: MRR movements, churn, retention, and payback, all derived from subscription state changes in the billing system rather than from in-app events.

### Why do my MRR numbers differ between tools?

Almost always because of definitions rather than bugs. Common divergences are whether annual plans are amortised to one twelfth per month or recognised at purchase, whether one-time payments are included, whether trials count as active subscriptions, and whether concurrent subscriptions from one customer are summed. Fix the definitions before investigating the data.

### Can I run subscription analytics from spreadsheet exports?

You can approximate it at very small scale, but it breaks predictably. Invoice exports cannot distinguish a downgrade from a proration or a coupon, they miss mid-period plan changes entirely, and the definitions drift as whoever maintains the sheet changes. Subscription state transitions are the correct source.

### What is a good churn rate for a subscription business?

There is no single credible figure, because acceptable churn differs enormously between self-serve consumer tools and annual enterprise contracts. The comparison worth making is your own rate against your own prior periods on a fixed definition, with voluntary and involuntary churn reported separately.

### Should I track NRR or GRR?

Both, and always together. NRR includes expansion so it can exceed 100%, while GRR excludes it and caps at 100%. A large gap between them means upgrades are masking underlying retention leakage, which only becomes visible when expansion slows.

## Conclusion

Subscription analytics is less about dashboards than about deciding, once, where the numbers come from and what each one means. Derive metrics from subscription state transitions rather than invoices or payouts, decompose MRR into its four movements instead of watching the total, report customer and revenue churn separately, and pair NRR with GRR so expansion cannot hide leakage.

Do that and the monthly review stops being an argument about whose spreadsheet is right and starts being a conversation about which of the four MRR movements to work on next.
---
- [More SaaS articles](https://dodopayments.com/blogs/category/saas)
- [All articles](https://dodopayments.com/blogs)