The test. Received, invoiced and expected are never added together, and an instrument that has never been written to says so — that is a state, not a zero.
Is the machine doing work, and is the work any good.
Blake's actual requirement: not a snapshot, a direction.
What the machine burns, and how much of it rests on one seat.
21 metrics are defined in src/metrics/registry.mjs. Nothing is pre-aggregated: every series is computed on read, straight off the kernel, with a calendar join so a day with no rows appears as itself rather than being drawn through. A rate on a day with no runs is a gap, not a zero — no runs happened and no runs succeeded are different sentences.
Skipping the rollup table was a decision with a trigger attached: rebuild it as stored aggregates when a read passes 100ms. This one took 0ms.
Money is unrecorded, not zero. cost_entry and revenue_entry hold no settled rows, so CAC, ARR and LTV:CAC are defined and blocked rather than absent. The day a row is written they begin drawing themselves, with no page change.