Values

Every cell holds a number, an absence, or an error, and that list is closed.

Three kinds of value

Every cell holds a number, an absence, or an error. Nothing else is ever a value.

A number is a finite 64-bit float. A computation that comes out infinite or not a number is an error in the cell where it happened.

An absence means there is nothing to report, such as an average over no rows. A sum over no rows is zero, but an average over no rows has no value, and the grid shows the difference.

Errors stay where they happen

An error shows a code that says what went wrong. The codes follow Excel's spelling, such as #DIV/0 and #NA, with #ERR for anything without a more specific code.

plan = team

              2024-01  2024-02  2024-03
Invoices            1        0        1
Revenue          2500        0     2500
ARPU             2500   #DIV/0     2500

The team plan sold nothing in February, so ARPU divides zero by zero there. That is one cell. Every other cell computes normally, and a cell that reads the broken one holds an error that still points at where it started.

No broken formula stops a run

A grid always comes back whole. A driver whose formula does not parse fills its own row with errors, and every other driver in the model still computes its numbers.