For the complete documentation index, see llms.txt. This page is also available as Markdown.

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.

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.

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.

Turning a field off does not delete the last computed value. We just stop using it. A field turned off is left out of recalculation entirely; nothing is computed for fields you did not ask for.

The status line under the switch (We'll recalculate this / Using Notion's value) updates as soon as you save the toggle.


What NotionApps can evaluate

Formulas

  • prop("Field name")

  • + - * / and the comparisons == != > < >= <=

  • if(), and, or, not

  • empty()

  • now()

  • dateBetween(date1, date2, unit) in days, hours, or minutes; the result is date1 minus date2, as in Notion

  • number and text literals (including a ratio suffix such as /600)

A formula that only needs clock-time arithmetic (hours between a start and an end, for example) is filled from values already in the app instead of staying blank until Notion returns a value.

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, includes, length, format

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


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 that still applies to Notion’s page API).

When the rollout has reached your app, rollups are computed from the synced related rows, including rows past the first 25 Notion returns, so sum / count / average / min / max match Notion’s UI. Once computed, a later sync does not overwrite the number with Notion’s capped value, and parents are recomputed when a related child finishes syncing. Until then, see the rollout note at the top.


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

Rollup over 25 linked pages still shows Notion’s number with the switch on

The Recalculate rollout has not reached your app yet

Leave the switch on. No builder action moves an app into the rollout. Turn it off if you prefer Notion’s value meanwhile

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.