# Build a Rolling Forecast

This guide explains how to build a rolling forecast in Model Reef by combining imported actuals with forward-looking drivers, and updating the forecast window over time.

{% hint style="info" %}
Before you start

You should have:

* A model with imports set up for actuals (for example from Xero or QuickBooks) or historical data imported via PDF or Excel.
* Forward-looking drivers and variables that generate forecasts beyond the historical period.
* A clear idea of how often you want to roll the forecast forward, for example monthly or quarterly.

If you have not set up imports yet, see:

* **PDF Import Overview**
* **Xero Integration**
* **QuickBooks Integration**
  {% endhint %}

***

## What you will build

* A model where:
  * Historical periods are populated with actuals.
  * Future periods are driven by assumptions.
* A process for periodically:
  * Refreshing actuals.
  * Extending the forecast horizon.
  * Reviewing updated results.

***

{% stepper %}
{% step %}

### Set up the historical data import

In your model:

* Connect to Xero or QuickBooks, or import historicals via PDF or Excel.
* Map accounts or lines to appropriate types and categories.
* Confirm that:
  * P\&L, Balance Sheet and Cashflow show historical results correctly.
  * The model start date and frequency match your intended forecast structure.

Historical periods should be clearly distinguished from forecast periods in your own documentation or charts.
{% endstep %}

{% step %}

### Build forward looking drivers and variables

Ensure that for each major line item, you have forward projection logic, for example:

* Revenue:
  * Unit growth and price drivers.
* COGS:
  * Cost per unit drivers.
* Opex and Staff:
  * Drivers for headcount, spend ratios or fixed amounts.
* Capex:
  * Planned investment schedules.
* Financing:
  * Debt and equity events.

These drivers should operate from the forecast start date onward.
{% endstep %}

{% step %}

### Blend historical and forecast periods

Model Reef keeps historical and forecast series conceptually separate but produces a combined time series:

* Historical values occupy periods up to a chosen cut off.
* From that point on, model logic generates values.

Make sure that:

* The transition point between historical and forecast periods is sensible.
* There are no artificial jumps at the boundary, unless they reflect real changes.

You can use charts to see where the historical segment ends and the forecast begins.
{% endstep %}

{% step %}

### Define your rolling update cadence

Decide how often you will:

* Refresh historicals.
* Extend the forecast horizon.

Typical cadences:

* Monthly rolling forecast:
  * Update actuals each month as new data arrives.
  * Maintain a fixed forecast length, for example the next twelve or twenty-four months.
* Quarterly rolling forecast:
  * Update every quarter.
  * Maintain a longer horizon, for example three to five years.

Document this cadence so your team understands when the numbers are expected to move.
{% endstep %}

{% step %}

### Perform a rolling update

When a new period of actuals is available:

* Refresh the import from your accounting system or historical data source.
* Confirm that:
  * Historical periods now include the latest actual data.
  * Forecast logic now starts from a later period.
* Extend forecast drivers if needed so that the horizon stays the same overall length.

Review changes in:

* P\&L.
* Cash Waterfall.
* Valuation outputs.

This rolling process is repeated on your chosen cadence.
{% endstep %}

{% step %}

### Track changes over time

To understand how the forecast evolves:

* Periodically save copies of the model, for example:
  * `Company - Rolling Forecast - Jan`
  * `Company - Rolling Forecast - Feb`
  * `Company - Rolling Forecast - Mar`
* Compare:
  * Forecast revenue and margin changes.
  * Updates to cash and funding needs.
  * Valuation movements.

You can also export key metrics after each update to maintain a longitudinal view outside Model Reef.
{% endstep %}
{% endstepper %}

***

{% hint style="info" %}
Check your work

* Historical periods are correctly populated and reconciled.
* Forecast logic picks up at the correct point and remains meaningful as time passes.
* Rolling updates do not break the model or create large unexplained jumps.
* Stakeholders understand that the forecast is a living document, not a static plan.
  {% endhint %}

***

## Troubleshooting

<details>

<summary>Forecast stops too early after rolling</summary>

Extend your drivers and variables further into the future so that the horizon remains constant as you roll forward.

</details>

<details>

<summary>Actuals overwrite expected behaviour in future periods</summary>

Check that your import and mapping only apply to past periods and that forecast logic is set up for new ones.

</details>

<details>

<summary>Difficult to track how forecasts have evolved</summary>

Establish a simple naming convention and snapshot process, or maintain a separate log of key metrics over time.

</details>

***

## Related guides

* [Fuel & Maintenance Forecasting](/use-cases/logistics-transport-and-fleet/fuel-and-maintenance-forecasting.md)
* [Archiving Models](/help/building-your-model/archiving-models.md)
* [Asset Variables: what is, rules, what it affects](/help/drivers-variables-and-timing/asset-variables.md)
* [Creating Scenarios](/syntax/scenario-syntax/creating-scenarios.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.modelreef.io/how-tos/scenarios-and-planning/build-a-rolling-forecast.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
