Skip to content
AC-INFO Kft · Hungary
Back to the blog

19 min readCase studies

Claude Models and Effort Levels: What Actually Changes, and What It Costs

We ran 139 tests on nine of our own finished tasks across Haiku, Sonnet, Opus and Fable at different effort levels. What each setting got right, what it cost, and the decision table we now work by.

On nine of our own finished tasks, Claude Opus 5.5 got steadily better as we raised its effort level: from 80 % of the maximum score at low to 89 % at medium, 94 % at high and 98 % at xhigh. The cost per run grew from 0.57 times that of medium to 1.40 times at high and 3.42 times at xhigh. Fable 5.1, the largest model, cost about as much as Opus at xhigh and scored like Opus at low. Sonnet 5.5 scored the same at medium and high; high only doubled the price.

We ran 139 tests on 5 November 2026, on API credit, for $79.98 at list price. The tasks are real work we had already solved, so the correct answer was known before any model saw them. The tests ran Claude models through Claude Code, a Claude model graded part of the outputs (more on that below), and Claude also helped edit this article. Models change fast: every number here is dated 5–6 November 2026.

The results at a glance

Question Short answer
Does a higher effort level help? On Opus 5.5, yes, at every step. On Sonnet 5.5, high scored the same as medium
What does it cost? Opus 5.5 per run, against medium: low 0.57×, high 1.40×, xhigh 3.42× (median of nine tasks)
Is the largest model the best? Not on short tasks: Fable 5.1 cost about as much as Opus xhigh and scored like Opus low
Where do the settings differ? Writing, data analysis and judgement. On code with an automatic check almost every setting passed
What do we use now? Opus 5.5 at medium by default, high for writing, debugging and every kind of review

Why did we run these tests?

We had been working with the recommended defaults: the newest top model, first at medium effort and lately at high. Our impression from daily work was that Opus 5.5 beats Sonnet 5.5 on coding and debugging, and that Fable 5.1 does not feel clearly smarter than Opus. An impression is not a reason to pay several times more, or less.

Anthropic publishes benchmark numbers, but they are measured on Anthropic’s tasks, and they are spread over model cards, documentation pages and launch posts. We wanted three things they cannot give us: results on our own kind of work, the cost of a usable result rather than of a request, and a clear picture of what the effort setting actually changes.

Our own usage logs made the question concrete. Over 30 days of our daily Claude Code work we sent 13,235 requests. On Opus at high, 45 % of the cost was cache reads, 33 % cache writes and 22 % output. One finding came before any model test: a memory plugin, meant to cut token use, accounted for about a quarter of the list-price total on its own. It is off now. That is the same lesson as in our Kubernetes cost reviews: measure first, because the biggest line is often not the one everybody argues about.

How did we test?

Nine tasks from our own finished work

# Task How it was graded
1 Fix the internal links without a trailing slash in our site generator, ForgeStack (10 known links) Script: all 10 fixed and nothing else changed
2 Turn 8 cloud-provider invoice PDFs into a CSV: number, date, line items, net total Script, against a reference the run cannot see
3 Find and fix a double-count bug from its symptom (600 instead of 300) in a cost tool Script: the tool’s self-test plus 3 hidden checks from the real fix
4 Write a database sizing-report script from a specification (6 functions and a command line) Script: 12 hidden tests, only 12/12 counts as a pass
5 Why does the K3s worker upgrade hang? Saved plan, node taint, plan status, alert and misleading TLS errors Blind, by a person
6 Write a blog draft in English from a fact sheet and two style samples Blind
6a The same article in Hungarian Blind, plus language errors and calques
7 SEO analysis of our own webshop from saved pages and a three-month Search Console export Blind, every quoted number recomputed
8 External security review of our own webshop from a one-off saved capture Blind

Task 5’s input is a reconstruction: the original job log no longer exists, so we rebuilt the bundle from the saved plan, node and alert. Tasks 5 to 8 had no shell and no network, only the files listed in the prompt.

Eight settings

Model Effort levels Tasks
Haiku 5.5 medium 1, 2 and 6a
Sonnet 5.5 medium, high all nine
Opus 5.5 low, medium, high, xhigh all nine
Fable 5.1 high all nine

max stayed out because of the budget. The automatic tasks ran three rounds per setting. The blind tasks ran once, plus the repeats described below.

How the runs were isolated and graded

  • Every run was a non-interactive Claude Code call in a bwrap sandbox: read-only root, empty home directory, one writable work directory, and a separate API key with its own spend limit.
  • Claude Code’s --bare mode drops hooks, plugins, project instructions, memory and MCP servers, so the settings compare like with like. It also means this is not exactly our daily setup.
  • Each run had a cost cap: the pilot run’s cost × the expected price multiplier of the setting × 3, at least $1. One run broke the pattern: Fable’s third round on task 7 ran with a $12 cap instead of the formula’s $19.80, because the formula would have pushed us over our $90 ceiling. It cost $4.62.
  • Blind grading. The outputs of tasks 5–8 were renamed to random letters, and the key stayed closed until grading ended. The checklists were written and approved before any run, and not changed afterwards.
  • Scale: 2 = usable unchanged, 1 = usable after at most 10 minutes of fixing, 0 = has to be redone.

What is the effort level, and what is it not?

Effort is one request parameter with five values: low, medium, high, xhigh and max. According to Anthropic’s effort documentation (checked on 6 November 2026; defaults change between model generations), it affects every output token: the text, the tool calls and their arguments, and the thinking. At lower effort the model makes fewer and more consolidated tool calls, and on simple problems it may skip thinking entirely.

  • It is a signal, not a budget. The documentation calls it “a behavioral signal, not a strict token budget”. The hard limit on output, thinking included, is still max_tokens.
  • The model decides how much to think. On the current models thinking is adaptive, and on Opus 5.5 it cannot be switched off at all, so effort is the main control over reasoning and cost.
  • Defaults differ. Opus 5.5 and Haiku 5.5 default to medium; Sonnet 5.5 and Fable 5.1 to high. Sonnet 5.5’s levels were recalibrated, so high there does not mean what it meant on Sonnet 5.
  • xhigh is meant for long work. The documentation describes it as “long-running agentic and coding tasks (over 30 minutes)”. Our runs took between 10 seconds and 15 minutes.
  • Changing it mid-conversation can break the cache. A new top-level value starts the prompt cache over; the newest models also accept a per-message change that keeps it.

List prices per million tokens, input / output: Haiku 5.5 $0.10 / $0.50, Sonnet 5.5 $2 / $10, Opus 5.5 $4 / $20, Fable 5.1 $10 / $50 (Anthropic pricing).

What effort is not: a lesson from our own fine-tuned model. In our free-droid project we fine-tuned Llama 3.1 8B and Llama 3.2 3B models into a Hungarian-speaking persona for a small robot, over 14 versions. None of the levers there is a “think harder” dial. Behaviour comes from the weights the fine-tune produces, from the data that goes into it, and from the system prompt; facts come from a retrieval layer; and the rules the model must never break (answer only in Hungarian, stop the motors on an obstacle) are enforced in code, not in the weights. The levers that moved the result were dataset design and changing one variable per round, not hyperparameters.

Effort is a different kind of control. It does not change what the model knows or how it behaves; it changes how much of its reasoning and tool use it spends on a request. That is why it is cheap to try: a fine-tune round took us hours and a new evaluation, while an effort change is one word in a request. (The comparison is our interpretation; Anthropic does not describe effort this way.)

What did the tests show?

Every task, every setting

Automatic tasks show passed runs out of all runs; blind tasks show the score of each run (0–2). After the dot: the mean cost per run.

Task Haiku med Sonnet med Sonnet high Opus low Opus med Opus high Opus xhigh Fable high
1 links 3/3 · $0.01 0/3 · $0.06 0/3 · $0.08 3/3 · $0.08 3/3 · $0.14 3/3 · $0.14 5/6 · $0.45 3/3 · $0.40
2 invoices 3/3 · $0.00 3/3 · $0.04 3/3 · $0.03 2/3 · $0.05 3/3 · $0.07 3/3 · $0.10 3/3 · $0.14 3/3 · $0.19
3 bug – 3/3 · $0.05 3/3 · $0.08 3/3 · $0.13 3/3 · $0.23 3/3 · $0.33 3/3 · $0.86 3/3 · $1.03
4 spec to code – 3/3 · $0.09 3/3 · $0.19 3/3 · $0.21 3/3 · $0.61 3/3 · $0.79 3/3 · $2.00 3/3 · $2.03
5 diagnosis – 2 · $0.06 2 · $0.09 2 · $0.11 2 · $0.18 2 · $0.35 2 · $0.83 2 · $0.74
6 article, EN – 1 · $0.17 1 · $0.33 1 · $0.36 1 · $0.63 1 · $0.82 2 · $2.16 1/1/1 · $1.63
6a article, HU 1 · $0.02 1 · $0.18 1 · $0.40 1 · $0.35 1 · $0.56 2 · $1.06 2 · $2.37 1 · $1.56
7 SEO – 2/2/1 · $0.51 1/2/2 · $1.10 2 · $0.38 2 · $1.22 2 · $1.37 2 · $2.95 1/1/1 · $4.64
8 security – 2 · $0.12 2 · $0.18 1 · $0.18 2 · $0.35 2 · $0.50 2 · $1.56 1/1/2 · $0.34

Per setting

Quality is the mean over the tasks a setting ran (pass = 1, fail = 0; blind score ÷ 2). One round is the sum of the mean costs per task: what all nine tasks cost once.

Setting Quality Flawless runs One round Median time per run
Haiku 5.5 medium (3 tasks only) 83 % 6/7 $0.03 17 s
Sonnet 5.5 medium 76 % 13/19 $1.28 34 s
Sonnet 5.5 high 76 % 13/19 $2.49 51 s
Opus 5.5 low 80 % 13/17 $1.85 36 s
Opus 5.5 medium 89 % 15/17 $3.99 70 s
Opus 5.5 high 94 % 16/17 $5.47 69 s
Opus 5.5 xhigh 98 % 19/20 $13.31 195 s
Fable 5.1 high 80 % 14/23 $12.55 157 s

The Opus effort curve

Cost per run against Opus 5.5 at medium, and the mean thinking tokens per run from low to xhigh.

Task low high xhigh Thinking tokens, low → medium → high → xhigh
1 links 0.57× 1.01× 3.26× 169 → 562 → 677 → 3,967
2 invoices 0.66× 1.45× 2.06× 66 → 172 → 213 → 602
3 bug 0.57× 1.44× 3.72× 383 → 1,389 → 1,824 → 13,460
4 spec to code 0.34× 1.30× 3.26× 509 → 5,587 → 9,354 → 44,683
5 diagnosis 0.64× 1.99× 4.77× 644 → 1,711 → 6,850 → 25,722
6 article, EN 0.56× 1.31× 3.42× 1,731 → 8,730 → 14,866 → 63,217
6a article, HU 0.62× 1.89× 4.21× 956 → 7,185 → 19,045 → 66,470
7 SEO 0.32× 1.13× 2.42× 1,049 → 14,430 → 18,851 → 59,709
8 security 0.50× 1.40× 4.40× 664 → 4,193 → 8,577 → 46,133
Median 0.57× 1.40× 3.42×

The step from high to xhigh is the expensive one: thinking tokens grew three to seven times, the cost about 2.4 times and the wait about three times. On our tasks it bought one thing: the only flawless English article. Everything else xhigh got right, high had already got right.

Where the points were lost

Task 1, Sonnet (0 of 6 runs) and one Opus xhigh run: wrong by the rules, right about the code. Every Sonnet run fixed the 10 links and also changed the shared function that builds blog post URLs, which was outside the task, so the pre-registered check failed it. The change itself was correct: post cards in our site generator really did link without the trailing slash, and every such click costs a redirect on Cloudflare Pages. We filed it as a ForgeStack issue. The score stays a fail, because a model that edits code it was not asked to edit is a problem even when it is right. Read the diff before you trust a red light, in either direction.

Articles (tasks 6 and 6a): every setting except the top ones left something to fix. The typical fix was an invented detail that was not on the fact sheet (a date, a cause, “single-node”, “cold backups”) or a claim inflated beyond its source (“a dozen” became “dozens”). Fable had the most: 9, 5 and 2 invented or wrong claims in its three English runs, and 5 in the Hungarian one. In Hungarian, Opus high was the cheapest setting with no language error, no calque and no invented claim.

SEO analysis (task 7): the losses were numbers. Fable mixed page-level and query-level clicks in one table without saying so in all three runs. Its reports also rounded 277 tag-page impressions down to “about 200”, reported the queries’ 45 clicks as 46, and wrote “every product has the same date” where 83 of 92 had. The two Sonnet runs that scored 1 had the same kind of slips. Opus at low scored 2 here for $0.38.

Security review (task 8): Opus low and two of Fable’s three runs gave too much weight to minor findings, miscounted or claimed more than the capture proved. No run refused the task.

Diagnosis (task 5): every setting found the real cause, a node taint with a missing toleration, and none blamed the misleading TLS errors. The task was too easy to separate the settings.

Repeats: one false alarm, one real weakness

We fixed one repeat rule before the runs: if a higher effort on the same model scored worse than a lower one, run both again. That hit Sonnet on task 7 (high 1, medium 2). Two more rounds gave medium 2, 2, 1 and high 1, 2, 2. The inversion was noise.

Outside the rule, we gave Fable two extra rounds on tasks 6, 7 and 8, because “the largest model is weaker” is a claim that needs more than one run. Task 6: 1, 1, 1. Task 7: 1, 1, 1. Task 8: 1, 1, 2. The weakness held.

Who graded the graders?

Task 5 was graded by a person. Tasks 6 to 8 were graded by Opus 5.5 agents against the checklists, with a quote as evidence for every error, and spot-checked by hand. An Opus grader may favour Opus outputs, so we also asked Gemini 3.1 Pro (preview) to grade tasks 5 to 7 blind. It agreed on 26 of 37 outputs. Where they differed, we recomputed the disputed numbers from the source data: the Opus grader was right, and Gemini had missed the errors. Its first attempt did not grade at all: it wrote keyword-search scripts instead of reading the outputs, and skipped some of them. A second grader from another vendor is not a check by itself; it needs checking too.

What these results do not show

  • Most blind cells ran once. We only claim patterns that repeat across tasks.
  • The runs were short, from 10 seconds to 15 minutes. Long, autonomous sessions, which is where Fable and xhigh are positioned, were not measured.
  • Nine of our tasks, our inputs, without our usual hooks and project instructions.
  • List prices, as reported by Claude Code.

Which model and effort level should you use?

This is the table we now work by. It comes from our nine tasks, so treat it as a starting point for your own measurement, not as a rule.

Kind of work Our pick Why
Mechanical edit or extraction with a check after it Haiku 5.5 medium or Sonnet 5.5 medium, and review the diff Passed for cents; Sonnet strayed outside the task
Bug fix or code from a specification, with tests Sonnet 5.5 medium 6 of 6 passed at a fifth to a seventh of Opus medium’s price
Data analysis where the numbers matter Opus 5.5 low or medium, and check the sums Opus scored 2 on every run; Sonnet varied, Fable mixed levels
Article draft from a fact sheet Opus 5.5 high, plus a human review Flawless in Hungarian; in English one fix, at less than half of xhigh’s price
An English draft that must be clean first time Opus 5.5 xhigh The only flawless English article
Security review, debugging, code review Opus 5.5 high medium was enough on our short tasks; on long, real sessions we choose the safer side
Short tasks in general Not Fable 5.1 $12.55 per round for Opus low quality on our tasks

What we changed in our own setup after the tests: Opus 5.5 at medium is the default everywhere; writing, debugging (Kubernetes included) and every kind of review run at high; our research agent runs Opus 5.5 at medium; and where Sonnet 5.5 still runs, it runs at medium. That is roughly how we run client platforms too: the default is cheap and checked, and the expensive option is a deliberate choice.

Five lessons we took away:

  1. Raise the effort on one model before you switch to a bigger one. Opus 5.5 at high beat Fable 5.1 at high for less than half the price.
  2. On Sonnet 5.5, high bought nothing on our tasks and doubled the cost.
  3. xhigh is a scalpel, not a default: 3.4 times the cost of medium and three times the wait for the last few points.
  4. A failed check can mean the model was right. Read the diff.
  5. Writing still needs a human pass at every setting except the most expensive one, and the invented details were small, plausible and easy to miss.

The second-biggest cost lever was not the model at all. In our own logs, cache reads and writes were 78 % of the Opus cost, and one plugin that was supposed to save tokens was a quarter of the bill. If your team’s AI spend is growing and nobody can say which line is which, that is the same problem as an unexplained cloud bill, and the same review finds it.

Who should not copy this table

  • Teams whose work is long, autonomous sessions. We did not measure those, and that is where the larger models and xhigh are meant to earn their price.
  • Anyone without a way to check the output. Our cheap picks only work because a test, a script or a person checks every result.
  • Anyone who reads nine tasks as a general benchmark. Run the same kind of test on your own work: tasks with a known answer, blind grading, and cost per usable result. Ours took two days, from preparation to grading, and less than $80.

Common questions about Claude models and effort

What does the effort level do in Claude?

Effort tells the model how many tokens to spend on a response: how readily and how long it thinks, how many tool calls it makes and how much it writes. Anthropic's documentation calls it a behavioural signal, not a strict token budget; the hard limit on output is still max_tokens. The levels are low, medium, high, xhigh and max. Claude Opus 5.5 and Haiku 5.5 default to medium, the other current models to high.

Is a higher effort level always better?

Not on every model. On Claude Opus 5.5 our results improved at every step, from 80 % of the maximum score at low to 98 % at xhigh, while the cost per run went from 0.57 times to 3.42 times that of medium. On Claude Sonnet 5.5, high scored exactly the same as medium on our nine tasks and cost about twice as much.

Is Claude Fable 5.1 worth it over Opus 5.5?

Not for short tasks like ours. Fable 5.1 at high effort cost $12.55 for one round of our nine tasks, about the price of Opus 5.5 at xhigh ($13.31), but scored 80 %, the same as Opus at low. It lost points on writing and data analysis, and the pattern held in three rounds. We did not measure long autonomous sessions, where Anthropic positions its largest model.

Which model and effort level should I use for writing articles?

In our tests every setting below Opus 5.5 at high needed at least one fix in a draft written from a fact sheet. For the Hungarian article, Opus 5.5 at high was the cheapest flawless setting. For the English one, only xhigh was flawless; high needed one invented detail removed. We now draft at high and keep a human review pass.

Can these results be applied to any team?

As a method, yes; as numbers, only with care. The tasks were nine of our own finished jobs, most blind-graded cells ran once, and the runs were short. The point is to measure your own work the same way: tasks with a known answer, blind grading, and cost per usable result instead of cost per request.

More articles

Want this run for you?

A free 30-minute discovery call. Engineer to engineer.

Book a free call