← All reviews
Field guide · August 6, 2026 · 11 min read

Claude model tiers and effort levels: what each one is for, with a worked example for every combination

Picking Claude Opus 5 over Sonnet 5 is one decision. Running it at low instead of xhigh is a different one, and it can change token spend by roughly 7x on the same task. Anthropic's own framing is the useful one: the model decides how much Claude knows, effort decides how hard it tries. Here's every tier, every level, what each is actually for, and the one question that tells you which dial to turn.

There are two dials on a Claude coding session, and most people only ever turn one.

The first is the model — Fable 5, Opus 5, Sonnet 5, Haiku 4.5. That one gets all the attention. The second is effort, which decides how hard the model works on any given request, and which Anthropic says can change token spend by roughly 7× on a complex task without changing a single thing about the model’s capability.

They are independent settings, and confusing them is why people reach for a bigger model when what they needed was a harder-working one, or pay Fable prices for work Sonnet finishes fine. This is the full map: every tier, every level, what each is for, and a concrete scenario for each pairing. Everything here comes from Anthropic’s own documentation and guidance — sources at the end.

The 30-second version

  1. Model = how much it knows. Effort = how hard it tries. Fixed capability from training versus how many tokens it spends. Anthropic treats them as independent controls, and so should you.
  2. The diagnostic question, straight from Anthropic: when Claude gets it wrong, did it not know enough (model problem) or not try hard enough (effort problem)? Skipped a file, didn’t run the tests, didn’t double-check → raise effort. Had the context, clearly tried, still failed → raise the model.
  3. Four tiers: Fable 5 ($10/$50) for the hardest long-running jobs, Opus 5 ($5/$25) as the default for agentic coding, Sonnet 5 ($3/$15) for routine work, Haiku 4.5 ($1/$5) for high-volume simple work.
  4. Five effort levels: low, medium, high (default), xhigh, max. Setting high is identical to not setting anything.
  5. Effort isn’t only thinking. It shapes every token — including tool calls. Lower effort means Claude makes fewer tool calls and skips the preamble. That’s why it’s the better cost lever than trying to cap thinking.
  6. The level names don’t port across models. Anthropic: the effort scale is calibrated per model. Sonnet 5 at medium ≈ Sonnet 4.6 at high. And Haiku 4.5 has no effort parameter at all.

The four tiers

Claude Fable 5Claude Opus 5Claude Sonnet 5Claude Haiku 4.5
Price /MTok$10 / $50$5 / $25$3 / $15*$1 / $5
Context1M1M1M200K
Max output128K128K128K64K
LatencySlowerModerateFastFastest
Knowledge cutoffJan 2026May 2026Jan 2026Feb 2025
Effort levelsall fiveall fiveall fivenone
Thinkingalways on, can’t disableadaptive, on by defaultadaptiveextended thinking only
Anthropic models overview, August 2026. *Sonnet 5 runs on introductory pricing of $2/$10 per MTok through August 31, 2026. Fable 5 also carries a 30-day data-retention requirement and is unavailable under zero-retention agreements — see the Opus 5 vs Fable 5 comparison for the full list of non-price differences.

Claude Fable 5 — “next-generation intelligence for long-running agents.” The reason to pay double isn’t a benchmark point; it’s the specific claim in Anthropic’s guidance that Fable finished jobs Opus and Sonnet couldn’t reach at any effort level. That’s the test: if turning the effort dial to max on Opus 5 still fails, that’s a Fable job. Example: a multi-hour migration across an unfamiliar codebase where the plan itself has to be discovered, and a wrong turn costs an afternoon.

Claude Opus 5 — “for complex agentic coding and enterprise work,” and the model Anthropic’s docs tell you to start with. Default on Claude Max. It also has the newest knowledge of the four (May 2026, four months ahead of Fable). Example: your normal working session — implement a feature across several files, run the tests, fix what breaks.

Claude Sonnet 5 — “the best combination of speed and intelligence.” The right pick whenever the work is routine rather than hard. Example: mechanical refactors, renaming across a package, writing tests for code that already exists, converting a config format.

Claude Haiku 4.5 — “the fastest model with near-frontier intelligence,” and the odd one out: no effort parameter, a 200K window instead of 1M, and a knowledge cutoff back in Feb 2025. Example: classification, extraction, and high-volume calls where per-request latency dominates.

The five effort levels

LevelWhat it doesAnthropic’s stated use case
maxAbsolute maximum capability, no constraint on token spendDeepest possible reasoning and most thorough analysis
xhighExtended capability for long-horizon workAgentic and coding runs over 30 minutes, token budgets in the millions
highDefault — identical to omitting the parameterComplex reasoning, difficult coding, agentic tasks
mediumBalanced, moderate token savingsAgentic work balancing speed, cost and performance
lowMost efficient; significant savings, some capability lossSimple tasks needing speed and low cost — Anthropic names subagents

Two things about this table are easy to miss.

Effort is not a thinking setting. It affects all tokens in the response — text, thinking, and tool calls including their arguments. Anthropic is explicit that lower effort means Claude makes fewer tool calls, combines operations, skips the preamble, and confirms tersely; higher effort means more tool calls, a stated plan before acting, and detailed summaries. That’s why it works even with thinking off, and why it’s a stronger cost lever than any thinking cap.

It’s a signal, not a budget. In Anthropic’s words, effort is a behavioral signal rather than a strict token budget: at low, Claude will still think on a sufficiently hard problem — just less than it would at high on the same problem.

And support isn’t uniform. xhigh is newer than max, so some models have max but not xhigh:

ModelLevels
Fable 5, Opus 5, Sonnet 5, Opus 4.8, Opus 4.7low medium high xhigh max
Opus 4.6, Sonnet 4.6low medium high max — no xhigh
Haiku 4.5none

The question that tells you which dial to turn

This is the most useful thing in Anthropic’s guidance, and it’s one sentence. When Claude gets something wrong, ask:

Did it not know enough, or did it not try hard enough?

  • It skipped a file, didn’t run the tests, didn’t double-check its work, stopped early → effort problem. Raise the level.
  • It had the context, clearly tried, and still got it wrong → model problem. Move up a tier.

Getting this backwards is expensive in both directions. Paying Fable prices to fix a shallow-work problem wastes money; grinding Sonnet at max on a problem it fundamentally can’t solve wastes an afternoon and still fails.

A scenario for every combination

Anthropic publishes per-model effort guidance. Below it is, with a concrete engineering scenario for each pairing — the recommendations are Anthropic’s, the examples are ours.

Claude Opus 5 — start at the default and move deliberately

Anthropic’s guidance: start at high (the default) and adjust from your own evals; step up to xhigh for demanding coding and agentic work, max when a task justifies unconstrained spend; use low and medium liberally as your primary control for cost and response time wherever quality holds.

EffortScenario
lowA subagent whose whole job is “find every file that imports this module and list them.” Scoped, verifiable, no judgment needed.
mediumA well-specified feature in a codebase you know — the design is settled, it’s the writing that’s left.
highThe everyday default: implement a change across several files, run the suite, fix the failures.
xhighA three-hour refactor with subagents fanning out across packages, where the agent has to keep a plan in its head.
maxA subtle concurrency bug that survived two people and a day of staring. Reserve it for this.

If you run Opus 5 at xhigh or max, raise max_tokens with it — Anthropic’s stated default is to start at 64k and tune from there, so the model has room to think and act across subagents and tool calls. The same advice applies to Opus 4.8 and 4.7.

One Opus 5 quirk worth knowing: effort controls thinking volume, not visible response length. Anthropic notes that on Opus 5, changing effort doesn’t reliably shorten responses — if you want shorter output, ask for it in the prompt. And thinking cannot be disabled at xhigh or max: thinking: {"type": "disabled"} at those levels returns a 400.

Claude Sonnet 5 — where effort buys the most

Sonnet 5 defaults to high on both the API and Claude Code, and its medium comes with the most useful calibration anchor Anthropic publishes: medium on Sonnet 5 is comparable to Sonnet 4.6 at high. A whole generation of capability, one step down the dial.

EffortScenario
lowChat and non-coding turns; high-volume or latency-sensitive calls where turnaround beats polish.
mediumEveryday agentic coding on a budget — the step-down that still lands where last generation’s best did.
highDefault. Complex reasoning and coding where quality matters more than speed or cost.
xhighThe hardest coding and agentic tasks you’d still trust to Sonnet rather than Opus.
maxRare on this tier: you want maximum capability but have a reason not to change model — a pinned deployment, a cost ceiling per token.

Claude Fable 5 — effort is the main dial

On Fable, Anthropic says effort is the primary control for trading off intelligence, latency and cost. The striking line: lower effort settings on Fable 5 still perform well and often exceed xhigh performance on prior models. So dialing Fable down isn’t slumming — it can still be above where you were.

EffortScenario
low / mediumRoutine work you’re running on Fable only because the session is already there — and you’d rather not pay high for it.
highDefault, and where most Fable work belongs.
xhighThe most capability-sensitive work in the queue — the reason you’re paying for Fable at all.
maxGenuinely frontier problems. Note Anthropic’s warning on the Opus line: on most workloads max adds significant cost for relatively small gains, and on structured-output tasks it can lead to overthinking.

Two Fable-specific constraints: thinking cannot be turned off at all — the session toggle, alwaysThinkingEnabled and MAX_THINKING_TOKENS=0 all have no effect — and at high and xhigh you should set a large max_tokens, because it’s a hard limit on thinking plus response text combined.

Claude Haiku 4.5 — no dial

Haiku 4.5 isn’t on the effort-supported list, and Claude Code’s docs are blunt: models not listed do not support effort. It uses classic extended thinking (thinking.type: "enabled" with budget_tokens) instead. Example: a hook or a batch classifier that runs on every commit — you want it fast, cheap and predictable, and you control depth with the thinking budget rather than an effort level.

Setting it in Claude Code

Five ways in, with a defined precedence:

  • /effort — no arguments opens an interactive slider; /effort low sets it directly; /effort auto returns to the model default
  • Inside /model — the effort slider appears next to a supported model; adjust with left/right arrows
  • --effort <level> at launch — applies to that session
  • effortLevel in your settings file — accepts low, medium, high, xhigh. max is session-only and is not accepted here
  • Skill and subagent frontmatter — an effort field overrides the session level while that skill or subagent is active

Precedence runs: CLAUDE_CODE_EFFORT_LEVEL environment variable beats everything, then frontmatter for the active skill or subagent, then your session level, then the model default. The active level is displayed in the session header next to the model name (“with low effort”), which is the fastest way to confirm what you’re actually running.

Two extras that aren’t effort levels but live in the same menu:

  • ultracode — a Claude Code setting, not a model level. It sends xhigh and has Claude orchestrate dynamic workflows for subagents. Available via /effort ultracode, claude --effort ultracode, or "ultracode": true in settings; needs v2.1.203 or later. It’s session-only — neither the persisted effortLevel nor the environment variable accepts it. With workflows turned off, it degrades to plain xhigh.
  • ultrathink — put the word anywhere in a prompt to request deeper reasoning for that one turn without changing your session setting.

Model selection has its own shorthand: sonnet, opus, fable, haiku, best (Fable 5 where your org has it, otherwise latest Opus), default, and opusplan — Opus during plan mode, then Sonnet for execution. That last one is effectively a two-dial preset: think expensive, type cheap.

Four traps

1. The silent downgrade. Ask for a level a model doesn’t support and Claude Code doesn’t error — it falls back to the highest supported level at or below what you asked for. Request xhigh on Opus 4.6 and you silently get high. If you switch models often, check the session header rather than assuming your setting carried.

2. Effort changes invalidate your prompt cache. Effort shapes the rendered prompt, so changing it between requests does not preserve cached prefixes. Anthropic’s advice is explicit: pick a level at the start of a session and keep it constant; vary effort across workloads, not within a cached conversation. On a long session that’s a real bill, on top of the baseline token overhead you’re already paying.

3. The model-default hold. The first time you run Fable 5, Opus 4.8 or Opus 4.7, Claude Code applies that model’s default effort even if you’d set something else for another model, and holds it across sessions until you make an explicit choice. Opus 5 has no such hold — a level you set carries over. So “I set low weeks ago” is not a reliable belief.

4. Effort can’t rescue the wrong model. The single most important line in Anthropic’s guidance is that Fable finished jobs Opus and Sonnet couldn’t reach at any effort level. There is a class of problem where turning the dial to max just spends more to fail. That’s the signal to change tier — which is the diagnostic question again, and why it’s worth asking before you spend.

Companion reading

Sources

  1. Effort — Anthropic docs
  2. Models overview — Anthropic docs
  3. Claude Code model configuration — Claude Code docs
  4. Choosing a Claude model and effort level in Claude Code — Anthropic blog
  5. Thinking — Anthropic docs
  6. Prompt caching — Anthropic docs

FAQ

What’s the difference between the model and the effort level? They’re independent. The model is fixed capability from training — how much Claude knows and how well it reasons. Effort controls how many tokens it spends, which in practice is how thoroughly it works: how often and how deeply it thinks, how many tool calls it makes, how much it explains. Anthropic’s diagnostic when Claude gets something wrong is whether it didn’t know enough (model) or didn’t try hard enough (effort). Skipped a file, didn’t run tests, didn’t double-check → raise effort. Had the context, clearly tried, still failed → raise the tier.

Which Claude model should I use for coding? Opus 5 as the default — Anthropic’s docs say start there for complex agentic coding, and it’s the default on Max. Sonnet 5 for routine and mechanical work at $3/$15 against Opus 5’s $5/$25. Fable 5 at $10/$50 for the hardest, longest jobs; the case for paying double is Anthropic’s report that it finishes work Opus and Sonnet can’t reach at any effort level. Haiku 4.5 at $1/$5 for high-volume simple work — and it’s the one tier with no effort parameter.

What do the five effort levels do? low is most efficient with some capability loss (Anthropic names subagents as a typical use). medium is a balanced step-down. high is the default, and setting it explicitly is identical to omitting the parameter. xhigh is for long-horizon work running over 30 minutes with token budgets in the millions. max is maximum capability with no spend constraint. Effort shapes every token, not just thinking, so lower levels also mean fewer tool calls and terser summaries — and it’s a behavioral signal, not a hard budget: at low Claude still thinks on hard problems, just less.

How do I change effort in Claude Code? /effort opens a slider, /effort <level> sets it directly, /effort auto restores the model default. The slider also appears inside /model (left/right arrows). --effort sets it for one session at launch. In settings, effortLevel accepts low, medium, high, xhighmax is session-only. Skills and subagents can set effort in frontmatter. Precedence: CLAUDE_CODE_EFFORT_LEVEL beats everything, then active frontmatter, then session level, then model default. The header shows the current level next to the model name.

Does the same effort level mean the same thing on every model? No — Anthropic states the scale is calibrated per model. Sonnet 5 at medium is described as comparable to Sonnet 4.6 at high, and low Fable 5 settings are described as often exceeding xhigh on prior models. Support differs too: Opus 4.6 and Sonnet 4.6 have no xhigh, and requesting an unsupported level silently falls back to the highest supported one at or below it, so xhigh runs as high on Opus 4.6 with no error. Haiku 4.5 supports no effort levels at all.

Was this helpful?

Related reading


Reviews independently produced · Editorial policy

Read more reviews →