DEV Community

Claude Opus 5 vs Fable 5: Which Tier Earns the Money

The Price Gap Held, the Capability Gap Closed

Opus 5 runs at $5 and $25 per million tokens against Fable 5 at $10 and $50, so the top tier now costs double for a much smaller gap. Thinking is on by default on Opus 5, which silently changes what a tight max_tokens setting does to your output. Disabling thinking now returns an error above high effort, so any xhigh or max route that turns it off needs an audit before you migrate. Prompt caching starts at 512 tokens on Opus 5, half the Opus 4.8 floor, so short reusable prompts cache with no code change.

In June I worked through whether Claude Fable 5 was worth double the price of Opus 4.8 and concluded that it usually was, for hard work. Claude Opus 5 landed on July 24 at Opus 4.8's exact price and closed most of that gap. So the answer changed, and a few of the changes will throw errors in code that worked last week.

Opus 5 costs $5 and $25 per million tokens, input and output. That is identical to Opus 4.8 and exactly half of Fable 5 at $10 and $50. Anthropic did not raise the sticker price on the tier it improved, which is the single most consequential fact in this release. What that buys, on the numbers:

  • 79.2% on SWE-bench Pro against Fable 5's 80.3
  • A CursorBench 3.2 result Anthropic describes as landing within 0.5 percent of Fable 5's peak at max effort, at half the cost per task
  • On OSWorld 2.0 it goes past Fable 5's best computer-use result at just over a third of the cost

A 1.1 point deficit on the headline coding row, for half the money. Last month the equivalent comparison had an 11 point spread. That is what actually changed, and it flips the default: Fable 5 used to be the reasonable choice for anything hard, and now it has to argue for itself on each task.

There is a quieter cost lever too. The minimum cacheable prompt on Opus 5 is 512 tokens, down from 1024 on Opus 4.8. Prompts I had written off as too short to cache now create entries with no code change at all. If you run a lot of small repeated calls, re-check them before assuming nothing cached.

Three Changes That Break Existing Code

Migrating from Opus 4.8 is not a model string swap. Three things bite.

Thinking is on by default. On Opus 4.8 and 4.7, omitting the thinking parameter meant the model did not think. On Opus 5, omitting it runs adaptive thinking. This is not just a behavior change, it is a truncation risk, because max_tokens is a hard cap on thinking plus response text together. Any route that never set thinking and sized max_tokens tightly around the expected answer can now run out of budget mid-response. Raise the ceiling or set thinking to disabled deliberately.

Disabling thinking is capped at high effort. Setting thinking to disabled alongside an effort level of xhigh or max now returns a 400. Opus 4.8 accepted that combination happily. The check runs per request, so a later call that raises effort while thinking is still off fails even though earlier calls in the same conversation went through. Audit every call site, not just the first one.

Rate limits are a separate bucket. Opus 4.8, 4.7, 4.6 and 4.5 share one combined pool. Opus 5 does not draw from it. Moving traffic across neither frees headroom on the old bucket nor inherits it, so check your tier's limits before shifting volume and assuming it will absorb.

Two smaller ones worth knowing:

  • Fast mode on Opus 5 runs at roughly 2.5 times default speed for twice the price, and it is a Claude API feature only, so it will not work on Bedrock, Google Cloud, or Microsoft Foundry.
  • Opus 5 ships with elevated cybersecurity safeguards that can decline a request outright, returning a normal 200 response with a refusal stop reason and an empty content array. Code that reads the first content block without checking the stop_reason will break on that. Cyber-category refusals route to Opus 4.8 as the recommended fallback, so wiring up the server-side fallback parameter genuinely recovers the request rather than just relabelling the failure.

The Behavior Shifts Nobody Puts in Release Notes

This is the part that cost me the most time, because none of it throws an error. It just quietly makes output worse until you notice.

Opus 5 verifies its own work without being told to. That means the instruction I had been carrying in prompts for two model generations, some variant of "include a final verification step" or "use a subagent to check this", now causes over-verification. The fix is to delete those lines rather than reword them. Anthropic's own migration guidance says the same, and it inverts the standard advice to ask a model to double-check itself.

It also writes longer. Both user-facing responses and files it writes to disk run longer than on Opus 4.8, and lowering the effort level does not reliably shorten them. Prompting does. A short conciseness instruction is worth more here than any parameter.

The subagent behavior reversed direction, which caught me out. Opus 4.8 under-reached for subagents and needed prompting to delegate. Opus 5 delegates readily, so the "delegate more" guidance I added for 4.8 is now actively expensive and wants a cap instead. Each subagent re-establishes context, explores, reports back, and then the coordinator reads the report, so the cost multiplies quickly on work that one agent could have finished in a few tool calls.

It narrates its own corrections more than earlier models, flagging and explaining mistakes at length in a way that reads as thrash in anything user-facing. Scoping that down to corrections which actually change the reader's decision is a one-paragraph prompt fix, and worth doing before anyone else sees the output.

Last one: it can expand scope, adding steps nobody asked for. A short instruction to deliver what was asked at the scope intended, and to flag disagreement in a sentence rather than silently redesigning the task, fixes most of it.

One genuinely new capability

Opus 5 supports changing a conversation's tool set between turns without invalidating the prompt cache, behind its own beta flag. Previously the tool list was fixed for a conversation's lifetime and any edit re-billed the entire prefix, which is why so many agent harnesses declare every tool up front and eat the context cost. If you have been working around that, it is worth a look.

One caveat for anyone on guaranteed-latency plans

Priority Tier covers Opus 4.8 and Fable 5 but does not cover Opus 5, and a Priority Tier request naming it fails validation.

Where Fable 5 Still Earns Double

Fable 5 is not obsolete, it is narrower. It keeps the SWE-bench Pro crown at 80.3 and Anthropic still positions it for the most demanding long-horizon autonomous work, the overnight runs where a model has to stay coherent across hours without a human checking each step. It also has constraints Opus 5 does not:

  • Thinking is always on and cannot be disabled at any effort level, so there is no cheap fast path.
  • It requires 30-day data retention and is not available under zero data retention at all, which rules it out for some organisations before the capability question even comes up.

So my routing rule now: Opus 5 by default for everything serious, including work I would have sent to Fable 5 in June. Fable 5 only for the longest autonomous runs, and only where the 1.1 point difference plausibly decides the outcome. Everything scoped and high volume goes down the ladder, on the same logic I used in "Opus 4.8 vs Sonnet vs Haiku: How I Route Work in 2026".

On effort, start at high (the default) and sweep down rather than reflexively reaching for xhigh. Low and medium are unusually strong on this model, and effort settings carried over from a previous model are rarely the right ones.

Bottom Line

The June answer to "is double the price worth it" was usually yes. The July answer is usually no, and that flipped without either model changing price. Opus 5 sits within about a point of Anthropic's top tier on the headline coding row at half the cost, caches shorter prompts, and runs a fast mode the top tier does not have.

Budget an hour for the migration rather than a model string find-and-replace. The two changes that throw errors (thinking on by default eating your token budget, and disabled thinking above high effort) are quick to fix once you know they exist. The behavior shifts take longer, mostly because the fix is deleting prompt scaffolding that felt like good practice when you wrote it.

I keep this kind of thing in the setup I package as Claude Blueprint, and I wrote the price side of the previous generation up in "Claude Fable 5 vs Opus 4.8: Is Double the Price Worth It" if you want the before picture.

Comments

No comments yet. Start the discussion.