# Formulas

A **formula field** contains a value calculated from a spreadsheet-like expression. Formulas operate on other fields on the same record — including other formula fields — supporting mathematical, logical, text, and date-based processing. For example, a *full name* field on the **User** table could concatenate the *first name* and *last name* fields.

This page covers the concept and lifecycle. For task and reference content, see:

* [Creating a formula field](/data/collections/formulas/creating-formula-fields.md) — step-by-step setup
* [Examples](/data/collections/formulas/examples.md) — common formula recipes
* [Troubleshooting](/data/collections/formulas/troubleshooting.md) — fixing formulas that don't work
* [Operators reference](/data/collections/formulas/operators.md) — all supported operators, grouped by category:
  * [Date & time operators](/data/collections/formulas/operators/date-and-time.md)
  * [Logic operators](/data/collections/formulas/operators/logic.md)
  * [Math operators](/data/collections/formulas/operators/math.md)
  * [Text operators](/data/collections/formulas/operators/text.md)

### When do formulas calculate?

A formula's value for a given record recalculates when any of the following occur:

* The formula field is created
* The formula is updated
* A new record is added
* A field referenced in the formula is updated

If a formula doesn't reference any other fields, it will only recalculate when:

* The formula is added initially
* The formula is edited
* The record is initially created

### Output types

When a formula is added or updated, Noloco inspects the output and assigns a type based on the result pattern. The possible output types are:

* **Boolean** — formula must return `true` or `false`
* **Date** — formula must return a value wrapped in the `TODATE` operator
* **Decimal**
* **Integer**
* **Text**


---

# 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://guides.noloco.io/data/collections/formulas.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.
