A better model should need fewer attempts. Fewer attempts should mean a smaller bill. That is the intuition, and my invoice has disagreed with it three times now.
The price per token had gone down, so it was not a price change.
Reasoning models do a block of internal work before answering. OpenAI's reasoning guide states it directly: while reasoning tokens "are not visible via the API, they still occupy space in the model's context window and are billed as output tokens."
The volume is the surprising part. The same page says models "may generate anywhere from a few hundred to tens of thousands of reasoning tokens" and recommends "reserving at least 25,000 tokens for reasoning and outputs" when you start.
Anthropic bills the same way. Its extended thinking docs point you at usage.output_tokens_details.thinking_tokens, which "reports how many of the billed output tokens were internal reasoning."
The answer on your screen might be 200 tokens. The output you paid for might be 12,000.
| Cause | What changes |
|---|---|
| Price per token | Higher on the bigger model. The part everyone expects. |
| Reasoning tokens | Billed as output, invisible, scale with perceived difficulty. |
| Effort defaults | Newer models often think by default. Your prompt did not change, the thinking did. |
Only the first is a price change. That is why the rate can fall while the bill climbs.
The old model was not doing the job more cheaply. It was doing a smaller job.
Ask both whether a layout looks right. The older one glances and answers. The newer one works out what "right" means here, weighs a couple of readings, notices the spacing is ambiguous, resolves it, then replies. Identical prompt. The extra work is where the money went, and usually it is worth it.
It stops being worth it when the thinking goes on something you could have just said.
A vague input to a weak model gave a wrong answer, cheaply. A vague input to a strong model gives a right answer after the model has spent real tokens working out what you meant.
Screenshots are the clearest case, since they are ambiguous by construction. "Fix the alignment" plus a picture of a busy screen means the model has to figure out which of forty elements you mean. Nothing in the image says. So it reasons, and you are billed for the reasoning.
Both vendors expose the count, so you can check rather than argue about it: output_tokens_details.reasoning_tokens for OpenAI, usage.output_tokens_details.thinking_tokens for Anthropic. Run one real task with a tight prompt and a loose one and compare that field, not the total.
I build a screenshot tool, so my interest in the ambiguity half is not neutral. The token fields are, though. Go and look at yours.