Guides / thinking token cost
What extended thinking costs, and why the number you see is smaller
Thinking tokens bill as output tokens whether or not the reasoning is shown to you, so the visible text understates what you paid. A separate usage field reports the real figure. Culpa, a local-first LLM cost, margin, and forecast ledger, prices each call from the totals the provider reports rather than from what came back visible.
Why this happens
Reasoning models produce two kinds of output and you're billed for both. Anthropic states it directly: the tokens spent reasoning are billed as output tokens even when the thinking text isn't returned to you. The display setting changes what you see and nothing about what you owe, and the docs carry an explicit warning that the billed count doesn't match the visible one. So a response that looks like 40 tokens of answer can carry several hundred tokens of reasoning underneath it, and anything estimating cost from response length is wrong by whatever the model decided to think. There are two further consequences worth knowing. Thinking counts toward your max_tokens, so reasoning and answer compete for the same budget and a cap sized for a plain response gets truncated once thinking starts. And thinking blocks from earlier turns that stay in context bill again as input tokens on every subsequent request.
What this usually looks like
- Output token counts look higher than the responses you can read.
- You estimated cost from response length and the bill came in above it.
- Responses stop mid-answer with a max_tokens stop reason.
- Cost per call rose after enabling reasoning and nobody sized it first.
- Your cache hit rate fell after someone tuned the effort setting.
Free, no card, no account
Run the free Cost Leak Scan
It shows your most expensive conversation before you install anything.
Mistakes that cost the most
| Mistake | Why it hurts | Do instead |
|---|---|---|
| Estimating cost from the visible response. | Hidden reasoning is billed too, so the visible text is a floor rather than the figure. | Read the reported output total, and the thinking breakdown beside it. |
| Hiding the reasoning to save money. | The display setting changes what you see, not what you're billed, so it saves nothing. | Lower the effort level, which changes how much reasoning happens in the first place. |
| Sizing max_tokens for the answer alone. | Reasoning and answer share that budget, so the answer gets truncated once thinking starts. | Size it for both, and treat a max_tokens stop reason as a budgeting signal. |
| Changing effort mid-conversation to tune cost. | The effort value is rendered into the prompt, so changing it invalidates the cache underneath. | Pick a level per conversation and steer individual turns by prompt instead. |
Run this check tonight
- Read the thinking breakdown on a recent call and compare it to the total output.
- Work out what share of your output tokens is reasoning rather than answer.
- Check whether any responses are stopping at max_tokens.
- See whether effort is set once per conversation or changing between turns.
What one effort change costs, from Anthropic's own trace
Anthropic's thinking documentation, read 2026-08-05, demonstrates that changing the effort level invalidates the prompt cache, and publishes the usage from a three-request script on Claude Opus 4.8. Request two reads 3,546 cached tokens. Request three, identical except that effort moves from the default to medium, re-creates the same 3,546 rather than reading them. Rates are the price book's real Opus 4.8 figures: $0.50 per million for a cache read and $6.25 for a 5-minute cache write. Both the token count and the behaviour are published.
Twelve and a half times, on a change made to save money. The cache multipliers are published and the token count is Anthropic's own, so this isn't an edge case someone constructed. It's what happens whenever a conversation retunes its effort between turns, and it scales with how much context you had cached.
Every number, with its confidence and source
| Figure | What it means | Confidence | Source |
|---|---|---|---|
| 12.5x | cost of a cache write against the cache read it replaces when an effort change invalidates the cache | calculated | Anthropic's pricing page publishes cache multipliers of 1.25x base input for a 5-minute write and 0.1x for a read, which on Claude Opus 4.8 is $6.25 and $0.50 per million against $5.00 base. $6.25 / $0.50 = 12.5. Applied to the 3,546 cached tokens in Anthropic's own published effort-change trace, the write costs $0.022163 against the read's $0.001773, a difference of $0.020390. Both the multipliers and the token count are published. |
What a generic answer can’t know
The reasoning share is reported per call and nowhere else. It isn't on an invoice, it isn't derivable from a response, and it varies request by request because the model decides how much to think based on what you asked. That makes it exactly the kind of number that has to be captured at the call or not at all. Culpa records the totals the provider reports and prices them from a versioned price book in exact decimal, so reasoning cost lands inside your per-call figures rather than as a surprise in the monthly total, and it carries whatever identifiers you attach. The question worth asking then stops being what thinking costs in general and becomes which feature, prompt version or customer is triggering it most, which is answerable from your own traffic and from nothing else.
Questions founders ask next
Are thinking tokens billed?
Yes, as output tokens. Anthropic's documentation states the tokens spent reasoning are billed as output even when the thinking text isn't returned to you, and warns that the billed output count doesn't match the visible one. You pay for the full reasoning process rather than the part you can read.
Does hiding the reasoning make it cheaper?
No. The display setting changes what comes back, not what's charged, and the docs say what you're billed is the same regardless. Generating the summary itself carries no charge. To spend less on reasoning you have to cause less of it, which means the effort level rather than the display.
How do I see how much of my output was reasoning?
The response carries a thinking breakdown inside its usage figures, separate from the total. Subtract it from the output total to approximate the answer itself. When streaming, that breakdown arrives only on the final event, which is another reason to read the last usage event rather than the first.
Why did my cache hit rate drop after tuning effort?
Because the resolved effort value is rendered into the prompt, so changing it invalidates cache breakpoints exactly as changing the prompt would. In Anthropic's own published trace that turned a 3,546-token cache read into a 3,546-token cache write, which costs 12.5 times as much.
On your infrastructure
Culpa runs on your infrastructure. Your prompts and responses never leave it. Culpa counts calls to run your plan, and it fails open, so if it ever breaks your app keeps running.
How Culpa works
Find the culprit. Not just the total.
Your dashboard shows what you spent. It stops short of who spent it. Culpa shows the conversation, the user and the feature behind it.
Your prompts stay local.
Culpa runs on your own infrastructure. What you send to a model reaches us at no point.
Every dollar has a name.
Follow any charge to the conversation, the user, the feature and the customer behind it.
See the bill before it lands.
Cost your next feature before you ship it. You get the likely bill and the worst case, at best, median, p90 and p99.
Three steps to your first answer.
Change one base URL.
Or drop in the Python or TypeScript library.
Find your most expensive conversation.
In the first session, not the first week.
Cost your next feature before you ship it.
Why the bill went up
Example dashboardCalls traced
418,209
across 3 projects
Spend this week
$378.41
+ $182 vs last week
Failed calls
312
74% retried, and you paid for all of them
+ $182 this week traced to one culprit
Spend over 14 days
Most expensive users
Next week forecast
Graded against reality. Accuracy shown as results land.
Keep reading
Sources: Anthropic, steering thinking and its cost, Anthropic, thinking, Anthropic pricing. Last reviewed 2026-08-05, rates effective 2026-07-02. Plain text version.