Formula Guide

NRR Formula: Exact SaaS Calculation Rules

This page defines the exact formula, the variables, the inclusion and exclusion rules, and the edge cases that must be handled if the metric is to be calculated correctly.

FRM

What This Formula Covers

Canonical formula

For a fixed starting customer base C0 and its starting recurring revenue StartingMRR, net revenue retention over period P is:

NRR(P) = (StartingMRR − ChurnedMRR − ContractionMRR + ExpansionMRR) / StartingMRR

Expressed as a percentage:

NRR%(P) = NRR(P) × 100

This formula is exact only if every component is measured on the same starting cohort and on the same recurring revenue policy.

Variable definitions

  • C0: the customer cohort active at the start of period P.
  • StartingMRR: total recurring monthly revenue attributable to cohort C0 at the start of period P.
  • ChurnedMRR: recurring monthly revenue from customers in C0 that is fully lost during P.
  • ContractionMRR: reduction in recurring monthly revenue from surviving customers in C0 during P.
  • ExpansionMRR: increase in recurring monthly revenue from customers in C0 during P.

Component formulas

The components are measured as follows:

StartingMRR = Σ for c in C0 of MRR_start(c)
ChurnedMRR = Σ for c in C0 and fully churned in P of MRR_lost(c)
ContractionMRR = Σ for c in C0 of max(MRR_start(c) − MRR_end(c), 0) excluding full churn
ExpansionMRR = Σ for c in C0 of max(MRR_end(c) − MRR_start(c), 0)

Contraction and expansion are measured only on customers that belong to the starting cohort. Full churn is not double-counted as contraction.

Cohort rules

NRR is a starting-base metric. Therefore the cohort is fixed at the start of the period and cannot be changed afterward.

This means:

  • New logo revenue acquired during P does not belong in ExpansionMRR.
  • Only customers already in C0 can contribute to churn, contraction, or expansion in the formula.
  • The same recurring revenue policy must be used for all four components.

In strict set terms, all terms in the formula are functions of C0, not of the full customer set observed at the end of the period.

Exclusion rules

Exclude the following from NRR calculations:

  • New customer MRR acquired after the start of the period.
  • One-time fees and non-recurring services.
  • Taxes, pass-through charges, and hardware.
  • Pure cash timing effects with no recurring revenue change.
  • Any component measured under a different MRR policy than StartingMRR.

If new logo revenue is included, the result is not NRR. It becomes a blended growth ratio with broken cohort logic.

Edge cases

  • Full churn: count the lost recurring amount in ChurnedMRR, not in both churn and contraction.
  • Partial downgrade: count only the delta in ContractionMRR.
  • Expansion after downgrade in the same period: measure net movement carefully at the customer-line level so that each recurring delta is assigned consistently.
  • Reactivation: if the customer belonged to C0 and was later reactivated within the measurement logic, the treatment must follow a consistent movement policy; otherwise reactivation can be modeled separately from classical NRR.
  • Currency effects: FX translation rules must be stable or the formula will reflect accounting noise rather than revenue behavior.

Worked example

Suppose the starting cohort has StartingMRR = 100,000. During the period:

  • ChurnedMRR = 8,000
  • ContractionMRR = 4,000
  • ExpansionMRR = 15,000

Then:

NRR(P) = (100,000 − 8,000 − 4,000 + 15,000) / 100,000
NRR(P) = 103,000 / 100,000 = 1.03
NRR%(P) = 103%

If an additional 12,000 of new logo MRR was acquired in the same period, it still contributes 0 to NRR.

Strict summary

NRR is a fixed-cohort recurring revenue retention ratio. Every term in the formula must come from the same starting base and the same recurring revenue policy.

If new logo revenue is added, if churn is double-counted with contraction, or if the MRR policy changes between components, the result is not strict NRR.

MAP

Related Reading

Core metric pages: