3 min read · Updated August 2026
Notion Formulas 2.0: Syntax, Functions & Real-World Examples
A working introduction to Notion formulas 2.0: prop references, operators, the functions you will actually use, and five real examples.
Formulas turn a Notion database from a ledger into a calculator. Notion formulas 2.0 added a richer type system, arrays, and string functions that make it possible to compute things that used to need external tools.
This guide covers the syntax, the functions worth memorizing, and five examples you can paste straight in.
The basics of a formula
A formula is an expression that returns a value. It reads other properties with prop("Name") and combines them with operators and functions. The result becomes a new, read-only column on each row.
Types matter
Formulas 2.0 is typed. A Date is not a Number. Many errors come from feeding the wrong type to a function. Use format(), toNumber(), and parseDate() to convert when needed.
The functions you will actually use
Logic
if(condition, then, else)for branches.ifs(condition, result, ...)for multiple branches without nesting.empty(prop("X"))andnotEmpty(prop("X"))for null checks.
Text
concat(a, b)or the+operator to join strings.substring(text, start, end)to slice.replace(text, pattern, replacement)andreplaceAllfor regex.upper(),lower()for case.
Dates
now()for the current timestamp.dateBetween(a, b, "days")for the gap between two dates.formatDate(date, "MMM D, YYYY")to display a date.dateAdd(date, n, "days")to shift a date.
Numbers
round(),floor(),ceil().abs(),sqrt().sum()on a rollup or array.
Five real-world examples
1. Days until deadline
```
dateBetween(prop("Deadline"), now(), "days")
```
Returns a positive number when the deadline is in the future, negative when overdue.
2. Status badge with color logic
```
ifs(
prop("Status") == "Done", "Complete",
prop("Status") == "In Progress", "Active",
"To Do"
)
```
3. Overdue alert
```
if(
and(notEmpty(prop("Deadline")), prop("Status") != "Done", dateBetween(prop("Deadline"), now(), "days") < 0),
"Overdue",
""
)
```
4. Full name from first and last
```
prop("First") + " " + prop("Last")
```
5. Revenue with currency formatting
```
"$" + format(round(prop("Revenue") * 100) / 100)
```
Debugging tips
- Build formulas in small pieces. Test
prop("Deadline")alone before wrapping it indateBetween. - Watch the type indicator Notion shows beside each function. A red hint means a type mismatch.
- Use
ifsinstead of deeply nestedifcalls. Readability matters when you revisit a formula in three months.
When not to use a formula
If a formula grows past a few lines, it usually means a property is missing. Add a clean Select or Number property and compute from that instead of cramming logic into one expression.
Templates with formulas ready
The store's dashboards include working formulas for overdue alerts, progress bars, and revenue rollups, so you inherit tested expressions instead of writing them from scratch.
Want this built for your practice, not just read about it?