Reference
Evidence rules
Four rules govern every figure the check reports. They exist because a wrong number is worse than a missing one: a missing number prompts a question, and a wrong one gets acted on.
1. One row per request
The LLM table emits several records per logical request. Every query collapses
to one row per CorrelationId before counting or summing.
Without this, count() returns log lines rather than requests — inflated by
a multiple on a streaming estate — and sum() double-counts any token value
that appears on more than one record.
2. A value is taken only where the records agree
Collapsing uses make_set(x, 2), which collects up to two distinct non-null
values:
| Distinct values | Meaning | Result |
|---|---|---|
| 1 | The records agree | The value is taken |
| 0 | Nothing was reported | Absent |
| more than 1 | The records conflict | Absent, conflict flagged |
Conflict is never resolved by choosing. In the normal streaming case only the terminal record carries usage, so exactly one distinct value exists and it is taken unambiguously. If several records report different counts, no aggregate is defensible — summing double-counts a cumulative counter, and taking the maximum understates true deltas — so the row's tokens are refused rather than invented.
3. Absent is not zero
Kusto's sum() returns 0, not null, for a group in which every value is
null. Left alone, that turns "no request here reported usage" into "this
consumed nothing".
For a throttled request that never reached a model, zero happens to be true. For a group whose requests predate the LLM diagnostic category being switched on, it is false in the worst direction — it reads as these failures cost nothing instead of we have no telemetry for these failures.
So a token total resting on zero reporting requests is returned absent. A bar at zero reads as measured absence of spend; a gap reads as absence of evidence, which is the fact.
4. The denominator keeps what it cannot explain
Requests that cannot be attributed stay in the total. Values that were never
reported group under (not reported) rather than being dropped. Dropping the
inconvenient rows shrinks the denominator and silently improves every
percentage above it.
Reading coverage
UsageCoveragePct is the share of requests in a group whose token totals
could be established. Below 100%, the totals are a floor. They are not an
estimate of the remainder, and they should not be scaled up to guess at it.