Functions
Fifteen, ready.
Aggregates, math, text, and structure. Each one autocompletes from the bar with a one line hint.
Formulas
The formula bar autocompletes as you type.
The grammar
Reference. Combine. Roll up. The math sits next to the cells it touches.
// Three columns of revenue, one total.Σ Total =SUM([Q1] + [Q2] + [Q3])// A guard rail, in one line.Risk = IF([Churn] > 5, "watch", "ok")// Round before you publish.NRR = ROUND(PCT([Retained], [Start]) * 100, 1)
Engine
Hand built tokenizer, Pratt parser, tree walker. No eval. No new Function. Cycles short circuit at zero.
The kit
Functions, operators, and the column they fill. Three views of the same act.
Functions
Aggregates, math, text, and structure. Each one autocompletes from the bar with a one line hint.
+ −
add subtract
× ÷ %
multiply divide modulo
> < =
compare
AND OR
logic
[col]
reference
Operators
Arithmetic, compare, logic. Strings concat with plus when one side is text. Reference with brackets.
The column
The header tints. A small fx tag marks it. Cells render read only and recompute the moment a source row changes.
Why a parser
15
functions, no plugins
0
eval, in the engine
∞
depth, with cycles caught
A formula in Donum cannot pull network. It cannot read globals. It does math, returns a value, and steps aside.
In short
SUM, AVG, MIN, MAX, COUNT, IF, ROUND, ABS, CONCAT, LEN, LOWER, UPPER, PCT, ROW, ROWS. More on the way.
Yes. Wrap the column name in square brackets, like [Q1] or [Plan Total]. Spaces are fine.
Yes. Use [Other Source!Column] to pull a value from any source in the workspace.
The engine catches it. The cell shows the cycle marker and the rest of the sheet keeps running.