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.
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
| Model | My usual level | Small edits | Hard tasks | Use it for |
|---|---|---|---|---|
| Claude Opus 5.5 | xhigh | high | xhigh | Most coding |
| GPT-6 Astra | medium | medium | high | Reviews and investigations |
| GPT-6.1 Sol | medium | low | high, or Astra | Cheaper GPT work |
| Claude Fable 5.1 | xhigh | Use Opus 5.5 | xhigh | Design 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
- GPT-6 Sol
- GPT-6.1 Sol
- GPT-6 Astra
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
| Effort | GPT-6 Sol | GPT-6.1 Sol | GPT-6 Astra |
|---|---|---|---|
| low | 33.9 | 42.1 | 45.8 |
| medium | 39.8 | 47.8 | 49.6 |
| high | 42.8 | 50.2 | 50.9 |
| xhigh | 44.1 | 51.0 | 52.4 |
| max | 47.5 | 51.8 | 52.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
- Claude Sonnet 5.5
- Claude Opus 5.5
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 (%)
| Effort | Claude Sonnet 5.5 | Claude Opus 5.5 |
|---|---|---|
| low | 20.0 | 38.5 |
| medium | 28.8 | 57.6 |
| high | 43.0 | 64.2 |
| xhigh | 61.5 | 66.4 |
| max | 70.6 | 64.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
- Thinking off
- Thinking on
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 (%)
| Model and benchmark | Thinking off | Thinking on |
|---|---|---|
| 3.7 Sonnet, AIME | 23.3 | 61.3 |
| 3.7 Sonnet, Aider | 60.4 | 64.9 |
| Sonnet 4, Aider | 56.4 | 61.3 |
| Opus 4, Aider | 70.7 | 72.0 |
| Haiku 4.5, T-Bench | 40.2 | 41.8 |
| Opus 4.5, SWE-bench | 80.9 | 80.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:
- GPT-5.5 (April)
- GPT-5.6 Sol (July)
- GPT-6 Astra (September)
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 (%)
| Reasoning effort | GPT-5.5 (April) | GPT-5.6 Sol (July) | GPT-6 Astra (September) |
|---|---|---|---|
| low | 27.0 | 45.4 | 67.0 |
| medium | 54.0 | 61.1 | 72.8 |
| high | 64.4 | 69.4 | 73.2 |
| xhigh | 67.0 | 70.7 | 74.1 |
| max | No data | 72.7 | 73.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.
- Claude Opus 5.5
- Claude Fable 5.1
- GPT-6 Astra
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 (%)
| Effort | Claude Opus 5.5 | Claude Fable 5.1 | GPT-6 Astra |
|---|---|---|---|
| low | 31.3 | 40.4 | 41.9 |
| medium | 52.5 | 44.9 | 49.5 |
| high | 56.6 | 52.0 | 54.0 |
| xhigh | 59.6 | 55.1 | 59.6 |
| max | 59.6 | 52.0 | 59.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:
- Claude Opus 5.5
- Claude Fable 5.1
- GPT-6 Astra
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)
| Effort | Claude Opus 5.5 | Claude Fable 5.1 | GPT-6 Astra |
|---|---|---|---|
| low | 7.8 | 4.7 | 2.4 |
| medium | 17.8 | 6.1 | 4.4 |
| high | 31.8 | 12.7 | 39 |
| xhigh | 132 | 103 | 117 |
| max | 693 | 254 | 293 |
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
- Terminal-Bench 2.0 (command-line work)
- OSWorld-Verified (driving a desktop)
- τ²-bench Telecom (customer support with tools)
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 (%)
| Reasoning effort | Terminal-Bench 2.0 (command-line work) | OSWorld-Verified (driving a desktop) | τ²-bench Telecom (customer support with tools) |
|---|---|---|---|
| none | 39.1 | 52.9 | 59.9 |
| low | 60.7 | 71.0 | 82.2 |
| medium | 75.3 | 76.4 | 92.3 |
| high | 79.1 | 77.5 | 96.7 |
| xhigh | 82.7 | 78.7 | 98.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.
| Mode | Speed | Cost on a plan | Cost in credits or API |
|---|---|---|---|
| Codex Fast | Not published for GPT-6 models | 2.5x Standard | 2x Standard |
| Codex Ultrafast (Astra, Sol 6.1) | Astra generates up to 8x faster | 8x Standard | 6x Standard |
| Claude Code fast mode (Opus 5.5) | Up to 2.5x faster output | Not 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
Related reading
Sightline: page context for AI assistants without screenshots
Sightline turns a web page's controls and state into compact text for an AI assistant. Here's why local page reading can save a vision call, and where screenshots still help.
Talking to my coding agents: VoiceInk, Handy and other dictation apps
I dictate a lot of my prompts to coding agents. I settled on Handy, but if you're starting from scratch, VoiceInk built from source is the one I'd try first.