unbiased ai

Blog

Why your bill does not match your math

You multiplied tokens by the rate card and got a number. The invoice disagrees. Here are the five gaps, each one measured rather than asserted, in the order they cost you money.

By the Unbiased Team · published · every figure measured by us and dated in place; rates verified August 25, 2026

96%
the bill gap between two models on an identical rate card, measured on the same prompts
2.6x
what caching was worth on our metered agent session: $0.59 with it, $1.54 without
78x
tokens our measured agent session read versus wrote. Context, not answers, is the bill

Rate-card arithmetic misses five measurable things: models emit different token counts for identical work, the tokenizer changed between model generations so tokens are not commensurable, cached reads bill at a fraction of input rates, failed cheap runs bill twice, and platform fees apply to a different base than tokens.

Gap 1: the same work is not the same tokens

Two models can share a rate card and produce different bills, because you pay per token and models are not equally wordy. On our six-task battery, Opus 5 and Opus 4.8 both bill $5 input and $25 output per million tokens, and the battery cost $0.2243 on one and $0.1146 on the other: a 96% gap that no pricing page can show you.

This is measurable and we publish it monthly as the Verbosity Index. If you swap models on an identical rate card and your bill moves, this is usually why.

Characters carried per output token

Claude Haiku 4.53.409
Claude Opus 4.82.294
Claude Fable 5.12.292
Claude Fable 52.191
Claude Sonnet 52.047
Claude Opus 52.034

Higher means each billed token carries more text, so the same answer costs fewer tokens. The highlighted model is the one still on the previous tokenizer. Measured across the same six-task battery, 2026-08-25.

Gap 2: the unit itself changed

This one is newer and almost nobody has priced it in. Anthropic's documentation states that Claude 4.7 and later models use a newer tokenizer producing "approximately 30% more tokens for the same text." We measured the effect on our own battery: 3.409 characters per billed token on the previous tokenizer against 2.172 on the newer one, or 57.0% more text per token on the older generation.

Read that as a billing statement rather than a technical footnote. If you built a cost model on a pre-4.7 model and moved to a current one, the same prose now costs more tokens at the same per-token price. Your spreadsheet was not wrong; the unit under it moved.

The chart above is the per-model measurement. It is the reason we now publish a character index alongside the token index.

Gap 3: cache reads are a different price

Cached input bills at roughly a tenth of the input rate on most models, and Fable 5.1 goes further at 0.025x, which is $0.25 per million against a $10 base. Any arithmetic that prices all input at the base rate overstates a well-cached workload badly and understates a churning one.

Our published agent session is the measurement: five API calls to fix one bug, $0.5887 metered with caching, $1.54 re-priced without it. A 2.6x swing that lives entirely in whether your prompt prefix is stable, and it is the single largest lever on an agent bill.

Gap 4: failure bills twice

Rate-card math assumes every call succeeds. Cheap tiers fail more often on hard work, and a failed cheap run is not free, it is the cheap run plus the expensive retry plus the review time. At a 15% failure rate a volume-tier model with an escalation path can cost more per completed task than the frontier model you were avoiding.

The number to model is cost per completed task, not cost per call. If you do not know your failure rate by task class, that is the measurement to take before optimizing anything else.

Gap 5: fees apply to a different base

If you route through a gateway, the fee is often not on the tokens. OpenRouter charges 5.5% on credit purchases with a $0.80 minimum, so a small top-up pays an effective rate well above 5.5%. Requesty marks tokens up 5%. Portkey charges a flat $49 a month with tokens billed direct. Three different bases, three different behaviours as you scale.

And keep the fee in proportion: on our measured four-task workload, sending each task to the right model saved 14x what the platform fee cost. The fee is the legible number; the selection is the expensive one. Full structure comparison in the gateway guide.

The short version

Price per token is an input to your bill, not a prediction of it. The five gaps above are all measurable in an afternoon on your own traffic: meter your top three tasks on your candidate models, check your cache hit rate, and find your failure rate by task class. Everything else is arithmetic on numbers you now actually have.

Questions, answered

Why is my LLM bill higher than my estimate?

Most often verbosity: your model emits more output tokens than your estimate assumed. Then cache behaviour, retries on failed cheap calls, and platform fees applied to credits rather than tokens. All five are measurable on your own traffic.

Do two models at the same price cost the same?

No. On our battery, two models sharing a $5/$25 rate card differed 96% in what they billed for identical prompts, entirely through token count.

Does the tokenizer really affect cost?

Yes. Anthropic documents roughly 30% more tokens for the same text on Claude 4.7 and later models. We measured 3.409 characters per token on the previous tokenizer against 2.172 on the newer one. Billing is per token, so the same prose costs more.

What is the fastest way to cut a bill?

Caching, if your workload reuses context: our measured agent session cost 2.6x more without it, and it is configuration rather than replatforming. Then tier-match routine traffic, then batch anything that can wait.

Compare any two models

VS

Rates verified 2026-07-28. "Measured task" = our identical dashboard-generation prompt, metered where marked ✓ and list-math otherwise. Verbosity from the Verbosity Index, Edition 2 (token index); Pareto was not re-measured this edition. Data: prices.json.

Measure it on your own traffic. $100 to verify.
Get Pareto API credits