Formula fields¶
Formula fields compute a value from other fields in the same record. They're read-only — Stackify recalculates the value automatically whenever a field the formula depends on changes.
Create a formula field¶
- Click the + button at the right end of the column header row (or edit an existing field from the Edit card panel).
- Choose the Formula field type.
- Enter an expression, e.g.
[Unit price] * [Quantity]. - The editor validates your formula as you type and shows a live preview using values from an existing record.
- Click Save field.
Browse functions and fields while typing
Click ƒ Browse above the formula box to open a panel with two tabs, Functions and Fields. It highlights the functions and fields most likely to be relevant based on what you've already typed — for example, referencing a date field surfaces the date functions first.
Referencing fields¶
Wrap a field name in square brackets to reference it: [Field Name]. Field names are matched exactly, including case and spacing. Formula fields can also reference other formula fields, as long as there's no circular reference (A depending on B depending on A).
Function reference¶
Every function available in the formula editor is listed below, grouped the same way as the ƒ Browse panel, with an example for each.
Logic¶
IF(condition, if_true, if_false) — returns one of two values depending on a condition. Both branches must be the same type.
IFERROR(expr, fallback) — returns fallback if expr produces a runtime error, such as dividing by zero.
ISBLANK(value) — true when the field is empty.
AND(a, b) / OR(a, b) — same as && / ||.
Math¶
ROUND(number, decimals) — round to N decimal places.
ABS(number) — absolute value.
SQRT(number) — square root.
CEILING(number) — round up to the nearest integer.
FLOOR(number) — round down to the nearest integer.
MOD(number, divisor) — remainder after division.
MIN(a, b) / MAX(a, b) — smaller/larger of two numbers (two-argument only).
NUMBER(value) — coerce text to a number.
Text¶
CONCAT(a, b, ...) — join values together, coercing each argument to text. The & operator does the same thing.
UPPER(text) / LOWER(text) — change case.
TRIM(text) — remove leading and trailing spaces.
LEFT(text, n) / RIGHT(text, n) — first/last N characters.
LEN(text) — number of characters.
TEXT(value) — convert a number, boolean, or date to text.
Date¶
TODAY() — today's date (UTC). Recalculates daily; fields that use it are marked with a "result may change daily" indicator.
NOW() — current date and time (UTC). Also marked as recalculating.
DATEDIFF(start, end, unit) — difference between two dates. unit is "day", "month", or "year".
DATEPARSE(text, format) — parse a text field as a date.
YEAR(date) / MONTH(date) / DAY(date) — extract date parts.
ADDDAYS(date, n) / ADDMONTHS(date, n) / ADDYEARS(date, n) — add (or subtract, with a negative n) a number of days, months, or years. ADDMONTHS clamps to the end of the month when needed.
MAKEDATE(year, month, day) — construct a date from three numbers.
DATEFORMAT(date, format) — format a date as text. See format tokens below.
WEEKDAY(date) — ISO weekday: 1 = Monday … 7 = Sunday.
WEEKNUM(date) — ISO week number (1–53).
QUARTER(date) — quarter of the year, 1–4.
DATEFORMAT tokens¶
| Token | Meaning | Example |
|---|---|---|
YYYY | 4-digit year | 2026 |
YY | 2-digit year | 26 |
MM | Zero-padded month | 05 |
M | Month, no padding | 5 |
MMM | Short month name | May |
MMMM | Full month name | May |
DD | Zero-padded day | 07 |
D | Day, no padding | 7 |
WW | ISO week number | 21 |
Q | Quarter | 2 |
Unknown tokens are passed through literally.
Geo¶
Geo functions only appear in the ƒ Browse panel when the card has at least one Map point field.
LAT(map_point) / LNG(map_point) — latitude/longitude of a map point in decimal degrees.
DISTANCE(point_a, point_b) — distance in kilometres between two map points (Haversine formula), rounded to 3 decimal places.
MAKEPOINT(lat, lng) — construct a map point from latitude and longitude numbers, for comparing against a fixed coordinate instead of another field.
DISTANCE([Store Location], MAKEPOINT(59.33, 18.07))
→ 3.2 (distance from the store to central Stockholm)
Error handling¶
If a formula hits a runtime error (for example, dividing by zero), the cell shows as empty rather than breaking the record. Wrap the expression in IFERROR(...) to control what's shown instead:
Limitations¶
- Formula fields are read-only — you can't type a value directly into a formula cell, and they're excluded from import mappings.
- Formula fields are excluded when saving a card as a template — the template captures the field definitions of regular fields only.
- Formula fields can reference other formula fields, but not themselves or each other in a cycle. Stackify shows a "circular reference" error if you try.