Build a Recurring Revenue Forecast

This guide describes how to model recurring revenue such as subscriptions, retainers or contracts using Model Reef’s timing and driver engine.

Before you start

You should understand:

  • The types of recurring revenue you have (monthly subscriptions, annual licences, retainers).

  • Expected churn, retention and expansion patterns.

  • Billing frequency and payment terms.

What you will build

  • Variables and drivers for subscribers, price and churn.

  • Recurring revenue profiles with appropriate timing.

  • Cash behaviour based on billing cycles and delays.

  • Visibility of recurring revenue in statements and the Cash Waterfall.


Steps

1

Define your subscription structure

Decide how you want to segment recurring revenue:

  • By product tier (Basic, Pro, Enterprise).

  • By customer segment (SMB, Mid market, Enterprise).

  • By region.

Create a separate revenue variable per segment if needed.

2

Create subscriber and ARPU drivers

In the Data Library:

  • Create a subscriber count driver for each segment (e.g., Subs - Basic, Subs - Pro).

    • Enter starting subscriber numbers.

    • Enter monthly net adds or growth rates.

  • Create an ARPU driver (Average Revenue Per User) per segment (e.g., ARPU - Basic, ARPU - Pro).

    • Enter current prices and any planned price increases.

3

Build recurring revenue variables

For each segment:

  • Create a Revenue variable named clearly, for example Revenue - Subscriptions - Basic.

  • In the revenue modal:

    • Use a formula: Revenue = Subscribers × ARPU.

    • Link to the subscriber and ARPU drivers from the Data Library.

    • Set frequency to monthly (or your billing cycle).

    • Set start date and end date as appropriate.

  • For annual subscriptions:

    • Use a schedule that triggers revenue recognition annually.

    • Or model accrual monthly and billing annually via separate cash timing logic.

4

Add churn, retention and expansion

Churn and retention can be represented as drivers:

  • Create churn rate drivers (e.g., Churn - Basic, Churn - Pro).

  • Incorporate churn into subscriber drivers, for example:

    • Subscribers_t = Subscribers_t_minus_1 × (1 minus churn_rate) + new_subscribers_t.

  • For expansion:

    • Create drivers for ARPU uplift or seat expansion.

    • Factor them into ARPU or subscriber counts.

This can be implemented either inside the driver definitions or through custom formulas referencing multiple drivers.

5

Configure cash timing

Billing and cash timing are handled by delays:

  • In each subscription revenue variable:

    • Set Delay based on billing terms:

      • For monthly billing with immediate payment, delay might be 0 to 7 days.

      • For annual billing paid in advance, revenue may accrue over the year but cash arrives at the start.

  • Model these explicitly:

    • Accrual pattern via schedule and formula.

    • Cash timing via delay settings.

This will automatically generate AR where accrual and cash timing differ.

6

Layer in subscription specific costs

To understand unit economics:

  • Create COGS variables for hosting, payment processing or direct support.

  • Create Staff variables for success and support teams.

  • Link these costs to drivers:

    • Cost per subscriber.

    • Cost per active user.

    • Cost per seat.

This allows you to see gross margin and contribution per segment.

7

Review outputs and unit economics

Use:

  • P&L to review recurring revenue, COGS and margins.

  • Cashflow Statement and Cash Waterfall to understand cash generation.

  • Custom charts to track:

    • Subscribers.

    • ARR and MRR.

    • Churn and retention trends.

    • Contribution margin per segment.


Check your work

  • Recurring revenue levels follow subscriber and ARPU patterns.

  • Churn and retention have the expected effect on subscriber counts.

  • Cash timing reflects actual billing terms.

  • COGS and staff costs are correctly linked to subscriber activity.


Troubleshooting

chevron-rightRevenue does not match expected ARR or MRRhashtag

Recheck formulas and the relationship between subscribers and ARPU.

chevron-rightCash pattern is weirdhashtag

Inspect delays. A mismatch between accrual and cash delays can create large AR swings.

chevron-rightChurn logic looks wronghashtag

Confirm that growth and churn drivers are applied in the right order and scale.


Last updated