The MRR you report isn't the MRR you earned.
Most teams sum active subscriptions and call it recurring revenue. Proration, mid-cycle upgrades, and credits quietly distort the number, and the gap is where your real growth story lives.
Short answer
Reported MRR is a month-end snapshot of active subscriptions, while earned MRR is the revenue that actually flowed across the month. They diverge because of proration, mid-cycle expansion, credits and late-converting trials. Reconciling the two each month, and labelling every difference by cause, turns the gap into a diagnostic.
Key takeaways
- Reported MRR is a snapshot; earned MRR is a flow that recognises each change on the day it took effect.
- Proration, mid-cycle expansion, credits and refunds, and late trial conversions explain nearly all of the drift.
- Reconcile monthly: pull the billing event stream, prorate to the day, net out credits, then diff against the snapshot.
- A widening gap is a signal: proration growing points to healthy expansion, credits growing points to a billing-accuracy or satisfaction problem.
Open any board deck and you'll find a single line that everyone trusts implicitly: monthly recurring revenue. It's the number the valuation hangs on, the number the team celebrates, the number that anchors next year's plan. And in most companies, it's quietly wrong. Not because anyone is dishonest, but because the way MRR is computed rarely matches the way revenue actually flows.
The gap nobody reconciles
Reported MRR is usually a snapshot: sum the active subscriptions on the last day of the month, normalize annual plans to a monthly figure, and post it. Earned MRR is a flow: the revenue you actually recognized across the month, accounting for the day each change took effect. These two numbers agree only when nothing changes mid-cycle, which is to say almost never in a growing business.
The difference is small in any single month. Compounded across upgrades, downgrades, proration, and credits, it becomes the difference between a growth story you can defend and one that unravels under diligence.
A snapshot tells you what you have. A flow tells you what happened. You report the first and get paid on the second.
Where reported MRR drifts
Four mechanics account for nearly all of the drift between the snapshot and the flow:
- Proration. A customer who upgrades on the 20th contributes a partial month at the new rate, but a month-end snapshot books the full amount.
- Mid-cycle expansion. Seats added on the 8th earn 23 days of revenue, not 30. Snapshots round that up.
- Credits and refunds. Goodwill credits reduce earned revenue immediately but rarely touch the subscription record the snapshot reads from.
- Trials converting late. A trial that converts on the 27th looks like a full active subscription on the 31st.
Why the snapshot wins anyway
Snapshots persist because they're cheap. One query against the subscriptions table, run nightly, and you have a number. Reconstructing the flow means replaying every billing event in order, and that's exactly the work most billing systems make hard, because their event log was built for invoicing, not analytics.
Median gap between snapshot MRR and earned MRR across 140 Series A to B SaaS companies in the Revvly cohort. The top decile ran above 9%.
A reconciliation you can run
You don't need a finance transformation to close the gap. You need one disciplined monthly reconciliation that treats earned revenue as the source of truth and explains every dollar of variance:
- Pull the billing event stream for the period, not the end-of-period subscription state.
- Recognize each line on the day it took effect, prorated to the exact day count.
- Net out credits and refunds in the period they were issued.
- Diff the result against your reported snapshot and label every delta by cause.
The output isn't just a corrected number. It's a categorized bridge: proration here, late conversions there, that tells you why the two disagree and whether the gap is widening.
What the gap is telling you
A stable, small gap is fine. A widening one is a signal. If proration is your largest variance and it's growing, your expansion motion is working. Customers are upgrading mid-cycle faster than your snapshot can keep up. If credits dominate, you have a satisfaction or billing-accuracy problem hiding inside a revenue metric. The reconciliation turns an accounting chore into a diagnostic.
Putting it in the engine
The reason this stays a quarterly fire drill at most companies is structural. Billing, CRM, and analytics each hold a piece of the truth and none of them hold the flow. Revvly reads the billing event stream directly, recognizes revenue on the day each change lands, and keeps the snapshot-to-earned bridge live. The number on your board deck and the number in your bank are the same number, every month, without the spreadsheet.
That's the whole point of an engine over a stack: the reconciliation stops being something you do and becomes something the system already knows.
Alain spent a decade building and scaling subscription businesses before founding Revvly. He writes about the infrastructure gap between what SaaS companies report and what they actually earn.