Claude Sonnet 5 Effort Levels: What Adaptive Thinking Costs Claude Sonnet 5, shipped June 30 by Anthropic, introduces a five-position effort dial that controls thinking tokens per request, with adaptive thinking enabled by default and a new tokenizer producing 30% more tokens than Sonnet 4.6, creating a hidden cost multiplier for developers. Standard pricing takes effect September 1, and developers must explicitly opt out of thinking via `thinking={"type": "disabled"}` on the Anthropic API, while Amazon Bedrock users cannot disable adaptive thinking on Sonnet 5. At `xhigh` effort, Sonnet 5 can cost more than Opus 4.8 at high effort for the same quality, and adaptive thinking should be disabled for structured extraction tasks to avoid truncated JSON output. Claude Sonnet 5 shipped June 30 with a five-position effort dial that controls how many thinking tokens the model burns per request. The default is high . Most developers haven’t touched it. Pair that with a new tokenizer producing 30% more tokens than Sonnet 4.6, and you have a hidden cost multiplier running inside every agent loop you’ve deployed. Standard pricing hits September 1. https://platform.claude.com/docs/en/about-claude/models/whats-new-sonnet-5 Here’s what the dial does and how to set it before the bill arrives. What Adaptive Thinking Actually Is Extended thinking on Sonnet 4.6 was opt-in. You passed thinking: {type: "enabled", budget tokens: N} to enable it. On Sonnet 5, that parameter is gone — it returns a 400 error. In its place is adaptive thinking, which is on by default for every request. The behavioral change catches teams off guard: on Sonnet 4.6, omitting the thinking field meant no thinking. On Sonnet 5, omitting it enables adaptive thinking. If your integration never used extended thinking, you’re getting it now unless you explicitly opt out. One thing worth knowing about the display setting: it controls what comes back in the response, not what gets billed. Setting display to "omitted" — the new default — hides thinking output but does not stop thinking from happening. You pay for it either way. To actually disable thinking, pass thinking={"type": "disabled"} . Note: that option exists on the Anthropic API. On Amazon Bedrock, you cannot disable adaptive thinking on Sonnet 5. The Five Effort Levels Effort is a behavioral signal, not a hard token cap. The model uses your setting to calibrate how much to think, but it retains discretion. Here’s the practical breakdown: | Level | Token Usage | When to Use | |---|---|---| low | Minimal | Chat, simple classification, latency-sensitive high-volume work | medium | Moderate | Cost-sensitive tasks; roughly Sonnet 4.6 at high effort | high | Balanced default | Complex reasoning, coding, agentic tasks | max | Heavy | Extended autonomous work, multi-step planning | xhigh | Maximum | Hardest coding and agentic tasks | The effort parameter lives in output config . You can set it per request — every call can carry a different effort level. That’s the point: a classification task and a debugging session shouldn’t share the same setting. See Anthropic’s effort documentation https://platform.claude.com/docs/en/build-with-claude/effort for the full parameter reference. response = client.messages.create model="claude-sonnet-5", max tokens=16000, output config={"effort": "medium"}, messages= {"role": "user", "content": "..."} The xhigh Trap At xhigh effort, Sonnet 5 performs roughly at Opus 4.8’s high-effort level on agentic benchmarks. Benchmark data from independent evaluators puts them close on OSWorld and BrowseComp. But at xhigh , Sonnet 5 can cost more than Opus 4.8 at high effort for the same quality output. The rule follows directly: if you need Opus 4.8-class quality, use Opus 4.8. Don’t escalate Sonnet to its ceiling — you end up paying flagship prices for a model that isn’t the flagship. Turn Thinking Off for Structured Extraction Adaptive thinking and structured extraction don’t mix well. For tasks where you’re asking the model to read input and emit a fixed JSON schema — extraction, form filling, strict classification — thinking competes with output tokens within the max tokens budget. The model thinks first, uses up tokens, then clips the JSON output. You get a truncated or empty result with no obvious error message. This edge case is well-documented https://ian-provencher.com/tips/sonnet-5-thinking-off-for-extraction/ but easy to miss during migration. The fix is one line: response = client.messages.create model="claude-sonnet-5", max tokens=2048, thinking={"type": "disabled"}, messages= {"role": "user", "content": "Extract these fields as JSON: ..."} There’s no reasoning to do in a pure extraction task. Disabling thinking here doesn’t cost you quality — it prevents a silent failure mode. The September Cost Math Introductory API pricing through August 31: $2 input / $10 output per million tokens. Standard pricing starting September 1 https://platform.claude.com/docs/en/about-claude/models/migration-guide : $3 input / $15 output — a 50% increase on both sides. Layer that on top of the tokenizer change. The same prompt that cost X on Sonnet 4.6 uses 30% more tokens on Sonnet 5. Independent benchmark data shows an average task costs $2.29 on Sonnet 5 versus $1.20 on Sonnet 4.6, at current introductory prices. After September 1, untuned agent loops built on Sonnet 5 can run 2–3x what the same workload cost on 4.6. The introductory price is masking that. Most teams won’t notice until the September bill arrives. Three Settings to Check Before September 1 First: audit every integration running Sonnet 5 and set output config={"effort": ...} explicitly. Don’t accept the default high for workloads that don’t need it. Classify tasks into simple use low or medium , standard use high , and exceptional use max or xhigh . Second: add thinking={"type": "disabled"} to any extraction or strict structured output workflow. The adaptive thinking default is not appropriate for those tasks. Third: re-run token counts against Sonnet 5 before you finalize max tokens limits. Counts from Sonnet 4.6 don’t transfer — the new tokenizer changes the math. A max tokens limit tuned for 4.6 may truncate equivalent output on Sonnet 5. The adaptive thinking documentation https://platform.claude.com/docs/en/build-with-claude/adaptive-thinking covers how to leave adequate headroom for thinking tokens. The effort dial is there precisely because different tasks need different amounts of compute. The default is a reasonable starting point for general use — but it’s not the right answer for everything, and it costs more starting in 34 days.