**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.

</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%**.