# Imported Variable Behaviour

This article explains how imported variables behave in Model Reef, regardless of source.

You will learn:

* How imports create Data Library entries and variables.
* How historical actuals and forecast logic are combined.
* How imported variables behave across statements.
* What happens when you refresh data from external systems.

Imported variables come from sources such as PDF, Excel, CSV, Xero, QuickBooks, stock tickers and public APIs.

{% stepper %}
{% step %}

### How imports create variables

When you import data, Model Reef:

* Detects and classifies each line into a type such as Revenue, COGS, Opex, Staff, Asset, Liability, Equity or Tax.
* Creates a **Data Library** time series for each mapped line.
* Automatically creates a **variable** that references that Data Library entry.
* Assigns a category, subcategory, branch, units and optional GL code.
* Applies default timing and forecast rules based on the type and pattern.

You can adjust any of these after the import.
{% endstep %}

{% step %}

### Historical actuals vs forecast periods

Imported series typically supply **historical actuals** for periods before or around the model start date.

Model Reef then:

* Treats imported values for historical periods as fixed and not overwritten by forecast logic.
* Applies forecast rules from the model start date forward.
* Ensures that charts and statements show a continuous series that blends history and forecast.

You can see the history-to-forecast transition point clearly in charts and in the time series view.
{% endstep %}

{% step %}

### Default forecast behaviour for imported variables

For many imported variables, Model Reef assigns a default forecast rule, for example:

* Extending the last observed level or average.
* Applying a simple growth rate.
* Using ML or regression based presets where appropriate.

These are starting points to give you a working model immediately. You are expected to review and refine them.

You can change forecast behaviour by:

* Editing the variable formula.
* Replacing default rules with driver based logic.
* Overriding specific periods manually where necessary.
  {% endstep %}

{% step %}

### Imported variables in statements

Once created, imported variables behave exactly like manually created variables of the same type:

* **Revenue, COGS, Opex, Staff, Tax, Assets, Liabilities, Equity and Dividends** all follow their normal rules.
* They contribute to P\&L, Balance Sheet, Cashflow and Cash Waterfall based on their type and timing settings.
* You can move them between branches or change categories if the initial mapping needs refinement.

The fact that a variable was imported does not change its accounting behaviour — only how its series was initially populated.
{% endstep %}

{% step %}

### Refreshing imported data

When you refresh data from systems such as Xero, QuickBooks or stock tickers:

* Historical actuals are updated in the Data Library.
* Linked variables update their historical series accordingly.
* Forecast rules continue to apply for forward periods.
* Statements and dashboards recalculate automatically.

You should review any variables affected by refresh to ensure that forecast logic still makes sense in light of updated history.
{% endstep %}

{% step %}

### Editing or reclassifying imported variables

You can safely:

* Change variable types if an imported line was misclassified.
* Change categories and subcategories for reporting.
* Reassign branches to match your model structure.
* Replace default forecast logic with your own drivers and formulas.

Reclassification will immediately change how the variable behaves in statements, so treat type changes as meaningfully as you would in a manual model
{% endstep %}
{% endstepper %}

## Related articles

* [Not-for-Profit & Education](/use-cases/not-for-profit-and-education.md)
* [Build a Capital Structure Model](/how-tos/investment-and-transactions/build-a-capital-structure-model.md)
* [Mapping Variable Types](/help/importing-and-data-inputs/mapping-variable-types.md)
* [Scenario Syntax](/syntax/scenario-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/drivers-variables-and-timing/imported-variable-behaviour.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.
