Originally published on the TierUp blog. A case study in how an LLM bill rises 12–27% with zero change to the rate card.
The rate card is the least interesting number on your AI invoice. What you actually pay is price × tokens, and providers have far more ways to move the second factor than the first. The clearest recent example: Claude Opus 4.7.
Same price, more tokens
When Opus 4.7 shipped this spring, the sticker price didn't move — $5/M input, $25/M output, the same rates Anthropic has held since Opus 4.1, as Finout's pricing analysis notes. What changed was the tokenizer. Anthropic's own documentation disclosed that the new tokenizer produces 1.0–1.35x as many tokens for the same text, with the high end landing on code, structured data, and non-English text.
Independent measurements suggest the official range was, if anything, conservative:
- ClaudeCodeCamp's measurement post found 1.47x on technical documentation and 1.445x on real CLAUDE.md files — above the documented ceiling — with a weighted average of about 1.325x across real coding-session content. Characters-per-token fell from 4.33 to 3.60 for English prose and from 3.66 to 2.69 for TypeScript.
- OpenRouter's analysis (published April 27, 2026) measured 32–45% token inflation across prompt-size buckets, translating to real-world cost increases of 12–27% for most workloads. The interesting exception: prompts under 2K tokens came out about 1.6% cheaper, and prompt caching absorbed much of the inflation on very long contexts (93% of the extra tokens were cache reads in the 128K+ bucket).
- ClaudeCodeCamp's end-to-end estimate: a typical 80-turn coding session that cost about $6.65 on Opus 4.6 runs $7.86–$8.76 on 4.7 — a 20–30% increase at an identical rate card.
To be fair, this wasn't a stealth price hike. Anthropic documented the range and gave a rationale — finer-grained tokens improve literal instruction-following and tool-call precision, per the stated reasoning quoted in ClaudeCodeCamp's writeup. You may well be getting a better model per dollar. But if your budget model assumed "price unchanged = cost unchanged," it's now wrong by up to a quarter.
The other hidden multipliers
The tokenizer tax is one member of a family. None of these show up as a price change; all of them change what you pay.
The output premium. Every major model charges a multiple for output over input: 5x on Opus 4.7 and Sonnet 4.6 ($25 vs $5, $15 vs $3), 6x on GPT-5.5 and Gemini 3 Flash, per the major pricing trackers (see our pricing roundup). As Finout puts it, output token growth matters more than input growth precisely because of this multiplier. A model that's slightly chattier — longer explanations, more verbose chain-of-thought, bigger tool-call payloads — raises your bill with no pricing announcement at all.
Long-context surcharges. Gemini 3.1 Pro charges $2/$12 up to 200K context but $4/$18 beyond it, per CloudZero's pricing data. Cross that threshold with a bloated RAG pipeline and your marginal input rate doubles — again with no change to any published price.
Cache invalidation on model upgrades. Prompt caching is the biggest legitimate discount available (up to 90% on cache reads). But caches are model-partitioned: when you upgrade, every cached prefix must be rewritten — and after a tokenizer change, the prefix you're re-caching is 1.3–1.45x larger than before, as ClaudeCodeCamp documented. Budget for an expensive cold-start week after every migration.
Retries and truncation. A failed or truncated call you retry costs full price both times; the arithmetic is unforgiving in agent loops where one flaky step re-runs an entire chain. Timeouts, malformed tool calls, and max-token truncations are all billable events.
What to do about it
- Meter tokens, not requests. Track tokens-per-task over time; that's the metric that catches a tokenizer change or creeping verbosity. Dollar dashboards lag; token dashboards lead.
- Re-benchmark cost on every model upgrade, not just quality. Run your standard eval set and compare billed tokens, not request counts, before and after.
-
Cap output. Set
max_tokensdeliberately and prefer terse output formats — every output token is 4–6 input tokens' worth of money. - Watch context thresholds. If you're near a long-context pricing tier, trimming retrieval is a step-function saving, not a marginal one.
The rate card is marketing. The multipliers are the bill. Tracking those multipliers across providers is most of what cost-aware routing means — and it's the work TierUp does so you don't have to.
Top comments (0)