MRR vs revenue: why your dashboard and your P&L disagree

Your metrics tool says MRR is $42,000. Your profit and loss says revenue for the month was $39,600. Your Stripe dashboard shows something else again. Founders often assume one of these is wrong. Usually they're all correct; they just answer different questions.

Two different questions

  • MRR answers: if nothing changed, how much recurring subscription revenue would we bring in each month? It's a run-rate, measured at a point in time.
  • Revenue answers: how much did we actually earn during this period? It's a total for the period, measured under accounting rules.

ARR is usually MRR multiplied by twelve. It's a scaled-up run-rate, not a forecast of next year's revenue.

What usually goes into MRR

Definitions vary between companies and tools, which is a problem in itself. A common, defensible approach:

  • Included: active paid subscriptions, normalized to a monthly amount (an annual plan of $1,200 counts as $100 of MRR), after recurring discounts
  • Excluded: one-off setup or onboarding fees, usage or overage charges (often tracked separately), free trials, and sales tax

Whatever definition you choose, write it down and apply it consistently. A metric that changes definition from month to month can't be trended.

Why revenue and MRR drift apart

Cause Effect
One-off fees (setup, consulting) In revenue, not in MRR
Usage and overage charges Usually in revenue, often not in MRR
Customers joining or leaving mid-month MRR counts the full monthly value; revenue counts only the days served
Refunds and credits Reduce revenue in the month issued
Failed payments Still in MRR until you treat the customer as churned; revenue depends on your policy for collecting it
Deferred revenue errors Annual plans recognized all at once inflate revenue in renewal months
Billing system vs books timing Invoices dated on different days from when they're recorded

A simple monthly reconciliation

Start by building an MRR bridge from your customer data:

Opening MRR + new MRR + expansion − contraction − churned MRR = closing MRR

Then compare your recurring subscription revenue in the books with your MRR for the month, and list the reconciling items: one-off fees, usage, mid-month changes, refunds, and any deferred revenue adjustments. If every difference has a name and an amount, both numbers can be trusted. If there's a leftover gap you can't explain, that's where the error is.

Common causes of unexplained gaps

  • Annual plans being counted at full value in the month they're paid, in either the books or the metrics tool
  • Cancelled customers still counted in MRR because their subscription wasn't closed in the billing system
  • Discounts applied in billing but ignored by the metrics tool, or the reverse
  • Revenue from a second billing system or payment platform missing from one side
  • Payouts recorded as revenue instead of gross sales (see why Stripe payouts don't match revenue)

Why it matters

MRR feeds almost every other SaaS metric: growth rate, churn, LTV, and payback period. If MRR doesn't reconcile to your books, every metric built on it carries the same error. Tying the two together each month is what turns a dashboard number into one you can make decisions with.

This guide is general information about bookkeeping and SaaS metrics, not accounting, tax, or legal advice for your situation. Decisions about accounting policies, tax, and formal financial statements belong with your accountant or CPA.

Ayman Fatima

ACCA Affiliate and founder of The SaaS Ledger, a bookkeeping practice for SaaS and subscription businesses. She works on the connection between subscription data, payment platforms, accounting records, and SaaS metrics.

Check your own numbers

The free SaaS Metrics Health Check walks you through six checks that show whether your billing data, books, and metrics agree.

Get the free checklist