# Build a Top Down Forecast

This guide describes how to build a forecast using high-level assumptions for growth, margins and costs, rather than detailed operational drivers.

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

You should have:

* Historical financials (optional but helpful).
* A view of target growth rates and margin profiles.
* A planning horizon (for example 3 or 5 years).
  {% endhint %}

***

## What you will build

* Growth and margin drivers for key financial lines.
* Revenue, COGS and opex variables that apply those drivers.
* A strategic view of future performance without detailed operational modelling.

***

## Steps

{% stepper %}
{% step %}

### Set baseline values

If you have historical data:

* Import it from PDF, Excel, Xero or QuickBooks.
* Use the latest actual year or period as your starting point.

If not:

* Enter your best estimate for current Revenue, COGS and Opex as starting values.

These baselines will be the first forecast period.
{% endstep %}

{% step %}

### Create growth drivers

In the Data Library:

* Create **growth rate drivers** such as:
  * `Growth - Revenue`
  * `Growth - COGS`
  * `Growth - Opex`
* For each driver:
  * Enter annual or monthly growth percentages over the forecast horizon.
  * Upward or downward trends can be modelled through these series.
    {% endstep %}

{% step %}

### Create margin and ratio drivers

You can also forecast using margins rather than separate growth for revenue and costs:

* Create **margin drivers**:
  * `Margin - Gross`
  * `Margin - EBITDA`
* Enter target margin percentages.
* Use these to derive COGS and Opex where appropriate.
  {% endstep %}

{% step %}

### Build top down variables

* For **Revenue**:
  * Create a variable and formula, for example:
    * Revenue\_t = Revenue\_t\_minus\_1 × (1 plus Growth\_Revenue\_t).
* For **COGS**:
  * Either:
    * Apply a growth rate directly, or
    * Use margin: COGS\_t = Revenue\_t × (1 minus Gross\_margin\_t).
* For **Opex**:
  * Use a growth rate or express as percentage of revenue.

This approach lets you adjust just a few growth and margin series to drive the whole forecast.
{% endstep %}

{% step %}

### Add simple tax, capex and debt

To keep the top down model lean:

* Use a single **Tax** configuration or variable with an effective tax rate.
* Model **Capex** as:
  * A percentage of revenue.
  * Or fixed amounts by year.
* Model **Debt** where needed:
  * Simple loan with interest and repayment schedules.
  * Or no debt for unlevered forecasts.
    {% endstep %}

{% step %}

### Review high level outputs

Use P\&L and charts to confirm:

* Revenue growth path matches expectation.
* Gross margin and EBITDA margin move in line with strategy.
* NPAT behaves reasonably over time.

Use Cash Waterfall and Cashflow Statement to:

* See whether top down growth drives sustainable cash generation.
* Check that any capex and debt servicing are affordable.
  {% endstep %}
  {% endstepper %}

***

## Check your work

{% hint style="success" %}

* Growth rate series are correctly assigned to each variable.
* Margins remain within realistic ranges.
* Tax, capex and debt assumptions are coherent with the scale of the business.
* Valuation outputs respond sensibly when you adjust growth and margins.
  {% endhint %}

***

## Troubleshooting

<details>

<summary>Forecast grows too fast or too slowly</summary>

Adjust revenue growth drivers and recheck compound effects.

</details>

<details>

<summary>Margins look unrealistic</summary>

Inspect margin drivers and how they are applied in formulas.

</details>

<details>

<summary>Cash is highly negative despite healthy P&#x26;L</summary>

Check capex, working capital assumptions and debt servicing.

</details>

***

## Related guides

* [Retainer & Project Pipeline Forecast](/use-cases/media-agencies-and-creative-studios/retainer-and-project-pipeline-forecast.md)
* [Folder Structure](/help/workspace-and-organisation/folder-structure.md)
* [Fundamental Data Mapping](/help/stock-ticker-fundamentals/fundamental-data-mapping.md)
* [Manual Time Series Editing](/syntax/variables-syntax/manual-time-series-editing.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/core-modelling/build-a-top-down-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.
