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
- The letter-counting task — the answer is 10
- The interval-merge bug
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.