The organising principle
No screen shows a number that cannot be derived, on screen, from a stated definition and a stated as-of time.
SatoriRev is subscription analytics for revenue and customer-retention teams. It tracks revenue and product usage down to the individual product, rolls those up through two levels of hierarchy, and explains what moved rather than only reporting a total. A definition is data, not documentation: one stored row per metric, one implementation behind it, and a figure that will open onto the arithmetic that produced it.
New business · August 2026
+$62,400
true as of the close of the month named · definition movement.new v1
Show the derivation
Stated definition — movement.new v1
Who is counted — customers with revenue this month and none last month.
True as of — the close of the month named.
Which promise — billed: invoiced or charged, money that has been asked for.
Computed as — sum(movement_entry.new)
| Product | Qty | MRR | Source |
|---|---|---|---|
| Platform — Core | 18 | +34,100 | observed |
| Platform — Analytics | 11 | +16,800 | observed |
| Services — Onboarding | 6 | +8,300 | asserted |
| Services — Support plan | 4 | +3,200 | observed |
| Listed above | 39 | +62,400 |
Every dollar of this figure is listed — $62,400 in the movement, $62,400 across the customers behind it. Where the parts do not account for the whole, the screen says how much is unaccounted for and stops calling itself evidence for the rest, rather than quietly showing a shorter list. Source says whether we observed the fact or were told it; the two are never collapsed. And where the trail ends, the screen names where it ended.
Nothing here is restated on the screen. The definition, its wording and its version are read from the same stored row the API returns, so a definition changed in one place changes everywhere it is shown — and a second implementation of the same metric fails the build.
What it does
-
01
Revenue and usage, per product
Both are tracked at the level of the individual product a customer pays for and uses — not at the level of the account — and rolled up through two levels of hierarchy above it.
-
02
One number, whatever the screen
A named quantity has one stored definition and exactly one implementation behind it — a second one fails the build, and a headline figure computed without a definition fails it too. A number does not change because you arrived at it from a different screen.
-
03
Movement, explained
What changed, by how much, and why — new, expansion, contraction and churn, each traceable to the accounts and products underneath it. A total that cannot be taken apart is not an answer.
-
04
Churn risk as a work queue
Risk signals become items with an owner and a state, not a feed to be scrolled. The question a retention team has is who is doing what about which account — so that is what the product answers.
-
05
Answerable to people and to software
Numbers are reachable through the interface or the API, from the same stored definition. Neither surface is a re-implementation of the other, so the two cannot drift apart. The machine-readable surface is read-only by design — nothing reachable that way changes anything.
-
06
A total that shrinks says why
Where someone is restricted to part of the catalog, the screens that can filter honestly say on their face that a scope is active and what it excludes. The screens that cannot filter honestly refuse, or withhold the figure and give the reason, rather than serving a smaller number under a whole-company label. A figure that quietly shrank is the most expensive thing analytics can do to you.
Where this stands
The figures in the panel above are an illustration of the pattern, not a measurement of anything. They are labelled that way for the same reason the product states its definitions: a number without its provenance is decoration.
And the pattern is not yet on every screen. Every headline figure in the system is required to resolve to a stored definition — that part is enforced, and a figure computed without one stops the build. Putting the disclosure beside each figure is being done screen by screen, starting with revenue and churn, and it is not finished.
If this is the analytics you have been asking your current tool for, say so before October.
Early conversations shape what ships. Write to Chris Frary, who is building it.
chris.frary@satorirev.com