# Driver Overview

This article explains what **drivers** are in Model Reef and how they relate to variables and timing.

You will learn:

* What a driver is and what it is not.
* The three driver classes used in Model Reef.
* How drivers are stored and reused via the Data Library.
* How drivers connect into variables, formulas and scenarios.

{% stepper %}
{% step %}

### What is a driver

A **driver** is a time series that describes something about how the business behaves, for example:

* Price per unit.
* Units sold or number of customers.
* Wage inflation or rent escalation.
* FX rates or index levels.
* Seasonality factors or scenario multipliers.

Key points:

* Drivers by themselves **do not** affect the financial statements.
* They only affect statements when they are referenced by variables or formulas.
* Drivers live primarily in the **Data Library** and can be reused across branches and scenarios.

Think of drivers as reusable assumption series that power many variables.
{% endstep %}

{% step %}

### Drivers vs variables

Variables and drivers are tightly linked but have different roles.

* A **variable**:
  * Has a type such as Revenue, COGS, Opex, Staff, Asset, Liability, Equity, Tax or Dividend.
  * Produces P\&L, Balance Sheet, Cashflow and Cash Waterfall movements.
  * Has timing settings such as start, end and delays.
* A **driver**:
  * Has no direct statement impact.
  * Lives in the Data Library.
  * Feeds into variables via formulas or presets.

Example:

* Driver: `Driver - Price - Subscription - Global`.
* Driver: `Driver - Volume - Active Users - UK`.
* Variable: `Revenue - Subscriptions - UK` which uses `Price * Volume` as its formula.

The variable is what appears on statements. The drivers explain how it is calculated.
{% endstep %}

{% step %}

### The three driver classes

Model Reef uses three conceptual classes of drivers:

* **Economic drivers**
  * Prices, tariffs, FX rates, yield curves, macro indices, market growth, inflation.
  * Typically sourced from fundamentals, APIs or manually defined.
* **Operational drivers**
  * Units, headcount, hours, throughput, capacity, pipeline volume, utilisation.
  * Typically based on operational plans or historical conversion metrics.
* **Modifier drivers**
  * Percentages, multipliers, index values, scenario scalars, seasonal factors.
  * Used to adjust or scale other series rather than representing cash amounts themselves.

All three are stored as Data Library time series and can be used in any combination in formulas.
{% endstep %}

{% step %}

### Drivers in the Data Library

Every driver is represented in the **Data Library** as a named series with:

* A name and description.
* A frequency and date range.
* Tags or metadata.
* Optional type labels such as Economic, Operational or Modifier.

When a driver is updated in the Data Library:

* Any variable or chart that references it will update automatically.
* Statements, dashboards and valuations recalculate based on the new values.

This makes the Data Library the central assumption table for your model.
{% endstep %}

{% step %}

### How drivers connect to variables

Drivers can be connected to variables in several ways:

* **Preset formulas**
  * Use drivers as inputs to parametrised behaviours such as unit times price, growth, escalation or schedules.
* **Custom formulas**
  * Write arithmetic expressions using drivers and variables, for example:
    * `Revenue = Users * ARPU`.
    * `COGS = Units * UnitCost`.
    * `Opex = BaseCost * InflationIndex`.
* **Derived drivers**
  * Use one driver to create another, for example converting a growth index into a growth rate series.

Once the formula is defined, the variable applies its normal timing and accrual logic to produce full three statement outputs.
{% endstep %}

{% step %}

### Drivers and scenarios

Each scenario is a **separate model**. That means:

* Drivers are cloned when you duplicate a model to create a scenario.
* Driver values can diverge between scenarios without affecting each other.
* Scenario comparisons show the impact of different driver paths on the same structure.

For example:

* Base Case: moderate `Market Growth` and `Price Inflation` drivers.
* Downside: lower `Market Growth` and higher `Churn` drivers.
* Upside: higher `Market Growth` and better `Conversion Rate` drivers.

You can reuse the same driver naming scheme in all scenarios while changing only the series values.
{% endstep %}

{% step %}

### Designing a driver layer that scales

A robust driver layer usually has:

* A small number of **global drivers** for inflation, FX and macro conditions.
* Entity or region level drivers where local conditions matter.
* Product, channel or segment specific drivers where detail is needed.
* Scenario specific variants only where assumptions truly differ.

Start simple, then introduce more drivers only when they support better decisions.
{% endstep %}
{% endstepper %}

## Related articles

* [Menu Pricing & Recipe Costing](/use-cases/hospitality-restaurants-cafes-bars/menu-pricing-and-recipe-costing.md)
* [Build an Investor Update Pack](/how-tos/dashboards-and-reporting/build-an-investor-update-pack.md)
* [Equity Variables: what is, rules, what it affects](/help/drivers-variables-and-timing/equity-variables.md)
* [Overriding Drivers](/syntax/scenario-syntax/overriding-drivers.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/drivers-variables-and-timing/driver-overview.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.
