Cost Optimization & FinOps

Extended Thinking Token Budgets as a Cost Control

Reasoning tokens bill at the full output rate — the most expensive tokens on the price list. Budgeting them per request is how you buy exactly as much thinking as each task deserves.

Claude 3P 101 · Updated July 2026 · Unofficial guide

When Claude reasons through a hard problem before answering — "extended thinking" or "adaptive thinking," depending on the model — every reasoning token is billed as an output token. On Claude Opus 4.8 that's $25 per million; on Claude Fable 5, $50. A request that thinks for 10,000 tokens before producing a 500-token answer spends 95% of its output budget on work you may never read. That makes thinking depth one of the most direct cost dials you have — and one worth setting deliberately per endpoint, not leaving at the default everywhere.

Two generations of dial

Manual budgets (budget_tokens). On models that support manual extended thinking — Claude Haiku 4.5, Claude Opus 4.5, and earlier Claude 4 models — you enable thinking with an explicit ceiling: thinking: {"type": "enabled", "budget_tokens": N}. The budget must be less than max_tokens, and Claude may not use all of it, especially above 32k. This is a hard-cap style of control: worst-case reasoning spend is known before you send the request.

Effort levels. On the current flagships the manual knob is gone: Claude Fable 5, Opus 4.8, Opus 4.7, and Sonnet 5 reject budget_tokens with a 400 error, and it is deprecated on Opus 4.6 and Sonnet 4.6. These models use adaptive thinking — Claude decides whether and how much to think — steered by output_config: {"effort": ...} with levels low, medium, high (the default), xhigh, and max. Effort is a behavioral signal rather than a strict cap: at low effort the model still thinks on genuinely hard problems, just less. On simple queries at lower effort it may skip thinking entirely — spend drops to zero exactly where thinking wasn't adding quality.

Rule of thumb: on adaptive-thinking models, max_tokens remains your hard ceiling — thinking tokens count toward it — and effort is your average-spend dial. Set both: effort to match task difficulty, max_tokens to bound the worst case.

A manual budget in practice

Claude Haiku 4.5 supports manual extended thinking on all four platforms. On Amazon Bedrock:

from anthropic import AnthropicBedrockMantle

client = AnthropicBedrockMantle(aws_region="us-east-1")
msg = client.messages.create(
    model="anthropic.claude-haiku-4-5-20251001-v1:0",
    max_tokens=6000,
    thinking={"type": "enabled", "budget_tokens": 4000},
    messages=[{"role": "user", "content": "Reconcile these two ledgers..."}],
)
print(msg.usage.output_tokens)

Here reasoning can consume at most 4,000 of the 6,000 output tokens; the worst-case output cost is 6,000 × $5/1M = $0.03 per request on Haiku 4.5's $5/MTok output rate.

Budgeting without sacrificing quality

Segment endpoints by difficulty. A FAQ-answering endpoint and a contract-analysis endpoint should not share a thinking configuration. Route easy, high-volume traffic to low effort (or a model without thinking) and reserve xhigh/large budgets for the tasks where reasoning measurably improves outcomes.

Measure what thinking actually costs you. The response reports usage.output_tokens_details.thinking_tokens — billed reasoning tokens, always a subset of output_tokens. Log it per endpoint. If thinking tokens dominate output on a task whose accuracy doesn't change at lower effort, you've found free savings.

Don't confuse visibility with cost. Setting thinking.display to "omitted" hides reasoning text and speeds up streaming, but you are still charged for the full thinking tokens generated. Omitting reduces latency, not cost. Likewise, summarized thinking bills for the full reasoning generated, not the summary shown.

Watch stop_reason. If responses end with stop_reason: "max_tokens", thinking plus answer hit your ceiling and the answer may be truncated — a quality failure that often triggers an expensive retry. Raise max_tokens or lower effort rather than letting truncation churn.

One more budgeting nuance: on models that preserve prior thinking blocks in multi-turn conversations (Opus 4.5+, Sonnet 4.6+, Fable 5), passed-back thinking counts as input tokens on later turns — cheaper than output, but not free. Long agentic sessions accumulate it.

Where to go next

Thinking budgets pair naturally with output length budgeting — one bounds the reasoning, the other the answer. For where thinking tokens land on the invoice, see the token bill anatomy.

Sources