Variables are the building blocks of your models. If you're a spreadsheet user, you can think of them a bit like spreadsheet cells. If you're a programmer, you can think of them as, well, variables.
You can define a variable using a formula. Formulas let you work with numbers, ranges, and other variables. Here are some examples:
25: constant value of 25
1 to 5: range from 1 to 5 (technical detail: symmetric triangle distribution)
(0 to 1) * MyVariable: the product of a range and another variable
if VariableA > 10 then 1 else 0: self explanatory
sample(3, 5): either the value 3 or the value 5 (discrete distribution)
<aside> ➡️ See a full list of supported syntax and functions here.
Click on a variable on the canvas to view and edit its properties via the sidebar on the left.
Variables can have multiple periods which makes it possible to define different formulas for different time steps. By default, every variables has a single period. There are different ways to create periods:
If you want to change the value of a single time step, just single-click on the cell and type a new value or formula. This will create a new period for this time step. You can also create a period for every month, quarter or year of the model: right-click on a cell and select "Recipes"→ "Split by Month/Quarter/Year"
To change the span of a particular period, hover over the endpoint and drag it to the desired cell:
All variables have one of the 5 available formats. To change the format, right-click on a variable or use the keyboard shortcut command + shift + number:
For quantities that aren't percentages or currencies.
If a quantity can only be a whole number, turn the Integer toggle on.
The number will be formatted as a date.
In a monthly model that starts on Jan 2021, the number 2 will be formatted as Mar 2021 (counting starts at 0)
Specify the currency symbol using the input box. Will default to the last used currency symbol.
A variable that can be True or False (1 or 0)
Boolean variables will be displayed with a checkbox:
This expects the variable's value to be a decimal. Example:
0.5 will be displayed as 50%.