> For the complete documentation index, see [llms.txt](https://help.modelreef.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.modelreef.io/help/importing-and-data-inputs/manual-variable-entry.md).

# Manual Variable Entry

This article explains how to create and configure variables manually in Model Reef when you are not importing them from external files.

You will learn how to:

* Decide when manual entry is appropriate
* Create new variables from scratch
* Set type, category, branch and timing
* Link variables to drivers or enter values directly

## When to use manual variable entry

Manual variable entry is useful when:

* You are adding new forecast lines that are not present in historical reports.
* You want to model specific hires, projects or contracts.
* You are testing ideas or building a model from scratch.
* Importing from files would add unnecessary complexity.

In practice, most models are a mix of imported historicals and manually created forecast variables.

## Creating a new variable

{% stepper %}
{% step %}

### Open the model and branch

Open the relevant model and navigate to the branch where the variable belongs.
{% endstep %}

{% step %}

### Add a variable

Choose Add variable (or the equivalent action in your interface).
{% endstep %}

{% step %}

### Name the variable

Enter a clear name, for example:

* Revenue - New Product
* Staff - New Sales Hire
* Asset - New Equipment
  {% endstep %}

{% step %}

### Select variable type

Select a variable type such as Revenue, COGS, Opex, Staff, Asset, Liability, Tax, Equity or Dividend.\
This tells Model Reef what the variable represents and how it should behave in the statements.
{% endstep %}
{% endstepper %}

## Setting category, subcategory and branch

Next, assign:

* A **category** that reflects how the variable should appear in reports.
* An optional **subcategory** for finer detail, if you plan to use it.
* Confirm the **branch** if you did not already create the variable inside the correct branch.

Examples:

* `Revenue - Subscriptions` category, `Premium plan` subcategory, `UK` branch.
* `Opex - Marketing` category, `Paid search` subcategory, `Online division` branch.

Consistent naming and categorisation make later reporting much easier.

## Defining timing and frequency

Every variable should have clear timing settings, including:

* **Start date** and **end date** for when it is active.
* **Frequency** or schedule (for example monthly, quarterly, specific dates).
* **Delay** or payment terms if cash does not move in the same period as accrual.

Examples:

* A monthly subscription revenue line starting from 1 January 2025 with no delay.
* A one off asset purchase on 15 March 2025 with depreciation over 5 years.
* A quarterly tax payment with a delay relative to when profit is earned.

These settings ensure that the variable feeds P\&L, Balance Sheet and Cashflow correctly.

## Entering values or linking drivers

{% stepper %}
{% step %}

### Direct value entry

* Enter numeric values per period directly into the variable.
* Use simple patterns such as constant amounts or manual adjustments over time.
* Suitable for small, specific lines where you know the values.
  {% endstep %}

{% step %}

### Driver based or formula based

* Link to drivers from the Data Library (for example volumes, prices, growth rates).
* Use preset formulas or simple arithmetic expressions to derive values.
* Suitable for lines tied to operational metrics, such as `Revenue = Units × Price`.

Driver based variables are easier to adjust when scenarios change, because changes to drivers propagate automatically.
{% endstep %}
{% endstepper %}

## Reviewing the impact of a new variable

After creating and configuring a variable, always:

* Check the P\&L for the relevant branch and the group to see the line appear.
* Review the Balance Sheet and Cashflow if the variable has asset, liability or timing effects.
* Confirm that the variable shows up under the correct category in reports.

If something looks wrong, review:

* Type and category
* Branch assignment
* Timing and delays
* Any formulas or driver links

## Practical tips

{% hint style="info" %}

* Start with a few key manual variables for new assumptions and expand as needed.
* Use clear naming and categories so that manually created lines are easy to find later.
* Consider creating manual variables first, then wiring them to drivers once the model structure is stable.
  {% endhint %}

## Related articles

* [Consumer Goods, FMCG & CPG Manufacturers](/use-cases/consumer-goods-fmcg-and-cpg-manufacturers.md)
* [Build a Central Assumption Library](/how-tos/data-workflows-and-automation/build-a-central-assumption-library.md)
* [Imported Variable Behaviour](/help/drivers-variables-and-timing/imported-variable-behaviour.md)
* [Timing Modal Overview](/syntax/timing-syntax/timing-modal-overview.md)
