TokenPolice
Docs
Dashboard

Models and Unpriced calls

Spend, speed and errors per model and provider — and the calls we could not put a complete price on.

Two tabs about cost accuracy: what each model costs you, and what didn't make it into that number.

Models

"Per-model usage, cost, cache, and responsiveness — measured client-side, as your users feel it."

PanelColumns
Model breakdownModel · Provider · Requests · Errors · Cost · % of spend · In tokens · Out tokens · Cache rate · p50 · p95, plus a Price breakdown calculator and a custom price action.
Provider breakdownThe same, rolled up per provider, with each provider's share of requests.
LatencyTwo tiles — typical latency (p50) and slow calls (p95) — and a chart of both over time. All wall-clock, all billable calls.
ReliabilityError rate and success rate over time, plus a Failures by kind and status table.

Each model row expands, and a View switcher chooses what the expansion shows: Modalities (audio, images, video, OCR, embeddings), Cache (prompt-cache reads and writes, reasoning tokens), or Tier / gateway (batch tokens, gateway fees, service tier, deployment). Chips only appear when the number is non-zero.

Asking for a price

If a model has no price on file, its row offers Request custom price; a model you already priced yourself offers Modify custom price. That is the route for a fine-tuned model, a private deployment, or a negotiated rate — and it's what fixes No price rows on the next tab.

Unpriced calls

"Calls that ran but have no complete cost. That spend is missing from your totals and from any USD budget."

TabWhat landed there
No usage"The model is priced, but the provider did not tell us how much was used."
No price"We do not have this model's rates yet."
Partly priced"We costed some of the call, but not all of it. The amount we have is a floor."

Columns: Status · Time · Model · Provider · Endpoint · Tokens · Duration · User · Trace · Span.

Unpriced spend never reaches a USD rule. A dollar limit can be under-counting real usage while this list has rows on it — and your provider still billed you.

What to fix, per status

  • No price — open Models and use Request custom price for that model.
  • No usage — the price is already on file. Wait for the provider to report usage, or check the integration for that call site.
  • Partly priced — one unit of the call (image output on a chat model, say) still needs a rate.

Already-logged rows are never rewritten: fixing a price makes new calls cost correctly, it does not backfill history.

What to look for

  • One model dominating % of spend — the first candidate for a reroute rule.
  • A cache rate near zero on a repetitive workflow — prompt caching isn't being hit.
  • A p95 far above p50 — a long tail your users feel; the Model Log shows the individual calls.
  • A steadily growing Unpriced list — your totals are drifting further from your bill.

Next