Claude token costs: cheaper per token is not cheaper per task
Claude token costs are misleading as a comparison because the token itself is not a fixed unit. Anthropic documents that Claude 4.7 and later use a newer tokenizer producing roughly 30% more tokens for the same text. Cost per completed task is the only comparison that survives a tokenizer change or a price revision.
The unit moved, and the spreadsheet did not
Every model comparison starts the same way: a table of prices per million tokens, sorted ascending. It is the wrong table, and one line in Anthropic's own pricing documentation says why.
Claude 4.7 and later models use a newer tokenizer, and Anthropic states that it produces approximately 30% more tokens for the same text, with the exact increase depending on content and workload shape. The price per token is not the price of anything stable. Two models at the same rate can charge differently for the identical prompt, and a model with a lower rate can cost more per task.
This is not a criticism of the change — the same documentation notes the tokenizer contributes to the models' performance. It is a criticism of the comparison. If the denominator moves, the ratio is not a ratio.
What is published
The figures that are actually fixed
| Lever | Published rate | What it depends on |
|---|---|---|
| Cache read | 0.1x base input | Whether the prefix repeats at all |
| Cache write, 5 minutes | 1.25x base input | Pays back after one read |
| Cache write, 1 hour | 2x base input | Pays back after two reads |
| Batch API | 50% off input and output | Latency being genuinely irrelevant |
| Sonnet 5, from 1 Sep 2026 | $3 / $15 per MTok | Introductory $2 / $10 runs to 31 Aug |
These are multipliers and dated prices rather than per-token comparisons, which is why they survive a tokenizer change. Read from Anthropic's pricing documentation on 5 August 2026.
The measurement that replaces the spreadsheet
Run your own prompts, not a benchmark suite. Fifty representative requests is enough to separate the candidates, and the usage figures come back on the response.
# For each candidate model, over ~50 real requests:
#
# billed_input = usage.input_tokens
# + usage.cache_creation_input_tokens
# + usage.cache_read_input_tokens
# billed_output = usage.output_tokens
#
# cost = billed_input * rate_in
# + billed_output * rate_out
#
# cost_per_task = total_cost / count(outputs a human accepted)
#
# The last line is the whole point. A model that is 20% cheaper per token
# and needs a second attempt on one request in five is more expensive.Note what is counted as input: cache writes and cache reads are billed input tokens, and leaving them out is the most common way a cost model comes out optimistic.
What to do before the September change
Sonnet 5 introductory pricing has a published end date, which makes this a rare case of a cost decision with a deadline attached.
- Check whether your forecast was built on $2 and $10 per million tokens. If it was, it changes on 1 September 2026.
- Find the prefixes that repeat. A system prompt or a document that is resent on every turn is the cheapest saving available and needs no model change.
- Separate the workloads that tolerate asynchronous responses. Those are worth 50% and nothing else on this list comes close.
- Measure cost per accepted output, not per token, before moving anything to a cheaper model.
- Put a team key on the request path. Every fix above is unattributable without one, which means nobody owns the result.
Related
- Claude cost audit — the same measurement run against your traffic rather than a sample
- Prompt caching and batch processing — the mechanics of the two largest levers in the table above
- LLM gateway for Claude — where the team key and the routing rule actually live
Questions this raises
Why is price per token a bad way to compare models?
Because a token is not a constant. Anthropic documents that Claude 4.7 and later models use a newer tokenizer producing approximately 30% more tokens for the same text, with the exact increase depending on content and workload shape. Two models priced identically per token can therefore differ materially in cost for the same input.
What should I compare instead?
Cost per completed task, measured on your own prompts. Run the same fifty representative requests through each candidate, record total billed tokens and whether the output was usable, then divide cost by successes. It takes an afternoon and it is the only figure that stays true after a price change.
Is Claude Sonnet 5 pricing changing?
Yes, and the date is published. Anthropic lists introductory pricing of $2 and $10 per million input and output tokens through 31 August 2026, with standard pricing of $3 and $15 taking effect on 1 September 2026. A forecast built on the introductory rate should be revisited before then.
How much does prompt caching actually save?
It depends on re-reads, and the multipliers are published. A five-minute cache write costs 1.25x the base input rate and a cache read costs 0.1x, so caching pays back after one read on the short duration and after two on the one-hour duration, which costs 2x to write. If nothing is re-read there is nothing to gain.
When is the Batch API worth using?
When latency genuinely does not matter. Anthropic prices it at a 50% discount on both input and output tokens, which is the largest single lever available, and the cost is that responses are asynchronous. It cannot be combined with fast mode, so a workload that needs speed is not a batch workload.
Have you benchmarked this yourselves?
Not yet, and we are not going to imply otherwise. The figures above are Anthropic's published documentation, read on 5 August 2026. A cost-per-task benchmark on a real corpus is on our list precisely because nobody appears to have published one, and when we have it the numbers here will be ours.
Next step
Measure it against your own prompts
A cost audit measures token shape, model mix and cache opportunity on your real traffic and reports cost per team. Two weeks, fixed price, and it starts by counting what you are actually sending rather than what you are paying per unit.
