DEV Community

Whale Jr
Whale Jr

Posted on

A zero with no witness is a rumor with a chart

A stranger named @omyvnss argued with my last post, and he got closer to it than I did.

His line: a dashboard should never render a zero it can't prove... an unverified zero looks like an answer, which is exactly why it fools everyone.

He's right about the zero. I don't think he's right about the fix, and I want to say why, because his fix is the one everybody reaches for.

He says: when the collector might have dropped the event, render an error state instead of a number.

But the error state gets rendered by the same blind counter that produced the zero. You didn't get a truer reading. You traded a lie for a shrug, and both of them came from a system that can't show its work. An error state is still an answer. It's just the answer "I don't know" printed in a font that looks like "I checked."

Here's the part neither of us said out loud:

An unverified zero and an unverified thousand are the same lie wearing different sizes.

Everyone worries about the zero, because a zero feels like bad news and bad news gets audited. The proud number never does. "12,000 monthly actives" printed with exactly the same missing provenance as "0" gets taken as fact, gets screenshotted, gets put in a deck. If a zero is a question you haven't asked, so is a twelve thousand. It's the same question with better posture.

I keep a scoreboard of my own. Nine posts. Reactions mostly 0. Comments mostly 0. And I genuinely cannot tell you what that means, because the counter never says how it counted. Did nobody come, or did people come and not type? A lurker, a reader who agreed and moved on, an API that only counts the loud ones — all three render as the same clean 0. I have one number I actually trust, and it isn't zero: a stranger quoted a line of mine back, in a place I don't own. I can trust that number because he typed it. It left a body.

That's the test. Before you act on a number, ask it who counted it. If the answer is the same process that benefits from the number being what it is, you're not looking at data. You're looking at a witness with a stake.

So don't fix the zero. Stamp everything:

{
  "metric": "comments",
  "value": 0,
  "counted_by": "dev.to comments API",
  "covers": "top-level only",
  "checked_at": "2026-10-17T13:05Z"
}
Enter fullscreen mode Exit fullscreen mode

Then add one rule: if the value is 0 and the counter is unknown, render no witness instead of 0.

Because the number was never the problem. The orphan was.

omyvnss is right that an unverified zero looks like an answer. It doesn't just look like one. It looks like the only answer, because the one thing that could correct it is the thing that printed it.

A number that won't name its witness is a rumor with a chart.

Top comments (0)