# 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)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.modelreef.io/syntax/formula-syntax/allowed-operators.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
