# Expr Language - Language Components

An expression may contain one or more of the following:

Variables - these are mapped to issue fields.

- Arithmetic and logical operations - add, subtract, multiply, divide, or compare items.
- Numbers
- Text strings
- Function calls - apply specific calculations to the provided arguments and return a result to be used in the expression.
Property access - get the value of a particular item property - such as the release date of a fix version.

Conditional ("IF") expressions - calculate different results based on a specified set of criteria.

There are also more advanced constructs:

- Aggregate Functions - calculate an aggregate (such as the sum or average) of an expression's values calculated for multiple items in the structure.
- Local Variables - introduce a value and reuse it multiple times in the formula.
- User Functions - define a function, or a functional expression, to be reused in the formula or applied to an array of values.
JQL queries inside a formula - condition the results based on whether an item matches a query.

- Comments - document larger formulas.