> For the complete documentation index, see [llms.txt](https://help.modelreef.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.modelreef.io/syntax/formula-syntax/allowed-operators.md).

# Allowed Operators

This article explains the **allowed operators** in Model Reef formulas.

You will learn:

* Which operators you can use.
* Which constructs are not supported.
* How to express logic using arithmetic only.

Model Reef uses an arithmetic only formula engine to keep models deterministic and vector friendly.

{% stepper %}
{% step %}

### Supported operators

You can use the following operators:

* Addition: `a + b`
* Subtraction: `a - b`
* Multiplication: `a * b`
* Division: `a / b`
* Parentheses: `(a + b) * c`

These operators work on complete time series, not single cells. The engine applies them period by period across the model timeline.
{% endstep %}

{% step %}

### Supported operands

Formulas can reference:

* Variables.
* Drivers (economic, operational, modifier).
* Imported series exposed in sidebars.
* Sometimes report lines or categories, depending on context.

All operands represent time series, so the operations are vectorised automatically.
{% endstep %}

{% step %}

### Not supported

The following are **not** supported in formulas:

* IF statements or any conditional logic.
* Logical operators such as AND, OR or NOT.
* Cell style references like `A1` or `B5`.
* Text functions or string concatenation.
* Aggregation functions over time such as SUM over a range, moving averages or lags.

This design avoids circular references and hidden complexity.
{% endstep %}

{% step %}

### Expressing logic with arithmetic only

Common patterns expressed with arithmetic only include:

* Percentage based calculations
  * `Margin % = (Revenue - COGS) / Revenue`
* Growth or escalation
  * `Future value = Base value * (1 + Growth driver)`
* FX conversion
  * `Local value = Foreign value * FX driver`
* Scenario scaling
  * `Scenario B = Scenario A * Scenario modifier driver`

Careful structuring of variables and drivers lets you build complex models without conditional formulas.
{% endstep %}

{% step %}

### Validation of operator use

The Formula editor validates:

* That only supported operators are used.
* That parentheses are balanced.
* That all references are to known series.

If an unsupported operator or construct appears, you will see an error message before saving.
{% endstep %}
{% endstepper %}

## Related articles

* [Naming & Autocomplete](/syntax/variables-syntax/naming-and-autocomplete.md)
* [Payment Terms UI](/syntax/timing-syntax/payment-terms-ui.md)
* [Building Your Model](/help/building-your-model.md)
* [Build a Unit Economics Model](/how-tos/operations-and-unit-economics/build-a-unit-economics-model.md)
