Skip to content
~/smaje.net

Reasoning effort in Claude Code and Codex: where max stops paying

On Artificial Analysis's Terminal-Bench runs, Opus 5.5 scores the same at xhigh and max but takes five times as long to start answering. My levels, and why.

12 min read

Tags: ai · agents · tools · models

On this page

In April my Claude Code effort dropped to medium without my noticing. I was running Opus at max for anything hard, and it took a few tasks of noticeably worse code before I worked out why. I told colleagues to check theirs.

Effort controls how much a model reasons before and while it answers. Claude Code offers low, medium, high, xhigh and max, and Codex uses the same scale with friendlier labels in its app, where low is Light and xhigh is Extra High. The level that works best has moved with nearly every release, and the biggest change for me is that I no longer use max. On Artificial Analysis's Terminal-Bench 4.0 runs, Opus 5.5, Fable 5.1 and GPT-6 Astra gain nothing above xhigh, and Opus 5.5 at max takes more than five times as long as xhigh to start answering.

On GPT I've come down a step with each flagship release, from xhigh on GPT-5.4 in the spring to medium on GPT-6 Astra. On Claude I dropped to high for Fable 5, which gained little above it, then went back up to xhigh for Fable 5.1 and Opus 5.5. The names don't mean the same thing from one model to the next, so I settle on a level for each new model instead of carrying one over.

The effort levels I use now

ModelMy usual levelSmall editsHard tasksUse it for
Claude Opus 5.5xhighhighxhighMost coding
GPT-6 AstramediummediumhighReviews and investigations
GPT-6.1 Solmediumlowhigh, or AstraCheaper GPT work
Claude Fable 5.1xhighUse Opus 5.5xhighDesign direction

These are my settings in October 2026, not vendor defaults. Standard API prices per million input and output tokens are $4 and $20 for Opus 5.5, $2 and $10 for GPT-6.1 Sol, and $10 and $50 for both Astra and Fable 5.1. In agent loops most input is cached, and cache reads rank differently: $0.10 for Sol 6.1, $0.20 for Opus, $0.25 for Fable and $1 for Astra. Subscriptions meter usage in their own way, which my guide to paying for Claude Code and Codex covers.

The benchmarks in this post come from vendor and third-party runs, each with its own harness: the tools, prompts and limits the model runs inside. Compare effort levels within a chart, not one chart with another.

Opus 5.5 is my favourite. Anthropic defaults it to medium and I run it at xhigh, but the case for xhigh over high is thin. On Terminal-Bench 4.0 it scores two or three points more, within the run-to-run noise, and Anthropic's own FrontierCode and CursorBench results show no gain above high. I still prefer xhigh for long coding tasks. For small edits I'd try high, which starts answering in a quarter to a third of the time. Plenty of people stay on medium, and two small independent tests found it as good as the higher settings: on Vals' Vibe Code Bench, Opus 5.5 scored 91.5% at medium against 89.8% at max, and HumanLayer's SlopCodeBench run had medium slightly ahead of xhigh.

I keep GPT-6 Astra at medium for routine work, where it already gets close to its best DeepSWE score, and move to high for reviews and investigations, where missing a difficult bug costs more than the run. I also like a review to come from a different model family from the one that wrote the code.

GPT-6.1 Sol is what I switch to when I want to spend less. Its API prices are a fifth of Astra's. On DeepSWE, an independent coding benchmark, Astra at medium scores 72.8% for $3.08 a task. OpenAI's launch post puts Sol 6.1 at medium on 73.0% for $0.42, about a seventh of the cost, though it doesn't say who ran Sol 6.1 or how, and the leaderboard hadn't added it by mid-October. A coding score also doesn't show how well a model reviews, so I'd compare findings on my own code before moving reviews to it.

Supporting evidence: GPT-6.1 Sol on Artificial Analysis's index
Artificial Analysis Intelligence Index by effort, GPT-6 models
  • GPT-6 Sol
  • GPT-6.1 Sol
  • GPT-6 Astra
Chart data below

Intelligence Index v4.3, accessed 30 September 2026. Cost per task: GPT-6.1 Sol $0.21 at medium, GPT-6 Sol $1.05 at max, GPT-6 Astra $1.54 at medium. Time to first answer token: GPT-6.1 Sol 5.7 s at medium, GPT-6 Sol 186 s at max. Sources: Artificial Analysis: GPT-6 Sol, GPT-6.1 Sol and GPT-6 Astra.

View chart data: Artificial Analysis Intelligence Index by effort, GPT-6 models
Artificial Analysis Intelligence Index by effort, GPT-6 models
EffortGPT-6 SolGPT-6.1 SolGPT-6 Astra
low33.942.145.8
medium39.847.849.6
high42.850.250.9
xhigh44.151.052.4
max47.551.852.7

Artificial Analysis's Intelligence Index, which combines several of its benchmarks into one score, points the same way. Sol 6.1 at medium scores 47.8, level with its predecessor GPT-6 Sol at max, for about a fifth of the cost per task, and starts answering in about 6 seconds where GPT-6 Sol at max takes about 3 minutes. Above high the sources disagree: the index keeps creeping up, while OpenAI's DeepSWE runs peak at 75.2% at high and fall to 71.9% at xhigh and max. Either way, high is as far as I'd take it.

Sonnet 5.5 costs the same per token as Sol 6.1, but I don't use it as a cheaper Opus. It needs much more effort to get close to Opus 5.5, and by then it costs more. On Anthropic's runs of Terminal-Bench 4.0, a benchmark of command-line tasks, Opus at high scored 64.2% for $3.88 an attempt and Sonnet at xhigh scored 61.5% for $4.34, even after Anthropic halved Sonnet's cache-read price on 7 October.

Supporting evidence: Sonnet 5.5 against Opus 5.5 by effort
Terminal-Bench 4.0 by effort, Sonnet 5.5 and Opus 5.5 (%)
  • Claude Sonnet 5.5
  • Claude Opus 5.5
Chart data below

Anthropic's runs in Claude Code, not comparable with Artificial Analysis's runs later in the post. Cost per attempt from low to max: Sonnet 5.5 $0.62, $0.68, $1.46, $4.34 and $10.44 after its 7 October cache-read price cut; Opus 5.5 $1.29, $2.94, $3.88, $7.35 and $11.24. Sources: Anthropic's Claude Sonnet 5.5 announcement and Claude Haiku 5.5 announcement.

View chart data: Terminal-Bench 4.0 by effort, Sonnet 5.5 and Opus 5.5 (%)
Terminal-Bench 4.0 by effort, Sonnet 5.5 and Opus 5.5 (%)
EffortClaude Sonnet 5.5Claude Opus 5.5
low20.038.5
medium28.857.6
high43.064.2
xhigh61.566.4
max70.664.8

At medium, Opus 5.5 scored 57.6% for $2.94 an attempt, and Sonnet 5.5 scored 28.8% for $0.68. Sonnet at max beat Opus's best score with 70.6%, at $10.44 an attempt. These are Anthropic's own runs on one benchmark, and they don't show which model is cheaper per successful task, because retries and failures count too.

Fable 5.1 stays at xhigh for design direction. I preferred its results on three recent redesigns, though it wasn't a fair test: Fable took over sessions where Opus had already made a first attempt. Opinion is split. Theo Browne still reaches for Fable on "a marketing page or some big design overhaul", while Every's Kieran Klaassen found Opus 5.5 as good as Fable and made it his daily driver. At two and a half times Opus's input and output price, I keep Fable for design.

What the setting does, and how to change it

On Claude, effort also changes how much the model writes and how many tool calls it makes, according to Anthropic's effort docs. Claude Code's model docs say the scale is calibrated per model, and OpenAI's Codex docs say effort levels "don't map exactly between model generations". Defaults differ too: in Claude Code, Opus 5.5, Sonnet 5.5 and Haiku 5.5 start at medium and most other models at high.

In Claude Code, /effort followed by a level sets it, and launching with --effort sets it for one session. A top-level effortLevel in your user settings file doesn't apply to Opus 5.5, so check the level the client shows. In Codex, /model changes the reasoning effort along with the model. Max and Ultra sit under "More reasoning…", and Ultra splits a task across subagents. OpenAI's own docs say "most tasks do not need Max or Ultra".

How the best level has moved since 2025

Claude: thinking moved from maths into code

Claude 3.7 Sonnet introduced extended thinking in February 2025, and its launch table shows where it helped most: thinking took its AIME maths score from 23.3% to 61.3%. The agentic coding results Anthropic and Aider published that year mostly showed a few points, though Artificial Analysis found larger gains on some coding tests. On SWE-bench Verified, Opus 4.5 scored slightly lower with 64K tokens of thinking than without it.

Supporting evidence: Claude with thinking off and on in 2025
Claude with thinking off and on, 2025 (%)
  • Thinking off
  • Thinking on
Chart data below

AIME 2024 is a maths competition; the rest are coding benchmarks. Thinking on means 64K tokens for 3.7 Sonnet on AIME and for Opus 4.5, and 32K elsewhere. T-Bench is Terminal-Bench, SWE-bench is SWE-bench Verified. Sources: Claude 3.7 Sonnet announcement, Aider polyglot leaderboard, Claude Haiku 4.5 announcement and Claude Opus 4.5 system card (table 2.4.A).

View chart data: Claude with thinking off and on, 2025 (%)
Claude with thinking off and on, 2025 (%)
Model and benchmarkThinking offThinking on
3.7 Sonnet, AIME23.361.3
3.7 Sonnet, Aider60.464.9
Sonnet 4, Aider56.461.3
Opus 4, Aider70.772.0
Haiku 4.5, T-Bench40.241.8
Opus 4.5, SWE-bench80.980.6

The tasks and thinking budgets differ from row to row, so compare the two bars in a row, not one row with another. Even after the effort parameter arrived, the highest setting didn't always win: Anthropic's footnotes show Opus 4.6 scoring higher on MCP Atlas at high effort than at max, and Sonnet 4.6 doing the same on ARC-AGI-2.

By 2026 the effort control itself spanned a wide range on coding. On Anthropic's Terminal-Bench 4.0 runs, Opus 5.5 climbs from 38.5% at low to 66.4% at xhigh, and even at its default of medium it beats Opus 5 at max. Low still involves some thinking, so this isn't the same comparison as the 2025 results. Fable 5 was the exception I noticed day to day: on DeepSWE it gained about a point from high to max while its cost per task more than doubled, from $9.18 to $21.63. Opus 4.8 went the other way and kept improving up to max.

GPT: each flagship gets there at a lower setting

Each new flagship GPT model gets close to its best result at a lower setting. DeepSWE shows the shift across this year's three flagship releases:

DeepSWE v1.1 pass rate by reasoning effort (%)
  • GPT-5.5 (April)
  • GPT-5.6 Sol (July)
  • GPT-6 Astra (September)
Chart data below

Every model ran in the same agent harness (mini-swe-agent). GPT-5.5 has no max setting. Leaderboard as updated on 22 September 2026. Source: DeepSWE v1.1 leaderboard.

View chart data: DeepSWE v1.1 pass rate by reasoning effort (%)
DeepSWE v1.1 pass rate by reasoning effort (%)
Reasoning effortGPT-5.5 (April)GPT-5.6 Sol (July)GPT-6 Astra (September)
low27.045.467.0
medium54.061.172.8
high64.469.473.2
xhigh67.070.774.1
maxNo data72.773.2

GPT-5.5 was still gaining at xhigh, and GPT-5.6 Sol got most of its result by high, which is why I moved it to high over the summer. Astra gets there by medium: 72.8% against 73.2% at high, with a mean task time of about 15 minutes instead of 17. Long terminal work was the exception for GPT-5.6 Sol: on Artificial Analysis's Terminal-Bench 4.0 run it nearly doubled from high to max, from 20.7% to 39.9%. The three models in the next chart don't repeat that.

xhigh or max: where more thinking stops paying

For the three frontier models I use, Artificial Analysis's September runs of Terminal-Bench 4.0 show where extra effort runs out. All three improve up to xhigh, then hold or fall at max.

Terminal-Bench 4.0 by effort, current models (%)
  • Claude Opus 5.5
  • Claude Fable 5.1
  • GPT-6 Astra
Chart data below

Artificial Analysis's runs, as published at the end of September 2026. Claude runs include Anthropic's default safety fallback. Sources: Artificial Analysis: Claude Opus 5.5, Claude Fable 5.1 and GPT-6 Astra.

View chart data: Terminal-Bench 4.0 by effort, current models (%)
Terminal-Bench 4.0 by effort, current models (%)
EffortClaude Opus 5.5Claude Fable 5.1GPT-6 Astra
low31.340.441.9
medium52.544.949.5
high56.652.054.0
xhigh59.655.159.6
max59.652.059.1

Opus 5.5 and Fable 5.1 both reach their best at xhigh here, and Fable falls back at max. Anthropic's own runs disagree on Fable, which scores 55.8% at max against 51.3% at xhigh there, so treat this as one harness's result. Astra's 5.6-point gain from high to xhigh is less certain too: OpenAI's submissions to the official Terminal-Bench leaderboard have it level at those two settings, and DeepSWE shows little gain above medium. I'd only try xhigh on Astra for long terminal tasks.

Each step up also adds waiting time. This is how long each model takes before it starts writing its answer, on a log scale so each step's jump is visible:

Median wait before the answer starts, by effort (seconds, log scale)
  • Claude Opus 5.5
  • Claude Fable 5.1
  • GPT-6 Astra
Chart data below

Artificial Analysis's standard workload of about 10,000 input tokens, median over 72 hours on each provider's own API, measured on 28 September 2026. Includes thinking time. These medians move from day to day. Sources: Artificial Analysis: Claude Opus 5.5, Claude Fable 5.1 and GPT-6 Astra.

View chart data: Median wait before the answer starts, by effort (seconds, log scale)
Median wait before the answer starts, by effort (seconds, log scale)
EffortClaude Opus 5.5Claude Fable 5.1GPT-6 Astra
low7.84.72.4
medium17.86.14.4
high31.812.739
xhigh132103117
max693254293

For everyday use, the bigger jump is from high to xhigh: Opus 5.5 goes from about 30 seconds to over two minutes before it starts answering. Max is worse value again. On Opus 5.5 it takes more than five times as long as xhigh to start and scores the same on Terminal-Bench. On ARC-AGI-2's reasoning puzzles it scores 91.7% at max, against 92.5% at xhigh and 93.3% at high. Claude Code's docs warn that max "may show diminishing returns and is prone to overthinking", and a 2025 study of inverse scaling found Claude Opus 4 getting simple counting questions padded with irrelevant detail wrong more often as its reasoning grew longer.

Effort in tool loops

Most of my agent time goes on loops of tool calls: run a command, read the output, decide what to do next. Effort changes what the agent does in those loops as well as how long it thinks. On DeepSWE, Opus 5 averaged 36 steps per task at low and 99 at max, and its mean time per task went from under 8 minutes to 32.

Supporting evidence: GPT-5.5 on three agent benchmarks
GPT-5.5 on agent benchmarks by reasoning effort (%)
  • Terminal-Bench 2.0 (command-line work)
  • OSWorld-Verified (driving a desktop)
  • τ²-bench Telecom (customer support with tools)
Chart data below

OpenAI's own evaluations. τ²-bench scores are without prompt tuning. Source: OpenAI's GPT-5.5 announcement.

View chart data: GPT-5.5 on agent benchmarks by reasoning effort (%)
GPT-5.5 on agent benchmarks by reasoning effort (%)
Reasoning effortTerminal-Bench 2.0 (command-line work)OSWorld-Verified (driving a desktop)τ²-bench Telecom (customer support with tools)
none39.152.959.9
low60.771.082.2
medium75.376.492.3
high79.177.596.7
xhigh82.778.798.0

Debugging: xhigh on Opus, high on Astra

When an agent is debugging, the reasoning is most of the work. Terminal-Bench, the closest benchmark here to command-line debugging, keeps climbing up to xhigh for GPT-5.5, and Claude Code's model docs say that in Anthropic's tests on Opus 5.5 and Fable 5.1, higher effort "tested more edge cases and verified more of its work before answering".

Browser agents: start at medium

Driving a browser is mostly small actions. On OSWorld, a desktop-control benchmark, GPT-5.5 gains 18 points from turning reasoning on at low, and only 2.3 more from medium to xhigh. I'd start GPT browser agents at medium and raise effort when the hard part is understanding the page. Claude models may differ: Anthropic's chart for Sonnet 5.5 shows it gaining 15 points on OSWorld from medium to xhigh, so on Claude I'd test a higher setting before settling. Most of the browser problems I wrote about recently came from agents sharing one Chrome and its logins, which no effort setting fixes.

Web research is different, because the hard part is deciding what's true. In one study of GPT-5-mini, extra reasoning cut hallucinated answers from 16.6% to 8.0%, but only when the model could search.

Logs and messages: gather cheaply, diagnose carefully

Working through customer messages or logs is mostly reading, with a judgement at the end. The reading barely benefits from effort: on OpenAI's MRCR test of finding specific messages in a long conversation, GPT-5 scored 86.1% at low and 86.8% at high. The judgement at the end benefits more. On τ²-bench Telecom, where the agent troubleshoots a customer's problem with tools, GPT-5.5 rose from 59.9% with no reasoning to 92.3% at medium. So I'd have a cheaper model or subagent collect the relevant messages and log lines, with timestamps and links back to the originals, and leave the diagnosis to the stronger model. Anthropic released Haiku 5.5 on 7 October with this kind of subagent work in mind. It's the same advice I gave a colleague whose long summarising prompt was taking half an hour.

Real-time voice: as little as possible

Real-time voice is where I want as little reasoning as possible, because in a conversation thinking time is silence. On Sierra's τ²-bench voice tests, moving Google's Gemini 3.1 Flash Live from minimal to high thinking raised its pass rate on airline tasks from 42% to 64%, but its mean response time went from 1.6 to 3.6 seconds. My latency post explains why a voice reply has only a few hundred milliseconds to start.

Paying for speed

Fast modes are a separate setting from effort: you pay more for faster generation, and the model reasons just as much.

ModeSpeedCost on a planCost in credits or API
Codex FastNot published for GPT-6 models2.5x Standard2x Standard
Codex Ultrafast (Astra, Sol 6.1)Astra generates up to 8x faster8x Standard6x Standard
Claude Code fast mode (Opus 5.5)Up to 2.5x faster outputNot included; usage credits only$8 / $40 per million tokens, double standard

Sources are OpenAI's speed docs and Claude Code's fast mode docs. Ultrafast needs the $500 Pro plan or an eligible Enterprise or Edu plan.

I usually leave these off. In Codex they use my plan's allowance 2.5 to 8 times faster, and Claude Code's fast mode isn't covered by the plan at all. They're worth considering when I'm actively waiting on the result and model generation causes most of the delay. They won't speed up a build, a test run or a page load.

When a new model arrives, or one gets stuck

When a new model lands, take three or four recent tasks whose results you can check, such as a bug with a known fix or a review with known findings. Run each at the model's default and one level either side, in separate sessions, and compare what each run found, the corrections it needed, how long it took and what it cost. Keep the lowest level that does the job, and raise it only for the kinds of task where it falls short.

Reliable checks also make it cheaper to escalate. In Anthropic's analysis of selected SWE-bench Pro tasks, running Opus 5.5 at low and re-running only the failures at high solved about 97% of tasks for $0.17 each. Running everything at high solved 95.3% for $0.29. Most of the small accuracy gain came from the second attempt, the saving only holds if your checks catch the failures, and each retry adds waiting time.

When a model gets stuck at high or xhigh, I give another model the evidence and ask it to challenge the explanation, or I rethink the task. Turning the same model up to max can leave the same mistaken assumption in place.

Share this post

← All posts