Skip to content
Product Development

Every number should open. What that costs, and why it is worth it

Making a metric checkable by the person reading it changes the data model, not the interface. What has to be true underneath before a number can be opened.

How do you make an analytics number checkable by the person reading it?

Mostafa Nouh — portraitMostafa NouhPublished 7 min read

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

Contact

Have a site or store that needs to work better?

Tell me what is happening and on which page. A diagnosis is a useful first deliverable on its own.

I read every message myself and reply within one working day — usually with a question or two before anything else, because a scope worth quoting needs them answered.

Available for remote work aligned to EST hours
Mostafa Nouh — portrait

Mostafa Nouh

Full-Stack Developer & Product Builder

Location
Egypt · Remote