> For the complete documentation index, see [llms.txt](https://docs.notionapps.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.notionapps.com/how-to-guides/recalculate-calculated-properties.md).

# Recalculate calculated properties

This guide is for app makers building in the NotionApps builder.

Use it when a formula or rollup looks wrong on Home (often `0` or `0/600`) even though Notion’s own UI shows a real number. You do **not** type a formula in NotionApps. Notion still owns the recipe. You only choose whether NotionApps should **evaluate that recipe itself**.

{% hint style="info" %}
Where this lives Open the builder → **Databases**. Under the linked databases, **Calculated properties** lists every formula and rollup. Apps with none of those properties do not show the section.
{% endhint %}

If you only remember one sentence:

> Leave **Recalculate in NotionApps** on when the switch is clickable, so Home keeps our number instead of Notion’s page API.

***

### What you can do

| Job                          | What to use                                               |
| ---------------------------- | --------------------------------------------------------- |
| See Notion’s recipe          | **Calculated properties** → the field → **Notion recipe** |
| Keep our eval on Home        | Leave **Recalculate in NotionApps** on                    |
| Show Notion’s raw page value | Turn the toggle **off**                                   |
| Understand a disabled toggle | Read the reason under the switch                          |
| Load a missing rollup recipe | **Sync from Notion**, then reopen Calculated properties   |

***

### Before you start

1. The integration can see **this** database **and** every related database the formula or rollup reads.
2. You have run **Sync / Reload** after adding or changing the property in Notion.
3. You are looking at **Databases**, not a field inspector on a screen.

***

### Step 1 — Open Calculated properties

1. Open the app in the builder.
2. Click **Databases**.
3. Scroll to **Calculated properties**.
4. Each database with formulas or rollups shows a caption such as `3 formulas, 2 rollups — 4 cannot recalculate`.

The caption counts properties we **cannot** evaluate yet. Those toggles stay disabled. Notion still owns those numbers.

***

### Step 2 — Read the recipe and the status

Each formula or rollup shows:

| Label                         | Meaning                                                                                     |
| ----------------------------- | ------------------------------------------------------------------------------------------- |
| **Notion recipe**             | The expression or rollup Notion defined. Read-only. You change it in Notion, then Sync.     |
| **Status**                    | Whether we will recalculate, use Notion’s value, wait on related fields, or cannot evaluate |
| **Depends on**                | Related properties the recipe needs                                                         |
| **Recalculate in NotionApps** | Use our eval (on) or Notion’s page leaf (off)                                               |

| Status                        | What Home shows                                                                                                   |
| ----------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| **We'll recalculate this**    | Our eval of Notion’s recipe. After a good compute, published Home does **not** pull that field from Notion again. |
| **Using Notion's value**      | The number Notion’s page API returned                                                                             |
| **Waiting on related fields** | Last good number, if any. We do not invent a value.                                                               |
| **Can't recalculate**         | Notion’s value. The toggle is disabled.                                                                           |

***

### Step 3 — Use the Recalculate toggle

You never write a formula here. The toggle only means **use our eval of Notion’s recipe** versus **use Notion’s page leaf**.

| Toggle             | What happens                                                                                             |
| ------------------ | -------------------------------------------------------------------------------------------------------- |
| **On** (clickable) | We evaluate the recipe. Leave this on so Home keeps our number when Notion’s page API is `0` or `0/600`. |
| **Off**            | Published screens show Notion’s raw page value.                                                          |
| **Disabled**       | We cannot evaluate this recipe. Notion keeps the number.                                                 |

{% hint style="success" %}
Default for evaluable fields New and existing formulas/rollups we can evaluate start **on**. You only turn a field off if you want the raw Notion leaf.
{% endhint %}

Turning a field off does not delete the last computed value. We just stop using it.

***

### What NotionApps can evaluate

**Formulas**

* `prop("Field name")`
* `+` `-` `*` `/`
* `if()`
* `dateBetween`
* number and text literals (including a ratio suffix such as `/600`)

**Rollups**

* `sum`, `count`, `average`, `min`, `max`
* The rollup recipe must be loaded (relation + target property). If it is missing, Sync from Notion.

**Not yet**

These tokens stay on Notion’s value. The toggle is disabled and the reason names the token:

`formatDate`, `ifs`, `lets`, `style`, `map`, `filter`, `join`, `empty`, `includes`, `length`, `format`

A rollup function other than sum / count / average / min / max is also unsupported.

{% hint style="warning" %}
Sync does not unlock every formula **Sync from Notion** can load a missing rollup recipe. It does not teach NotionApps `formatDate`, `ifs`, or the other unsupported tokens.
{% endhint %}

***

### Published app

End users still see **one number**. They cannot edit a formula or rollup.

When Recalculate is on and we computed a good value:

* Home and Details keep that number.
* A later fulfill / reload does **not** replace it with Notion’s `0` or `0/600` leaf.

When Recalculate is off, or the field is unsupported, published screens use Notion’s value (including the [25 related-page list limit](https://docs.notionapps.com/screens-and-components/formulas-and-rollups) that still applies to Notion’s page API).

***

### Step 4 — Sync, publish, and test

1. If a rollup says the recipe is missing, click **Sync from Notion**, then reopen **Calculated properties**.
2. Leave evaluable toggles **on** unless you want the raw leaf.
3. **Publish**.
4. Open the live Home (not only preview) twice. The number should stay computed.

| What you configured             | How to test                                               |
| ------------------------------- | --------------------------------------------------------- |
| Toggle on, simple `prop()` math | Home shows the computed number, not `0` / `0/600`         |
| Toggle off                      | Home matches Notion’s page API (which may still be wrong) |
| Disabled `formatDate` / `ifs`   | Reason text under the switch; Notion’s number stays       |
| Missing related database        | Grant access, Sync, then re-check the recipe              |

***

### Troubleshooting

| What you see                           | Likely cause                                                  | What to do                                                                      |
| -------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------------------------- |
| No **Calculated properties** section   | This app has no formula or rollup properties                  | Add them in Notion, grant access, Sync                                          |
| Every toggle is disabled               | Recipes use unsupported tokens, or rollup recipes are missing | Read the reason; Sync for rollups; keep Notion’s value for `formatDate` / `ifs` |
| Home still shows `0` after toggling on | Related rows are missing, or the field is unsupported         | Sync related databases; do not invent a number                                  |
| Recipe looks stale                     | You changed the formula in Notion only                        | Sync / Reload, then reopen Calculated properties                                |
| Preview looks right, live does not     | Not published                                                 | Publish again                                                                   |

The older workaround — rebuild a rollup as a `map()` / `length()` formula — is no longer required for **sum / count / average / min / max** when Recalculate is on. It is still useful when we cannot evaluate the original recipe.

***

### Related

* [Formulas & Rollups](https://docs.notionapps.com/screens-and-components/formulas-and-rollups)
* [Reload and sync](https://docs.notionapps.com/databases/reload-and-sync)
* [Why are my rollups showing zero or an incorrect value?](https://docs.notionapps.com/troubleshooting/why-are-my-rollups-on-notionapps-showing-zero-0-value-or-an-incorrect-value)
* [Some rollup properties do not show up in the app builder](https://docs.notionapps.com/troubleshooting/some-rollup-properties-do-not-show-up-in-the-app-builder)
* [16 Sep 2026 Release](https://docs.notionapps.com/release-notes/16-sep-2026-release)
