Skip to main content
Skip table of contents

Project Variables

Project variables let you define shared values for f.e. time or data sources once and reuse them across models and scenarios. They help keep models consistent, flexible, and easy to update.

When to use it

  • When the same value is used in many places across a model

  • When underlying values change over time but the calculation should remain the same


How it works

Project variables act as central placeholders for values.

They can be:

  • Defined at the project level

  • Used inside node calculations

  • Overwritten per scenario when needed

Some variables are system-defined, while others can be custom variables created by users. Variables can hold numeric or non-numeric values.

Using variables ensures that changing a value in one place automatically updates all calculations that rely on it.

Configure Project Variables.png

Setup

Project variables are defined in the project settings.

Once created, they are available throughout the project and can be referenced in models and scenarios with the $ character preceding the variable name.

Variables_formula editor.png

Available System Variables

Variable

Description

Example Value

$PROJECT_HORIZON_LEVEL

The project's horizon period from time settings

"Year"

$PROJECT_HORIZON_START

The start value of the project time horizon

"2025"

$PROJECT_HORIZON_END

The end value of the project time horizon

"2030"

$CURRENT_PERIOD

The current period of the project

"2026"


Common Use Cases

As Dynamic Level Values

Variables are commonly used as level values in dimension parameters, especially for the time dimension. Instead of hardcoding a specific year, you can reference a variable that updates automatically.

Example: FILTER('Revenue', "Year", "$FC_End")

This pattern works in any function that accepts level values, such as FILTER that reference dimension members.

In DATA Function Parameters

Variables can be embedded anywhere within a DATA parameter string to dynamically reference data sources or tables:

DATA("Datasource_$Variable", "TableName", "MeasureName")

DATA("DataSourceName", "$TableName", "MeasureName")

This allows scenarios to switch between different data sources or tables without changing the formula. See the DATA function page for a full overview of placement patterns.

Limitations & edge cases

  • Sharing scenarios with overwritten variables is not supported.

  • Variable names must follow naming rules to be usable in formulas.

  • System-defined variables are managed through project settings, not directly edited everywhere.

FAQ

Why should I use project variables instead of fixed values?
They make models easier to maintain by centralizing key value management.

Can variables be different per scenario?
Yes. Variables can be overwritten at the scenario level.

What happens if a project variable changes?
All calculations using that variable update automatically, unless a scenario has pinned its own value.

Are all variables visible in the same place?
Custom variables are listed in the variable overview. Some system variables are configured via project settings.

Related documentation

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.