Formulas
A Formula Property computes a value from your other fields — a BMI from height and weight, a countdown from two dates, a label from a number. Read-only, and it updates itself the instant a field it uses changes.
A Formula is a read-only Property that computes its value from your Entry's other Properties, Notion-style. Type an expression once — prop("Weight kg") / prop("Height m") — and every Entry shows its own answer, recalculated live whenever the fields it uses change.
It's the third Computed Property kind, alongside Rollup and Portion. Where a Rollup totals up an Entry's sub-entries, a Formula reads fields on the same Entry.
Add a Formula
- In the Collection builder, add a Property and pick Formula from the Computed group.
- Type your expression. Tap a sibling field's name-chip to insert
prop("Field name")instead of typing it out. - Choose the output — Number, Text, Checkbox, or Duration — so Kaizendex knows how to format the result.
- The editor shows a live preview as you type, so you can check the math before saving.
That field now shows its computed value, read-only, on the card, the Entry page, and the table — for every Entry of that Collection.
Writing an expression
Reference another field on the same Entry with prop("Its Name") — the name it shows in the builder. Combine fields with ordinary math (+ - * / %), comparisons (== != < <= > >=), and and / or / not.
A handful of functions cover the rest:
| Function | Does |
|---|---|
if(condition, then, else) | Branches on a condition |
round(x[, digits]), floor(x), ceil(x), abs(x) | Rounding and absolute value |
min(...), max(...) | Smallest / largest of a list |
dateBetween(later, earlier, "minutes"|"hours"|"days") | The gap between two date/time fields |
now() | The current moment |
empty(x) | True if a field is blank |
concat(...), length(text) | Join text together, or measure it |
Examples
BMI, from a Weight and Height field:
round(prop("Weight kg") / (prop("Height m") * prop("Height m")), 1)
Output: Number.
A label that reacts to a number:
if(prop("Reps") >= 10, "Strong set 💪", "Keep going")
Output: Text.
Sleep time, from a Bedtime and Wake time field:
dateBetween(prop("Wake time"), prop("Bedtime"), "minutes")
Output: Duration — renders as 7h 42m. This is exactly how the built-in Sleep time field works on a connected wearable's Sleep collection: subtract Bedtime from Wake time and show the gap.
A simple pass/fail check:
prop("Steps") > 10000
Output: Checkbox.
A blank or broken result
If a field a Formula depends on is empty, the Formula usually reads as blank rather than erroring — use empty(prop("Field")) to test for that explicitly and branch with if(...). A genuinely broken expression (a typo'd field name, mismatched types) shows a short error marker on the card and table, and the full message on the Entry page so you can fix it.
Next
- Rollup and Portion — the other two Computed Property kinds, for totalling sub-entries and scaling a whole food
- Properties and the Title — every Property kind, side by side
- Connecting Fitbit or Google Health — where the built-in Sleep time formula comes from