Skip to main content
Back to Blog
["reasoning-models""thinking-tokens""cost-optimisation""model-routing"]

"The hidden cost of thinking tokens: why your reasoning model bill is 10x what you expect"

Stephen Keegan5 min read

# The hidden cost of thinking tokens: why your reasoning model bill is 10x what you expect

If you replaced your non-reasoning models with reasoning models and saw your AI bill spike 5x, 10x, or more, the culprit is probably not what you think. It is not that the per-token price is higher (though it often is). It is the hidden thinking tokens.

Here is the mechanics, the four production failure patterns I have seen most often, and the structural fix.

The billing asymmetry nobody documents clearly

Reasoning models (Claude extended thinking, OpenAI o-series, Gemini thinking, DeepSeek R1) generate an internal chain-of-thought before producing the visible answer. These thinking tokens are invisible: they never appear in the response content field. The API returns 500 tidy words, but the model may have burned 10,000 to 40,000 thinking tokens to produce them.

And those thinking tokens are billed at the output token rate.

Here are the numbers as of mid-2026. A single complex request to Claude Opus 4.7 with extended thinking enabled can spend 20,000-40,000 thinking tokens before emitting 500 visible tokens. At $25/M output, that is $0.50-$1.00 in thinking alone per call. The visible 500 tokens cost you $0.0125. You just paid 40-80x more for the thinking than the answer.

| Model | Output rate | Typical thinking per complex query | Cost of thinking per call | Cost of visible 500 tokens |

|---|---|---|---|---|

| Claude Opus 4.6/4.7 | $25/M | 20K-40K | $0.50-$1.00 | $0.0125 |

| Claude Sonnet 4.6 | $15/M | 15K-30K | $0.23-$0.45 | $0.0075 |

| Gemini 2.5 Pro | $10/M | 10K-25K | $0.10-$0.25 | $0.005 |

| DeepSeek R1 | $2.19/M | 20K-40K | $0.04-$0.09 | $0.001 |

| OpenAI o4-mini | $12/M | 10K-20K | $0.12-$0.24 | $0.006 |

DeepSeek R1 is the outlier here: its output rate is low enough that even 40K thinking tokens cost less than a dime. The Claude and OpenAI models are where this really hurts.

The asymmetry runs deeper. Thinking tokens also count against your max_tokens budget, which means a request with max_tokens: 10 to Gemini 3.1 Pro returns empty -- finish_reason is "length", no visible output at all, but you still paid for the thinking. This is not a bug, it is the billing model.

Four production failure patterns

I have seen the same four scenarios play out across teams that turned on reasoning models and then looked at the invoice.

1. Translation pipeline, 60x cost increase

A team routing real-time translation through a reasoning model because they wanted "higher quality." Each request was short (50-100 input tokens). The model spent 5,000-10,000 thinking tokens wondering about context and nuance before producing a 50-token translation. Their cost per task went from ~$0.0002 (non-reasoning) to ~$0.012 (reasoning). For a pipeline doing tens of thousands of requests per day, their monthly bill jumped from $600 to over $36,000.

The translation quality was identical. A non-reasoning model handles this task cleanly.

2. Code agent hitting max_tokens mid-loop

A team running an autonomous code agent set max_tokens: 4096 (a common default from SDK tutorials). The agent's first turn consumed 3,100 of those tokens in thinking alone, leaving only 996 for actual code output. Half the time the agent hit the cap mid-function, returned truncated code, and the agent loop retried -- compounding the cost with retry bills on top of already-bloated thinking.

Fix: set max_tokens to at least 4x your expected visible output when using reasoning models, as the thinking budget typically lands at 1-2x visible output.

3. Structured extraction, paying for philosophy

A team extracting fields from invoices (date, amount, vendor) using a reasoning model. The model spent 8,000 tokens reasoning about the nature of "amount" before outputting a JSON object. Non-reasoning models handle structured extraction at a fraction of the cost: same accuracy, no philosophy.

4. Long-form analysis that earns its keep

The one case where the cost is justified: complex code review on a 2,000-line PR diff, or multi-step contract analysis. Here the reasoning model catches edge cases a non-reasoning model misses, and the 20,000 thinking tokens produce a materially better analysis. The cost is high but the alternative (a missed bug in production, a poorly negotiated contract) is higher. Route these to reasoning models deliberately, not by default.

The structural fix: route at task granularity, not model granularity

The single most expensive decision a team can make is setting a reasoning model as the default for everything. It feels safe. It is the most expensive default you can pick.

The better approach is task-level routing. Simple tasks (translation, extraction, classification, summarisation, routing) go to non-reasoning models. Complex tasks (multi-step reasoning, code review on large diffs, ambiguous requirements, contract analysis) go to reasoning models with explicitly configured thinking budgets.

Some practical rules of thumb:

  • Set explicit thinking budgets. Claude's budget_tokens parameter is a hard cap. Start with 2,000-4,000 for simple reasoning, 8,000-16,000 for complex analysis. Do not leave it at default.
  • Monitor usage.reasoning_tokens in API responses. Every major provider exposes this. If you are not looking at it, you are flying blind.
  • Use non-reasoning models for structured output. JSON extraction, classification, and formatting do not benefit from chain-of-thought. They cost more for no gain.
  • Check finish_reason for "length" with zero output tokens. That is the max_tokens trap. If you see this pattern, raise the cap or switch to a non-reasoning model.
  • Batch reasoning workloads if latency permits. Anthropic offers 50% batch pricing on output tokens, which halves the thinking token bill.

The goal is not to avoid reasoning models. They are genuinely useful for hard problems. The goal is to stop paying for reasoning on tasks that do not need it. Most teams I talk to are spending 5-10x more than they need to because they never checked what their models were doing before answering.

When did you last audit which tasks in your pipeline are running through reasoning models and whether they need to be?

Share

Start saving today

Know exactly where your LLM money goes.

Cost wraps your Anthropic, OpenAI, and Gemini clients in one line. Free tier covers 100,000 events per month. No card needed.

Start tracking your spend