Assess

Reading the results

The two conventions

Both exist for the same reason: a number you cannot support is worse than no number.

One row per request, not per log record

The LLM table writes request, response and streamed-chunk records separately under a single CorrelationId. Every query collapses to one row per request before aggregating. A "request" in any result below means a logical request, not a log line.

Disagreement reads as absent

Where several records report different values for the same field, the queries return nothing for it rather than picking one. Where no record reported a value, the result is likewise absent, not zero.

This is why UsageCoveragePct exists. Below 100%, the token totals rest on that share of requests and are a floor, not an estimate of the remainder. Quote the coverage whenever you quote a total.

The queries

00 · Preflight

Reports per table: READY, PRESENT BUT EMPTY, PRESENT WITHOUT TOKEN DATA, or NOT PRESENT. Anything other than READY on both means the later results are not trustworthy yet. See Prerequisites.

01 · Observed consumption by day

Daily request volume and token consumption.

UsageCoveragePct is the share of that day's requests the totals are derived from. A day showing high volume and low coverage is a day where the token telemetry is incomplete — not a cheap day.

02 · Where consumption concentrates

Requests and tokens by model and deployment, with each row's share of total volume. Values that were never reported, or that records disagreed on, group under (not reported) rather than being dropped — dropping them would shrink the denominator and overstate everything else.

03 · Attribution gaps

How much observed consumption cannot be tied to an accountable API and operation. Five outcomes:

Result Meaning
ATTRIBUTED — API, operation and product Fully accounted for
ATTRIBUTED — API and operation, no product Accountable, no product dimension
PARTIAL — API known, operation not identified Half attributed
UNATTRIBUTED — gateway record carries no API or operation identity The gateway saw it and could not name it
UNATTRIBUTED — no gateway record for this model call A model call with no matching gateway record at all

The unattributed rows stay in the denominator. That is the point of the query: the share you cannot account for is the finding.

04 · Failure and retry waste

Consumption grouped by request outcome — succeeded, 4xx, 429 throttled, 5xx, and indeterminate where gateway records disagree on status.

Tokens consumed under a 5xx were paid for and thrown away. That is exact.

429s are reported as throttling pressure, which is what drives client retries — not as a retry count. TokensConsumed is absent, not zero, for any outcome where no request reported usage: a throttled request that never reached a model has no consumption to report, and "we have no telemetry" must not render as "this cost nothing".

05 · Validation candidates

Operations ranked by input context paid for relative to output produced, highest total input first.

A high input-to-output ratio is the signature of context that may not be earning its cost — retrieved documents that go unused, prompts that accumulated, history replayed every turn.

It is a candidate and nothing more. Whether that context is waste or the reason the output is correct cannot be established from a log. No threshold is applied. Ranking is by total input tokens rather than by ratio, so a trivial operation with an extreme ratio does not outrank a dominant one.

Operations that produced no output at all show an absent ratio rather than infinity.