Reporting · Data

A cap that invents a number

Clamping an impossible value to a ceiling stores a figure nobody measured, and it looks exactly like one that was. A reading that should have been refused moved a page average by two orders of magnitude.


Every number a system accepts from outside needs an upper bound, or one bad sender ruins a table. Ours had one: a page-load measurement could not be longer than two minutes. Anything longer was rounded down to two minutes and stored.

That rounding is the bug. A page that genuinely took four minutes and a page whose reading was meaningless both came back as exactly 120,000 milliseconds, and once stored, neither could be told from a real measurement. The ceiling had turned a value we knew was wrong into a value that looked plausible.

It showed up on our own board this morning. One screen read an average of forty seconds. The three readings behind it were 341 milliseconds, 526 milliseconds, and one that had hit the ceiling. Two honest numbers and one invention, and the invention won.

The same shape, on a counter

This is not a programming curiosity. Look at where your own systems cap things.

A wait-time display that says 60+ mins and then feeds 60 into the week's average prep time. A stock count field that will not go above 999, on a day somebody took delivery of 1,200 cups. A card terminal timeout recorded as a 60-second transaction when what actually happened is that nobody knows what happened. Every one of those writes a number that reads as measured and was not.

The giveaway is always the same: a suspiciously round figure that appears more than once. If your busiest Saturday and your quietest Tuesday both report exactly the same maximum, that is not a coincidence about your kitchen. That is your ceiling being written into your data.

Refuse, do not round

We changed ours to drop the reading instead. A measurement above the ceiling is not shortened, it is thrown away, and the sender is told nothing because the sender never checks. The board now has one fewer row and every row it has was actually observed.

Losing a data point feels worse than keeping a squashed one. It is not. A missing reading is visibly missing — the count drops, and anyone reading the report can see there is less behind it than they thought. A capped reading hides inside the average and quietly argues for a conclusion nobody has evidence for.

If you only change one thing after reading this: find the fields in your own setup that have a maximum, and find out whether hitting that maximum is recorded as a fact or as a failure. In most systems it is recorded as a fact.


Try it on tonight’s service.

Nothing to install, no card. Not better by the weekend? Close the tab.