← All notes

Zero is not "I don't know": missing data in the numbers you decide on

Every number that lands on a business dashboard has a story behind it, and those stories are very different from one another. Some numbers were measured: someone clocked in, a sensor read a value, an operator confirmed it. Others were reconstructed: the system found a gap and closed it with a reasonable estimate. Others still don’t exist: nobody ever recorded that value.

In most business systems, these three categories end up in the same column, in the same format, with no distinction whatsoever. That’s where the most expensive problems start — and the hardest ones to spot.

The gap that turns into a zero

The most common case is a missing value silently converted into a zero. A municipality with no survey data enters a territorial analysis as “zero demand” and gets discarded automatically. An empty cell in a cost matrix becomes “zero cost” and turns the worst option into the best one. A customer with no recorded revenue looks inactive and drops out of the sales campaign.

None of these errors raises a visible alarm. The report opens, the totals add up, the chart is clean. The decision that comes out of it is simply wrong — and nobody will ever be able to explain why, because the number that caused it looked like any other number.

The gap that turns into a reconstructed value

The other case is subtler. A timer stays open because a PC shut down; a work session never received its closing event. A well-built system doesn’t leave it hanging forever: it steps in and closes the interval with a plausible value. That’s the right call — on one condition.

The condition is that the value stays flagged as reconstructed for its entire life: in the database, in the reports, in the exports to accounting. A reconstructed hour is perfectly fine for a utilization statistic, but it cannot end up on a customer invoice or a payslip. If the flag gets lost along the way — perhaps in a format conversion between two systems — the company is billing time nobody ever measured. The day a customer disputes it, there’s no way to reconstruct what was real.

Three rules that cost little and save a lot

  • Tell absent apart from zero. Missing data is not a quantity: it’s the absence of one. If a calculation model can’t handle absence, fix the model, not the data.
  • Provenance travels with the value. Measured, reconstructed or estimated: the label has to survive every hop, all the way to the last report. Information that gets lost in an integration is information that never existed.
  • Declare instead of hiding. A report that plainly states “12 municipalities with no survey data” is more useful than one that shows them as zero. The first makes someone ask a question; the second makes someone take a bad decision with total peace of mind.

Missing data isn’t a defect to eliminate: in any real company there will always be some. The defect is making it disappear by disguising it as a number.

Let’s talk