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:
Everything is built using Model Reef drivers, variables and the three statement engine.
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.
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.
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 × ARPAper 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.
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.
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 × 12for 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.
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.
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
Related guides
Last updated