The request sounds like an interface feature: let the user click the number and see what is behind it. It is not. Almost every analytics product recomputes its aggregates from live tables, and live tables change — a source is re-crawled, a competitor is renamed, a failed run is retried. Click the number a week later and the detail no longer adds up to the figure that was shown.
Observations are immutable
The base record — one observation, at one moment, from one source — is written once and never updated. A correction is a new row that supersedes the old one, not an UPDATE. This is the single decision that makes everything else possible, and it is the one people skip because an UPDATE is easier.
Provenance travels with the value
- Where it came from: the source, its identity, the exact request that produced it.
- When: the moment of observation, not the moment of storage.
- Under what logic: a version, so a metric computed last month can be explained by last month's rules.
- With what confidence, and whether it is observed, derived, estimated or unknown.
- What it conflicts with. A contradiction is intelligence, not something to resolve by picking one.
- Derived, not stored
- An aggregate is a function of immutable observations plus a declared rule. If you cannot regenerate today's headline number from yesterday's rows and the rule version, the number is not derived — it is a separate, unverifiable fact that happens to live in the same database.
Record failure as a first-class outcome
When a source does not answer, the honest record is a failed observation with a reason — not a missing row and not a zero. A missing row is indistinguishable from a question never asked; a zero asserts a measurement that never happened. Both corrupt every denominator downstream, and neither can be detected once it is in the table.
What it costs
More storage, a schema that is harder to change, and a discipline that has to hold at every writer — one careless UPDATE and the guarantee is gone for that row and nobody will notice for months. In exchange you get a product that can be argued with, which is the only kind of analytics anyone renews.
Sources
Related services
Related work
Read next
- Product DevelopmentA dashboard is a decision surface, not a place to put the data you haveHow do you design a dashboard around decisions instead of around available data?
- AI SearchWhat AI visibility means, and what it does notWhat is the difference between an AI mention, an AI citation and a search ranking?
