ProductComparePricingSecurityBlogAbout Book a 30 min demo
All articles
Revenue15 September 2026·6 min read

Your ARR and your invoices disagree. Here is where they drift.

The CRM records what a deal closed at. Billing records what you charged. Everything that happens in between goes unrecorded — and that gap is why the quarter-end reconciliation never gets faster.

Two numbers in every SaaS company are supposed to describe the same thing, and almost never agree. One is the ARR your CRM reports. The other is what you actually invoiced. Finance notices the gap at quarter end, somebody is asked to explain it, and the explanation takes a week.

The gap is not a data quality problem. It is structural, and it starts the day after the deal closes.

What each number really measures

Your CRM records what a deal was worth on the day it was signed. That is an opportunity amount: a single value, attached to a single moment, and never revisited. Your billing system records what you charged, month after month, as the contract actually ran.

Those are different questions. The first is a snapshot. The second is a film. They only agree if nothing ever changes after signature — which is to say, they only agree for customers you have not served yet.

A year in the life of one contract

Take a customer who signs on 1 February for €40,000 a year.

Acme Corp, twelve months after signature
Closed Won, 1 February€40,000
March — added a module+€12,000
June — dropped ten seats−€6,000
February — contracted uplift at renewal+€2,400
What the customer actually pays today€48,400
What the CRM still says€40,000
Three changes, none of them unusual, none of them recorded anywhere a report can reach.

Nothing here is exotic. An upsell, a partial cancellation and a contracted increase are the normal life of a healthy account. And yet the opportunity still reads €40,000, because no mechanism exists to update it — and if someone did overwrite it, the original number would be lost and the audit trail with it.

The five places the drift comes from

Mid-term upgrades. The commonest and the largest. A new opportunity is often created for the upsell, which means the account now has two records and no single view of what it is worth.

Partial cancellations. Rarely recorded at all. A customer drops seats, the invoice shrinks, and the CRM never hears about it.

Proration. A change mid-period bills a part-month. The annualised value and the invoiced value legitimately differ, and the difference is arithmetic nobody wants to redo by hand.

Contracted uplifts. The 3–5% increase written into year two arrives silently. It is real recurring revenue and it appears in no forecast.

Currency. A contract in pounds, reported in euros, revalued at a different rate. Your ARR moves while nothing commercial has happened at all.

Why a report cannot fix this

The instinct is to build a better report. It does not work, and the reason is worth understanding.

Reporting tools summarise what exists. They can group, filter and total. What they cannot do is reconstruct an event that was never written down. If the June seat reduction exists only as a line in a signed PDF and a changed invoice, no amount of formula work in the CRM will find it. The information is not hidden; it is absent.

This is why the quarterly reconciliation never gets faster. Each quarter somebody re-derives the same missing facts from source documents, by hand, and the work cannot be automated because there is nothing to automate against.

The fix is boring and structural

Record every change in recurring revenue as its own dated event, at the moment it happens: what moved, by how much, on what date, and why. New business, upgrade, partial cancellation, renewal uplift, churn.

Write each event once and never edit it. That last part matters more than it sounds. An editable number can be corrected into agreement with whatever answer is wanted; an immutable ledger of events can only be added to. It is the difference between a figure you report and a figure you can defend.

Once those events exist, the two numbers stop disagreeing, because the ARR is no longer a separate estimate — it is the sum of the same movements that produced the invoices. NRR becomes one query. The quarter-end reconciliation becomes a check rather than a project.

Three things you can do this week

Pick your five largest accounts and compare their CRM value against the last invoice. If any differ by more than a few percent, the gap is structural, not clerical.

Ask where a partial cancellation gets recorded. In most orgs the honest answer is "in the renewal opportunity, eventually" — which means it is invisible until the renewal.

Check whether anyone can name last quarter's expansion number without opening a spreadsheet. If not, you do not have a reporting problem. You have a recording problem.

GM
Gagan MadaanFounder, Revsolut GmbH — about the team

See it run on one of your own deals

Thirty minutes in your Salesforce sandbox. We install it, configure your pricing, and quote a real opportunity end to end.

Book a demo