1. Scope
Projects MRR/ARR at 3/6/12 months, Net Revenue Retention, and months to a target ARR. Deterministic compounding; does not model revenue risk distributions.
2. Inputs and outputs
Inputs
- current_mrr number (currency)
- new_subscribers_per_month number
New MRR each month = new_subscribers × arpu; zero if arpu is not set.
- arpu number (currency)
Drives new MRR from the subscriber count.
- churn_rate_percent percent
- expansion_mrr_per_month number (currency) default: 0
- projection_months number
1–60.
- target_arr number (currency)
Optional target for monthsToTargetArr.
Outputs
- projectedMrr3m / 6m / 12m
MRR at 3, 6, and 12 months (12m clamped to the horizon).
- netRevenueRetention
(1 − churn + expansion/current_mrr) × 100 — a single-period monthly factor.
- monthsToTargetArr
First month projected ARR ≥ target_arr, or null within the horizon.
Engine source: src/lib/mrr-arr-growth-calculator/engine.ts
3. Formula / scoring logic
new_mrr = new_subscribers_per_month * arpu
mrr_m = mrr_{m-1} - (mrr_{m-1} * churn) + new_mrr + expansion
nrr = (1 - churn + expansion / current_mrr) * 100 4. Assumptions
- New MRR comes from new_subscribers × arpu — there is no direct net-new-MRR input.
- New and expansion MRR are constant per month; churn is applied to current MRR each month.
- NRR is the single-period monthly factor, not a 12-month compounded value.
5. Data sources
6. Known limitations
- Constant-growth past year one is rarely accurate. Segment by stage.
- Expansion revenue mechanics (seat growth, tier upgrades) are bundled into a single input.
7. Reproducibility
Input
current_mrr = $10,000, new_subscribers_per_month = 50, arpu = $40 (new MRR $2,000), churn_rate_percent = 4, expansion_mrr_per_month = $500, projection_months = 12, target_arr = $500,000.
Expected output
projectedMrr12m ≈ $30,332.74, netRevenueRetention = 101.0, monthsToTargetArr = null (ARR reaches ~$364K within the 12-month horizon, below the $500K target).
8. Change log
- 2026-04-24 methodology page first published.
Worked example
Run live against the same engine this site ships
(/engines/mrr-arr-growth-calculator.js).
The inputs and outputs below are recomputed on every build and
independently re-verified in CI — they are never hand-authored.
Input
- tool
- mrr_arr_growth_calculator
- current_mrr
- 25000
- arpu
- 99
- new_subscribers_per_month
- 50
- churn_rate_percent
- 3
- expansion_mrr_per_month
- 500
- projection_months
- 12
- target_arr
- 500000
Output
- currentMrr
- 25000
- currentArr
- 300000
- projectedMrr3m
- 38681.23
- projectedMrr6m
- 51167.72
- projectedMrr12m
- 72964.7
- projectedArr12m
- 875576.4
- netRevenueRetention
- 99
- monthsToTargetArr
- 4
- projectionPoints[0].month
- 1
- projectionPoints[0].mrr
- 29700
- projectionPoints[0].arr
- 356400
- projectionPoints[1].month
- 2
- projectionPoints[1].mrr
- 34259
- projectionPoints[1].arr
- 411108
- projectionPoints[2].month
- 3
- projectionPoints[2].mrr
- 38681.23
- projectionPoints[2].arr
- 464174.76
- projectionPoints[3].month
- 4
- projectionPoints[3].mrr
- 42970.79
- projectionPoints[3].arr
- 515649.48
- projectionPoints[4].month
- 5
- projectionPoints[4].mrr
- 47131.67
- projectionPoints[4].arr
- 565580.04
- projectionPoints[5].month
- 6
- projectionPoints[5].mrr
- 51167.72
- projectionPoints[5].arr
- 614012.64
- projectionPoints[6].month
- 7
- projectionPoints[6].mrr
- 55082.69
- projectionPoints[6].arr
- 660992.28
- projectionPoints[7].month
- 8
- projectionPoints[7].mrr
- 58880.21
- projectionPoints[7].arr
- 706562.52
- projectionPoints[8].month
- 9
- projectionPoints[8].mrr
- 62563.8
- projectionPoints[8].arr
- 750765.6
- projectionPoints[9].month
- 10
- projectionPoints[9].mrr
- 66136.89
- projectionPoints[9].arr
- 793642.68
- projectionPoints[10].month
- 11
- projectionPoints[10].mrr
- 69602.78
- projectionPoints[10].arr
- 835233.36
- projectionPoints[11].month
- 12
- projectionPoints[11].mrr
- 72964.7
- projectionPoints[11].arr
- 875576.4
- growthRate3m
- 54.7
- growthRate12m
- 191.9
Frequently asked questions
- What does the MRR / ARR Growth Calculator calculate?
- Projects MRR/ARR at 3/6/12 months, Net Revenue Retention, and months to a target ARR. Deterministic compounding; does not model revenue risk distributions.
- What inputs does the MRR / ARR Growth Calculator need?
- It takes 7 inputs: current_mrr, new_subscribers_per_month, arpu, churn_rate_percent, expansion_mrr_per_month (default 0), projection_months, target_arr. Outputs returned: projectedMrr3m / 6m / 12m, netRevenueRetention, monthsToTargetArr.
- What formula does the MRR / ARR Growth Calculator use?
- The exact computation is: new_mrr = new_subscribers_per_month * arpu; mrr_m = mrr_{m-1} - (mrr_{m-1} * churn) + new_mrr + expansion; nrr = (1 - churn + expansion / current_mrr) * 100
- Can I verify the MRR / ARR Growth Calculator with a worked example?
- Yes. With current_mrr = $10,000, new_subscribers_per_month = 50, arpu = $40 (new MRR $2,000), churn_rate_percent = 4, expansion_mrr_per_month = $500, projection_months = 12, target_arr = $500,000. the tool returns projectedMrr12m ≈ $30,332.74, netRevenueRetention = 101.0, monthsToTargetArr = null (ARR reaches ~$364K within the 12-month horizon, below the $500K target).
- Where does the MRR / ARR Growth Calculator get its benchmark data?
- Reference data is sourced from: OpenView SaaS Benchmarks 2024 (NDR percentiles) (as of 2024).
- What can the MRR / ARR Growth Calculator not tell me?
- Known limitations: Constant-growth past year one is rarely accurate. Segment by stage. Expansion revenue mechanics (seat growth, tier upgrades) are bundled into a single input.