ARR/MRR Forecasting

This use case describes how to build an ARR and MRR forecasting engine for a SaaS or subscription business inside Model Reef.

The goal is to move away from a static top line assumption such as "revenue grows 30 percent per year" and instead model how monthly recurring revenue emerges from customers, plans, pricing, churn and expansion.

When to use this pattern

Use this pattern when:

  • You run or advise a subscription business and need a reliable MRR and ARR forecast.

  • You want to link revenue to customer counts, average revenue per account (ARPA) and churn.

  • You need a forecasting structure that can later grow into cohort and retention analysis.

If you already have complex cohort modelling, pair this with Churn, Retention & Cohort Modelling for more detail.

Architecture overview

You will design three layers:

1

Drivers

  • Customer counts by segment or plan.

  • New customers per period.

  • Average price per customer or per seat.

  • Churn and expansion rates.

2

Revenue variables

  • MRR by product or plan.

  • Total MRR and ARR rollups.

  • Implementation or set up fees as separate revenue if needed.

3

Outputs

  • P and L revenue lines.

  • MRR and ARR charts and KPI cards.

  • Inputs to valuation models where required.

Everything is built using Model Reef drivers, variables and the three statement engine.

1

Decide how granular you need to be

First decide whether you will:

  • Model revenue at an aggregate level, using a single customer count and ARPA, or

  • Model revenue by segment or plan, for example:

    • Self serve vs enterprise.

    • Monthly vs annual contracts.

    • Different product tiers.

Granularity should reflect how you actually make decisions. More detail is only worth it if it changes choices about sales, marketing or product.

2

Build customer and pricing drivers

In the Data Library, create drivers for:

  • Customer or account counts by segment.

  • New customers per period.

  • Average price per account or per seat.

  • Conversion between seats and accounts where relevant.

Examples:

  • Driver - Customers - SME.

  • Driver - Customers - Enterprise.

  • Driver - ARPA - SME.

  • Driver - ARPA - Enterprise.

You can fill these drivers using:

  • Manual assumptions.

  • Regression or ML presets based on historical data.

  • Simple rules such as steady percentage growth or step changes after funding rounds.

3

Create MRR revenue variables

For each revenue stream, create Revenue variables such as:

  • Revenue - MRR - SME.

  • Revenue - MRR - Enterprise.

  • Revenue - MRR - Add Ons.

Define their formulas using your drivers, for example:

  • MRR = Customers × ARPA per segment.

  • MRR Add Ons = Customers × Attach Rate × Add On Price.

Make sure these variables are of type Revenue so they flow into P&L, Cashflow and Cash Waterfall correctly.

If you have upfront implementation or services revenue, keep that in separate Revenue variables so that recurring and non recurring parts are clearly visible.

4

Add churn and expansion behaviour

To make MRR more realistic, incorporate churn and expansion dynamics. At an aggregate level you can model:

  • Gross churn rate per period.

  • Expansion rate per period.

  • Net MRR churn as the combination of the two.

Implementation options:

  • Add drivers:

    • Driver - Gross Churn Rate.

    • Driver - Expansion Rate.

  • Use these in formulas that adjust customer or MRR series, for example:

    • Customers next period = Customers current period plus New Customers minus Churned Customers.

    • Expansion MRR = Starting MRR × Expansion Rate.

If you require detailed retention curves, implement them using the separate Churn, Retention & Cohort Modelling pattern and feed the resulting MRR series into this structure.

5

Translate MRR to ARR and revenue recognition

Model Reef works with period based variables. Depending on your periodicity:

  • If the model is monthly:

    • MRR is directly the monthly revenue.

    • ARR can be calculated as MRR × 12 for reporting purposes.

  • If the model is annual:

    • Work with ARR directly and derive implied MRR for dashboards if needed.

For annual contracts paid upfront, you may:

  • Recognise revenue monthly while cash arrives earlier.

  • Use timing settings and delays to separate revenue recognition and cash receipt.

Ensure that the Revenue variables use the correct timing so that P&L, Cashflow and Cash Waterfall stay consistent.

6

Build MRR and ARR dashboards

Create a dedicated SaaS dashboard containing:

  • MRR chart over time.

  • ARR chart or table by year.

  • MRR bridge style chart if you want to show:

    • Starting MRR.

    • New MRR.

    • Expansion MRR.

    • Churned MRR.

  • KPI cards for:

    • Current MRR.

    • Current ARR.

    • Net MRR churn rate.

These visuals make it easier to talk to investors and internal teams about how growth is actually happening.

7

Connect MRR to the rest of the model

Finally, ensure that MRR revenue variables are properly integrated with:

  • COGS (for example hosting, support and delivery costs that scale with usage).

  • Opex (for example sales and marketing spend).

  • Staff planning (for example engineering and customer success headcount).

The same drivers that power MRR often inform hiring plans and cost structure, so reuse them where appropriate and keep assumptions centralised in the Data Library.

Check your work

  • MRR and ARR outputs reflect your understanding of the business model.

  • Driver names and formulas are clear and traceable.

  • P&L revenue lines are consistent with the MRR and ARR charts.

  • Cash and timing behaviour for annual contracts matches reality.

Troubleshooting

chevron-rightMRR appears to jump unexpectedlyhashtag

Check the driver series for customer counts and ARPA to make sure there are no accidental step changes.

chevron-rightARR looks too large or too small compared to MRRhashtag

Confirm that you are using consistent units and that ARR is derived correctly as a multiple of MRR.

chevron-rightInvestors ask for additional SaaS metricshashtag

Extend the dashboard to include churn, retention and LTV metrics using the related patterns.

Last updated