Build ARR you can prove, from the ground up.
A decision tree, not a template. Start with your business model, follow the branches through source data, a data-quality assessment, methodology trade-offs, and movement buckets, then monitor and diagnose. Pick your model and the tree adapts to the questions that actually apply to you.
- Stage 01
What is your business model?
Everything downstream branches from here, how ARR even exists is different for each.
- Stage 02
What is your source data?
Name the system of record for every field that touches revenue, before you trust any of it.
BillingZuora, NetSuite, Stripe, Chargebee, Maxio, SFDC CPQ…CRMAccounts, opportunities, close dates, product.ContractsTerm, ACV, start/renewal dates, order forms.Usage logsMetered events for consumption.One field, one system of record. Where billing and CRM disagree, decide which wins, and write it down.
- Stage 03
Run a full Data Quality Assessment
You can't build ARR on data you haven't tested. The DQA is the high-level lens for everything that follows.
Entity integrityCustomer mapping (parent/child), primary keys, no critical nulls.Referential integrityNo orphan line items; every charge ties to a contract & account.Domain integrityDates, amounts, currency and term values are in valid ranges & formats.Business-rule integrityTerm × amount reconciles; no overlapping or negative contracts.Completeness & coverageEvery revenue-affecting event is captured, not in someone's inbox.ContinuityHistory is intact across billing migrations, re-platforms, and re-IDs.↩ Process issues surface hereA failing check is rarely just data, it's a broken process. Mid-month upgrades not captured, manual overrides, missing renewal dates. Fix the upstream process, then re-run the DQA before you build. This loop is the whole game.
- Stage 04
Choose your ARR construction methodology
Every decision here is a trade-off. Make each one once, document it, and enforce it. Your model dims the ones that don't apply.
ARR basisCommittedRecognizedInvoicedTrade-off · Committed is forward-looking but includes not-yet-live. Recognized ties to GAAP but lags reality.AnnualizationMRR × 12ACV ÷ termTrade-off · Run-rate reacts fast but is noisy; contract-value is stable but hides mid-term change.Multi-year & rampSubscription / HybridFull value at signingStep up at each tierTrade-off · Signing-value flatters early ARR; step-recognition matches cash but complicates the bridge.Unit modeling (usage → ARR)Usage / HybridTrailing 3-mo run-rateLast month × 12Committed minimumTrade-off · This is the hardest call for consumption. Run-rate captures reality; committed-minimum is defensible but understates.Product migrationTreat swap as migrationChurn + newTrade-off · Migration keeps the bridge net-neutral; churn+new inflates both gross churn and new ARR.Non-recurring exclusionsExclude servicesExclude one-timeTrade-off · Purists exclude everything non-recurring; the risk is stranding revenue nobody reconciles.Currency / FXSpot rateBudget rateTrade-off · Spot is accurate but adds FX noise to the bridge; budget rate isolates real growth.Activation ruleGo-liveContract startTrade-off · Go-live is conservative and matches value delivery; contract-start counts committed-but-dark ARR. - Stage 05
Define your movement buckets
Every dollar of change between periods lands in exactly one bucket. This taxonomy is your ARR bridge.
NewFirst ARR from a new logo.ExpansionUpsell, cross-sell, price uplift.ReactivationA churned logo returns.MigrationProduct/SKU swap, net-neutral, not churn+new.ContractionDowngrades, seat cuts, usage decline.ChurnFull cancellation of a logo.Then fix your retention base, start-of-period vs. available-to-renew (UFR). GRR and NRR mean nothing until this is locked.
- Stage 06
Build the bridge, then monitor it
ARR is a rate, not a quarterly artifact. Reconcile continuously and watch it like uptime.
ARR bridge + retention viewsBeginning → movements → ending, by segment & product.Continuous reconciliationTie ARR to subscription revenue, billings, deferred, every period.Anomaly & drift alertsFlag >20% single-customer swings and methodology drift in real time. - Stage 07
Troubleshoot & diagnose, MECE
Now the metrics earn their keep. When a number moves, decompose it mutually-exclusive, collectively-exhaustive.
Example: “Net ARR came in below plan, why?”AcquisitionNew ARR ↓- Fewer new logos
- Lower new-logo ACV
- Longer sales cycle / slipped deals
ExpansionExpansion ARR ↓- Upsell motion stalling
- Cross-sell whitespace untapped
- Price actions not landing
ContractionContraction ↑- Seat / license reductions
- Usage decline (consumption)
- Downgrades to lower tier
ChurnGross churn ↑- Logo losses in a segment
- Onboarding / value gaps
- Concentration in at-risk cohort
MeasurementData / timing- Methodology drift
- Recognition timing vs booking
- Reconciliation gap, not real
Five branches, no overlap, nothing left out. Rule each in or out with the data, and the miss has exactly one home.
- Stage 08
Turn diagnosis into strategy, and execute
A clean diagnosis points at exactly one lever. Pull it, measure, and feed the result back into monitoring.
Prioritize the leverThe MECE branch that moved most is where the strategy goes first.Set the target metricName the metric that must move, and by how much.Close the loopExecution feeds Stage 06 monitoring, the system learns.
You don't calculate ARR once. You build the system that produces it.
This is the build order. The Quality of Revenue Metrics are what you produce, the Integrity Pyramid is the maturity model, and the Readiness Ladder scores where you stand.