# ARR / MRR Reporting — Standard Operating Procedure

> Source: https://b2bprocess.com/arr-mrr-reporting
> Last updated: 2026-08-09. Adapt owners, tools, and thresholds to your organization.

## 1. Purpose

ARR/MRR reporting is the recurring process by which a subscription business converts its active contracts into a single normalized recurring revenue number — monthly recurring revenue (MRR) and its annualized equivalent, annual recurring revenue (ARR) — classifies every change since the last period into new, expansion, contraction, churn, and reactivation, and publishes the result as an ARR walk that ties the opening balance to the closing balance. It is the reporting layer that turns a billing system full of heterogeneous contracts, terms, discounts, and billing frequencies into the handful of numbers a board, an investor, and an operating team actually run the company on.

## 2. Scope & prerequisites

Any company with recurring contracts needs ARR/MRR reporting from its first paying customers; what changes with scale is rigor and automation. Pre-seed and seed companies typically run it from a billing export into a spreadsheet each month. Once contract structures diversify — multi-year terms, ramps, usage components, multi-entity or multi-currency — the calculation needs to move to a modeled data set in a warehouse with versioned snapshots. Prerequisites: a single system of record for subscriptions, a written recurring revenue policy defining what counts, and a defined monthly cadence tied to the close calendar. Companies with predominantly usage-based or consumption pricing should adapt the model rather than adopt it wholesale — see the FAQ on usage-based revenue.

## 3. Roles & responsibilities

| Role | Responsibility |
| --- | --- |
| CFO | Owns the recurring revenue definition, approves changes and restatements, and presents ARR and retention to the board and investors. |
| Controller | Reconciles ARR to GAAP revenue and billings, and ensures the reporting cadence aligns with the close calendar. |
| FP&A | Builds the walk, derives retention and efficiency metrics, produces the reporting pack, and ties ARR into forecast and plan. |
| RevOps | Owns contract data quality in the CRM and billing system, and the classification logic that turns raw subscriptions into movements. |
| Analytics engineer / Data team | Models subscription data in the warehouse, maintains versioned snapshots, and makes the calculation reproducible rather than spreadsheet-bound. |
| Deal desk | Ensures non-standard contracts — ramps, multi-year, usage components, mid-term amendments — are structured and recorded so they can be classified without manual interpretation. |
| Sales and CS leadership | Consume the segmented walk; accountable for the new, expansion, contraction, and churn lines respectively. |

## 4. Procedure

### Step 1: Write and approve the recurring revenue policy

**Owner:** CFO + Controller

Before any number is produced, document what counts as recurring revenue and what does not. This policy is the definition every downstream report inherits, and changing it later forces a restatement of history — so it is worth the argument up front.

- [ ] Define what is included: subscription fees, committed platform fees, recurring support tiers
- [ ] Define what is excluded: implementation and setup fees, professional services, hardware, pass-through costs, one-time overages
- [ ] Set the treatment of usage-based and consumption revenue (excluded, committed-minimum only, or trailing-average)
- [ ] Set the annualization convention (MRR × 12) and the point-in-time snapshot date
- [ ] Define when a contract enters ARR: signature, start date, or first invoice — and apply it consistently

### Step 2: Establish the subscription source of truth

**Owner:** RevOps

Designate one system as authoritative for contract terms — typically the billing or subscription management platform, with the CRM as the origination record — and ensure every active contract exists there with the fields the calculation needs: start and end dates, term length, billing frequency, list and net price, quantity, discount, and ramp schedule.

- [ ] Map required fields and enforce them at contract creation via deal desk or order form validation
- [ ] Reconcile CRM closed-won opportunities against billing subscriptions to catch contracts that never got provisioned
- [ ] Backfill or correct historical records before the first published snapshot

### Step 3: Normalize every contract to monthly recurring value

**Owner:** Finance analyst / RevOps

Convert each active subscription to a common monthly figure regardless of how it is billed. An annual contract billed up front is its annual net value divided by twelve, not a spike in the month invoiced. Multi-year and ramped deals use the rate in effect on the snapshot date, not the average or the final-year rate.

- [ ] Divide annual and multi-year contract values by their term months to get the in-force monthly rate
- [ ] Apply the contracted rate effective on the snapshot date for ramped deals
- [ ] Net discounts and credits into the recurring rate; exclude free trial and $0 pilot periods
- [ ] Convert foreign-currency contracts at the policy-defined rate (typically a fixed budget rate or period-end spot rate, applied consistently)

### Step 4: Take and version the period snapshot

**Owner:** Finance analyst / Analytics engineer

Capture the full customer-level MRR set as of the period-end date and store it immutably. Versioned snapshots are what make history reproducible — without them, every rebuild of the model silently restates prior periods and the board sees numbers that changed without explanation.

- [ ] Snapshot at a consistent point (typically the last calendar day of the month) after the billing subledger cutoff
- [ ] Store customer-level detail, not just the total, so any movement can be traced to an account
- [ ] Never overwrite a published snapshot; corrections are recorded as an explicit, documented restatement

### Step 5: Classify movements against the prior snapshot

**Owner:** Finance analyst / RevOps

Join the current snapshot to the prior one at the customer level and assign every difference to exactly one movement category. Each dollar of change must land in one bucket and only one — this mutual exclusivity is what makes the walk tie.

- [ ] New: customers with MRR this period and none in any prior period
- [ ] Expansion: existing customers whose MRR increased (upsell, cross-sell, seat growth, price increase)
- [ ] Contraction: existing customers whose MRR decreased but remains above zero (downgrade, seat reduction)
- [ ] Churn: customers whose MRR went to zero
- [ ] Reactivation: previously churned customers returning to non-zero MRR
- [ ] Handle account merges, splits, and re-papering with an explicit rule so they don't surface as simultaneous churn and new

### Step 6: Build the ARR walk and prove it ties

**Owner:** Finance analyst

Assemble the bridge: opening MRR + new + expansion + reactivation − contraction − churn = closing MRR. The walk must reconcile exactly to the independently computed closing snapshot with no balancing plug. A plug means a classification rule is wrong, not that the number is close enough.

- [ ] Compute closing MRR independently from the snapshot, not as the sum of the movements
- [ ] Reconcile the two figures to zero variance before publishing
- [ ] Investigate any residual at the customer level and correct the classification rule, not the total

### Step 7: Reconcile to GAAP revenue and billings

**Owner:** Controller

Tie the recurring revenue picture back to the books. Recognized subscription revenue for the period should be explainable from the MRR base plus mid-month starts and stops, and any material gap should have a named cause — a large implementation fee, a services engagement, a mid-period start — rather than being written off as a timing difference.

- [ ] Bridge closing MRR to recognized subscription revenue for the period
- [ ] Identify and quantify the non-recurring components excluded from ARR
- [ ] Escalate unexplained variances above the materiality threshold to the Controller before publication

### Step 8: Calculate derived retention and efficiency metrics

**Owner:** FP&A

From the same walk, compute gross revenue retention, net revenue retention, logo retention, ARPA, and the SaaS quick ratio. Deriving them from the published walk rather than a separate query guarantees the retention numbers and the ARR numbers cannot disagree.

- [ ] Define the cohort basis (trailing twelve months against the same set of customers) and state it on the report
- [ ] Compute GRR excluding expansion; compute NRR including it
- [ ] Segment by cohort, plan tier, segment, and region where volume supports it

### Step 9: Publish the reporting pack and archive the inputs

**Owner:** FP&A + CFO

Distribute the ARR walk, retention metrics, and segmentation on the agreed cadence alongside the month-end financial statements, with definitions restated on the report itself. Archive the snapshot and the classification output so any figure can be reproduced on request during diligence or an audit.

- [ ] Publish alongside close outputs so finance and operating numbers land together
- [ ] Include the definition footnotes on the report, not in a separate document nobody opens
- [ ] Archive snapshot, movement detail, and the report version together

### Step 10: Govern definition changes and review exceptions

**Owner:** CFO

Treat the recurring revenue definition as controlled: changes require explicit approval, a documented rationale, and a restated history so trends remain comparable. Review recurring exceptions — accounts repeatedly requiring manual classification — and fix the underlying contract data rather than the spreadsheet.

- [ ] Log every definition change with effective date and rationale
- [ ] Restate and republish prior periods when a change is material to the trend
- [ ] Route recurring manual overrides back to deal desk or RevOps as data-quality fixes

## 5. Metrics to monitor

| Metric | Definition | Formula | Target |
| --- | --- | --- | --- |
| MRR (Monthly Recurring Revenue) | Normalized recurring subscription value in force for a single month, at a point in time. | Σ (contracted recurring value ÷ term months) across active subscriptions | — |
| ARR (Annual Recurring Revenue) | The annualized value of recurring contracts in force on the snapshot date. | MRR × 12 | — |
| Net New MRR | The total period change in recurring revenue across all movement categories. | New + Expansion + Reactivation − Contraction − Churn | — |
| Gross Revenue Retention (GRR) | Share of recurring revenue retained from an existing cohort, excluding expansion — measures pure leakage. | (Opening MRR − Contraction − Churn) ÷ Opening MRR | typical range: 85–95% for mid-market and enterprise SaaS; lower for SMB |
| Net Revenue Retention (NRR) | Share of recurring revenue retained from an existing cohort including expansion, measured against the same customers a year prior. | (Opening MRR + Expansion − Contraction − Churn) ÷ Opening MRR | typical benchmark: above 100%; 110–120%+ for strong enterprise expansion motions |
| Logo retention | Share of customers retained over the period, unweighted by revenue. | Customers at period end from the opening cohort ÷ customers at period start | typical range: 80–90% annually, varying sharply by segment |
| ARPA (Average Revenue Per Account) | Mean recurring revenue per active customer, used to detect mix shift up- or down-market. | MRR ÷ active customer count | — |
| SaaS quick ratio | Growth efficiency: recurring revenue added relative to recurring revenue lost in the period. | (New + Expansion) ÷ (Contraction + Churn) | typical benchmark: above 4 for efficient growth |

## 6. Known failure modes

| Failure | Symptom | Corrective action |
| --- | --- | --- |
| Bookings reported as ARR | A multi-year contract signed in the period inflates ARR by its total contract value; the number drops inexplicably next month. | Report ARR as the annualized in-force rate on the snapshot date; report total contract value separately as bookings. |
| One-time fees included in recurring revenue | ARR jumps in months with heavy implementation or services activity, then contracts with no customer having churned. | Exclude setup, implementation, services, and hardware from ARR per written policy; report them as non-recurring revenue. |
| The walk doesn't tie and gets a plug | An 'other' or 'adjustment' line absorbs the difference between the movements and the closing balance. | Trace the residual to individual customers; the cause is almost always overlapping classification rules or unhandled account merges, both of which are fixable. |
| Snapshots overwritten instead of versioned | Prior-period ARR changes every time the model is rebuilt; board decks from different quarters disagree. | Store immutable customer-level snapshots per period; treat any change to a published figure as an explicit, documented restatement. |
| Annual prepayment counted in the month billed | MRR spikes in renewal-heavy months and collapses afterward, tracking cash rather than the subscription base. | Normalize every contract to its monthly in-force rate regardless of billing frequency; track cash collection separately. |
| Definitions drift between teams | Finance, sales, and the board deck each show a different ARR for the same month. | Publish one definition, derive every report from the same snapshot and walk, and restate the definitions on the report itself. |
| Downgrades classified as churn | Gross retention looks worse than reality and expansion motions are undercounted; churn analysis chases the wrong customers. | Classify a reduction to non-zero MRR as contraction and only a reduction to zero as churn; apply the rule in code, not by judgment. |
| Volatile usage revenue folded into ARR | ARR moves with seasonal consumption and forecasts built on it miss badly. | Include only committed minimums in ARR, or report usage revenue as a clearly labeled separate line with its own trailing-average treatment. |
| ARR recognized at signature for contracts that haven't started | Reported ARR exceeds what any month's billing could support; diligence surfaces the gap. | Pick one entry point — typically the contract start date — write it into the policy, and apply it to every contract without exception. |

---

This SOP is maintained as part of the B2B process encyclopedia at https://b2bprocess.com. Check the source page for the latest revision.
