Open the dashboard your company uses for agent traffic. Sessions, request counts, a spike last Tuesday. Now ask it one question: did any agent end up somewhere the company didn’t want?
It can’t answer. Nothing is broken. The dashboard records events, and “wrong” is a judgment.
U
A judgment needs a standard. “This outcome is fine, that one isn’t” only means something once someone has written down which outcomes the company stands behind. Until then, a completed order with a strange shape and a clean one look identical: both are a 200 and a row in a table.
The market’s default order is the reverse. Instrument first, work out what the numbers mean later. It feels responsible because instrumenting is cheap, ships this quarter, and needs nobody’s permission. Declaring needs a decision, and decisions get scheduled for later.
But only two signals are worth emitting, and both depend on the declared set:
→ An outcome was produced that isn’t in the set.
→ The flow was walked and no admissible outcome was produced at all.
The second is the telling one. “No admissible outcome” is meaningless while the set doesn’t exist, and you can’t alert on an absence you haven’t defined. So the silent exit, the failure that never files a ticket, is exactly what a measure-first approach can’t see, however much it collects.
More data doesn’t repair that. A thousand more events are a thousand more things to classify against a standard that still isn’t there. You get a bigger pile, not a verdict.
The order isn’t negotiable: declare, then verify, then detect. Run it backwards and you’ve built a very precise instrument pointed at nothing.
A dashboard can only call something a failure if someone has signed which outcomes aren’t acceptable. Check yours: if that definition isn’t written down and owned by a named person, you are counting events, not failures.