# How Forecast Logic Is Generated

This article describes how Model Reef uses imported ticker fundamentals to automatically generate **baseline forecast logic** and how you can refine it for your own scenarios.

You will learn:

* How default forecast rules are created.
* How growth and margin assumptions are derived.
* How timing and cash behaviour is handled.
* How to override or extend the defaults.

## Default forecast horizon

When you import fundamentals for a ticker, Model Reef:

* Sets a default **forecast horizon** beyond the last historical period.
* Creates base case forecast values for revenue, costs, operating expenses and other key lines.
* Ensures that P\&L, Balance Sheet and Cashflow extend through that horizon.

You can change the model start date, end date and periodicity at any time. Model Reef will regenerate forecasts and statements accordingly.

## Default growth and margin logic

For many lines, the default forecast logic is derived from historical fundamentals. Typical patterns include:

* Using average historical **growth rates** to project revenue and some cost lines.
* Using recent **margin relationships** between revenue and COGS or operating expenses to estimate future values.
* Applying simple, explainable rules like:
  * Revenue grows at an average of the last few years.
  * COGS scales with revenue to preserve or gradually adjust gross margin.
  * Opex grows at a smoothed rate based on history.

These rules are intentionally simple and transparent so that you can understand and override them easily.

## Default timing and cash behaviour

By default, Model Reef applies timing rules that are consistent with typical listed company behaviour, for example:

* Most revenue and cost lines are assumed to have short or zero delays between accrual and cash.
* Depreciation and loan interest are scheduled based on asset and liability patterns in the imported data.
* Tax and dividends follow approximate patterns based on historical ratios and payout behaviour.

You can refine these assumptions by editing timing settings on each variable if you need more detailed cash modelling.

## How ML or regression presets may be used

For some series, Model Reef may use simple **regression** or **pattern based** methods to generate forecasts, for example:

* Fitting a trend to historical revenue and extending it forward.
* Using relationships between key drivers (for example revenue vs gross profit) to stabilise margins.
* Smoothing noisy series before projecting them.

These methods are designed to be conservative and interpretable rather than opaque black box forecasts.

## Overriding and refining forecast logic

You can override the baseline logic at any time by:

* Replacing default formulas with custom formulas that reference drivers and other variables.
* Introducing explicit **drivers** (units, prices, usage metrics) and aligning variables to those drivers.
* Editing **growth rates**, **escalation patterns** and **seasonality profiles**.
* Changing **timing and delays** to better reflect receivables, payables and other cash dynamics.

The imported fundamentals give you a starting point, but the model is fully editable.

## Scenarios and alternative forecast cases

To build multiple forecast cases for the same ticker, you can:

* Duplicate the model to create separate scenarios (for example Base, Upside, Downside).
* Keep the same historical fundamentals in each scenario.
* Change forecast logic, discount rates or terminal value settings independently.
* Compare outcomes across scenarios for KPIs and valuations.

Because each scenario is its own model, changes remain isolated and easy to manage.

## Related articles

* [Medicare/Private Billing Forecast](/use-cases/healthcare-clinics-and-allied-health/medicare-private-billing-forecast.md)
* [Build a Recurring Revenue Forecast](/how-tos/core-modelling/build-a-recurring-revenue-forecast.md)
* [Consolidation Logic](/help/building-your-model/consolidation-logic.md)
* [Drivers Syntax](/syntax/drivers-syntax.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/help/stock-ticker-fundamentals/how-forecast-logic-is-generated.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.
