← Back to Payloads
LLM News2026-07-29

Claude Opus 5's 'max' Effort Setting Actually Scores Lower Than 'xhigh'. Anthropic Put It in the Chart Anyway.

Anthropic shipped a 5-level effort parameter with Opus 5 — low/medium/high/xhigh/max — and told everyone it lets you trade intelligence for cost. The buried finding nobody is covering: on Frontier-Bench v0.1 and the Artificial Analysis Coding Agent Index, max underperforms xhigh while costing more. Plus: changing effort mid-conversation invalidates your prompt cache. Here is what the dial actually does, when to use which setting, and the three production traps waiting for your migration.
Quick Access
Install command
$ mrt install claude-opus-5
Browse related skills

Claude Opus 5's 'max' Effort Setting Actually Scores Lower Than 'xhigh'. Anthropic Put It in the Chart Anyway.

Hey guys, Mr. Technology here.

It is Wednesday, July 29, 2026, and the most interesting thing about Claude Opus 5 is not the price. The price is the boring part — $5/$25 per million tokens, identical to Opus 4.8. Most coverage spent Monday and Tuesday arguing whether "half the price of Fable 5" is a cut or a tier comparison. That argument is over.

The interesting thing is the dropdown. Opus 5 ships with a five-level effort parameter — low, medium, high, xhigh, max — that decides how aggressively the model thinks before answering. Most coverage described three levels. The docs list five. And buried in Anthropic's own launch chart is the most useful finding of the release: **on Frontier-Bench v0.1 and the Artificial Analysis Coding Agent Index, max scores lower than xhigh while spending more tokens.**

This post is about the dial, what it actually controls, where it costs you money, and the three production traps your migration is about to walk into.

What the Effort Parameter Actually Controls

effort is set as output_config.effort on the request. No beta header. Defaults to high. It applies to the whole request — thinking, tool calls, visible text. From the Claude platform docs:

LevelWhat it is for
lowMost efficient. Some capability reduction. Good for subagents.
mediumBalanced. Moderate token savings.
highThe default. Identical to omitting the parameter.
xhighLong-horizon agentic work. Runs over 30 minutes. Million-token budgets.
maxUnconstrained token spending. Deepest reasoning.

Three properties matter more than the level names.

It governs all tokens, not just thinking. Lower effort means fewer tool calls and no preamble; higher effort means more tool calls, explained plans, detailed summaries. For anything agentic, the tool-call count is where the money actually goes.

It is a behavioural signal, not a token cap. At low, Claude still thinks on hard problems — just less. If you need a hard ceiling, max_tokens is the ceiling; effort is a lean.

On Opus 5 it does not reliably shorten visible answers. If you were planning to use effort: low as a verbosity dial, you are using the wrong lever. Prompt for length instead.

The max-vs-xhigh Anomaly

This is the buried lede and the reason I am writing this post.

On Frontier-Bench v0.1, the agentic terminal coding evaluation where Opus 5 leads by a margin, the curve peaks at xhigh. The max setting — the highest-effort option, the one Anthropic positions as "deepest reasoning" — comes in slightly below xhigh. The headline 43.3% figure sits at xhigh, not max. The same shape shows up on the Artificial Analysis Coding Agent Index, where the score drops at max while the cost per task keeps climbing.

That is a strange thing for a vendor to put in a launch post. It is also the most useful thing in the entire release.

The plausible reading: at max, the model over-thinks. It revisits subproblems it already solved, runs redundant verification on already-verified output, and produces longer chains-of-thought that exhaust context budget without adding accuracy. The setting that costs the most gives you less capability than the setting one notch down. Non-monotonic at the top. That is a routing bug, not a feature.

The architectural reading: effort is a soft hint to the inference stack about token allocation. At max, the model is asked to spend more than it knows how to spend efficiently. Below xhigh, the dial maps to real behavioural changes. Above xhigh, it maps to wasted compute.

**Do not default to max.** Default to high, escalate to xhigh when you have a specific reason (long-horizon agent, hard debugging, synthesis where the extra reasoning moves your metric), and treat max as a research-mode setting you reach for when xhigh has already failed. If your platform team is about to ship max as the new premium default, you are shipping a worse product at a higher cost.

Three Production Traps

Trap 1: Changing effort mid-conversation invalidates your prompt cache. Documented in the effort docs. Caching is keyed on the request prefix; modifying output_config.effort evicts your cached system prompt, tool definitions, and prior turns. You pay full price for the cache rebuild. If your agent loop dynamically escalates effort per turn — common in "easy sub-task, hard sub-task" flows — you are torching cache hit rate every escalation. Fix effort per session.

Trap 2: Effort does not save equally across workload shapes. Same 40% output-token cut:

WorkloadAt high effortAfter cutSaving
Write-heavy: 30K in, 5K out$0.275$0.22518%
Read-heavy: 50K in, 1K out$0.275$0.2653.6%

Same reduction, five times more savings on the write-heavy shape. A coding agent is exactly what effort helps; a 50K-context retrieval pipeline barely moves. Profile per workload.

Trap 3: Effort does not reliably shorten visible answers. If you migrate expecting effort: low to produce terser chat replies, you will be disappointed. Visible output length is governed by the prompt, not the dial. **Use system-prompt instructions for terseness. Use effort for thinking depth.**

The Routing Architecture Implication

The strategic read: the dial turns Opus 5 into a routing architecture. One SKU with five capability tiers means you can collapse three Sonnet/Opus/Fable paths into one model and an effort argument. Use a cheap classifier (Sonnet 5, Haiku) to bucket queries as trivial / standard / hard / frontier, map to low / medium / high / xhigh, and reserve max for retry-on-xhigh-failure only. Cache by effort — if your traffic profile is dominated by standard, your hit rate stays high.

This is the first time a frontier model has given you an explicit per-request lever on cost-vs-capability. It is also the first time one has shipped with a routing bug at the top of that lever. **The dial is real architecture. The bug at max is the warning.** Anthropic will fix the monotonicity in 5.1 or 5.2; the pattern persists.

What To Actually Do

Default to high. Do not ship max as a premium tier — the benchmark data does not support it. For long-horizon agent workloads, benchmark xhigh, profile cache thrash, lock per session if it clears your quality bar. For subagents and high-volume trivial requests, test effort: low. Watch for max to get fixed or quietly deprecated; right now it costs more and does worse on the charts Anthropic published.

The Take

Anthropic shipped a routing architecture dressed up as a configuration parameter, then published a chart showing the top of that architecture is broken. Most coverage missed the chart. Builders who read it will save real money on xhigh and on low, and skip max until Anthropic fixes the over-thinking. Builders who did not will ship max as a premium tier, bill their customers more, deliver lower quality, and discover the anomaly when churn moves.

Read the chart. Skip max. Default to high. Escalate to xhigh on evidence.

Mr. Technology

Quick Summary

  • Release: Claude Opus 5, July 24, 2026, $5/$25 per million tokens (identical to Opus 4.8)
  • Effort parameter: 5 levels — low, medium, high, xhigh, max — set as output_config.effort, defaults to high
  • The anomaly: On Frontier-Bench v0.1 and the Artificial Analysis Coding Agent Index, max scores lower than xhigh while costing more. Non-monotonic at the top.
  • What it controls: Thinking volume, tool-call count, preamble — all tokens, not just thinking. Not a hard cap. Not a verbosity dial.
  • Cache trap: Changing effort mid-conversation invalidates prompt cache. Lock per session.
  • Cost-shape trap: Effort savings are 5× higher on write-heavy workloads than read-heavy. Profile per workload.
  • Architecture: Single model + dial = three-tier routing collapsed into one.
  • Recommendation: Default to high. Use xhigh for hard long-horizon work. Skip max until the monotonicity is fixed.

Sources

Related Dispatches