Migrating Claude Opus 4.x to Opus 5: It's the Slowest and Priciest Model in Its Own Family

By Promptster Team · 2026-08-21

Anthropic has shipped four Opus models in under a year: 4.6, 4.7, 4.8, and Opus 5. If you're on an older one, the upgrade path looks obvious.

We measured all four on the same battery, in the same session. The results argue for deliberateness rather than defaulting to the newest.

Capability: essentially flat

Task Opus 4.6 Opus 4.7 Opus 4.8 Opus 5
Interval-merge bug (contained-interval case) PASS PASS PASS PASS
Letter counting (answer: 10) PASS FAIL PASS PASS
4 sentences × 5 words, no "rain" PASS PASS PASS PASS
Messy text → strict JSON schema PASS PASS PASS PASS

Fifteen of sixteen. The single miss is Opus 4.7 answering 9 where the answer is 10 — a genuine wrong answer, not a formatting artifact. It's one trial, so treat it as a curiosity rather than a verdict on 4.7.

Opus 5 did not do anything the older models couldn't.

Cost and latency: the newest is the worst

Model Cost (4 tasks) vs 4.6 Latency Output tokens
Opus 4.7 $0.016310 20% cheaper 14,864 ms 571
Opus 4.6 $0.020260 18,742 ms 752
Opus 4.8 $0.023260 15% more 15,927 ms 853
Opus 5 $0.035860 77% more 22,629 ms 1,357

All four list at the same $5 / $25 per million tokens. Every difference above is verbosity: Opus 5 emitted 1,357 output tokens against 4.7's 571 — 2.4× the words for the same graded answers.

So migrating 4.6 → Opus 5 buys you a 77% cost increase and a 21% latency increase, in exchange for nothing our battery can detect.

The four breaking changes

If you migrate anyway, these will bite in roughly this order:

1. temperature is rejected. Removed on 4.7 and later — sending it returns a 400. Also top_p and top_k. Delete them; steer with prompting instead. Note the version-detection trap: a regex written for claude-opus-4-N silently fails to match claude-opus-5, which dropped the -4- segment.

2. Thinking is on by default on Opus 5. On 4.7 and 4.8, omitting the thinking parameter meant no thinking. On Opus 5, omitting it runs adaptive thinking. That's a silent cost increase and a truncation risk on any route that never set the field.

3. max_tokens now covers reasoning too. Because of change 2, a tight limit tuned for 4.x can be consumed entirely by thinking. We've measured Opus 5 spending 2,000 output tokens and returning an empty answer. Raise the ceiling.

4. Refusals return HTTP 200. Opus 5's safety classifiers decline some benign requests with stop_reason: "refusal" and an empty content array. We hit this asking it to review a function containing a SQL injection — refused three times out of three. Check stop_reason before reading content, and consider the server-side fallback parameter.

Also gone at 4.7+: budget_tokens (use effort instead) and last-assistant-turn prefills, both of which 400.

What we'd do

Stay on 4.7 or 4.8 for request-shaped work. Opus 4.7 was the cheapest and fastest model in this family, and passed three of four tasks. If your workload looks like ours — one prompt, one answer, seconds not minutes — there's no measured reason to move.

Move to Opus 5 for long-horizon agentic work. That's what it's built for and what its benchmark leads measure. Our battery is single-turn and cannot evaluate it; if you run multi-hour agents, trust Anthropic's numbers over ours.

Budget for 2.4× the output tokens if you do. At identical list rates, that's the entire cost difference.

Consider whether you need Opus at all. Claude Sonnet 5 matched Opus 5 on this battery while running faster, costing less, and following hard constraints considerably more reliably.

A note on how we nearly got this wrong

Our first pass at this comparison showed Opus 4.6, 4.7 and 4.8 all failing the letter-counting task while only Opus 5 passed — a tidy generational-improvement story.

It was a grading bug. Our checker read the first number in the response, and 4.6 and 4.8 both worked through the problem in a numbered list before arriving at the correct total. They answered 10; our grader read the 1 from "1." at the start of their working.

We caught it because the result was too clean, re-read the raw responses, and then re-audited every previous run in this series for the same artifact. No published result was affected — in every other run the models answered with the bare number.

The corrected grader takes the last number rather than the first. The lesson is the same one this series keeps relearning: a benchmark result that flatters a narrative deserves more scrutiny than one that doesn't.

Run it yourself

To compare Opus generations on your own prompts with real token counts, that's Promptster.


Run 2026-08-09 via the Promptster API, max_tokens: 4000, all four models in the same session so latency shares network conditions. One run per model per task — enough for pass/fail against deterministic answers, not enough to characterise variance. We've measured 26% run-to-run cost variance on repeated batteries, so the 4.6-vs-4.8 gap here is inside the noise floor while the Opus 5 gap is well outside it. Opus 4.7's single wrong answer is one trial and should not be read as a general regression.