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>

Click on a variable on the canvas to view and edit its properties via the sidebar on the left.

## Periods

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:

## Variable formats

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:

### Number

For quantities that aren't percentages or currencies.

If a quantity can only be a whole number, turn the Integer toggle on.

### Date

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)

### Currency

Self-explanatory.

Specify the currency symbol using the input box. Will default to the last used currency symbol.

### Boolean

A variable that can be True or False (1 or 0)

Boolean variables will be displayed with a checkbox:

### Percent

Self explanatory.

This expects the variable's value to be a decimal. Example: `0.5` will be displayed as 50%.