Migrating Claude Opus 5 to Opus 5.5: 20% Off the Rate Card, and the Thinking Moved
By Promptster Team · 2026-11-01
Moving from Claude Opus 5 to Opus 5.5 is a safe string swap: same request parameters, identical graded results, and a 17% smaller bill on our battery. What changed underneath is where the model spends its thinking tokens. Opus 5 thought on the JSON task and not on the short-answer task; Opus 5.5 does the reverse. Per-prompt costs moved by up to 2× in both directions, which is the thing to check on your own traffic.
And before you migrate Opus to Opus: Sonnet 5.5 passed the same 15 calls for a third of Opus 5.5's cost.
| Model | Input | Output (per 1M tokens) |
|---|---|---|
| Claude Opus 5 | $5.00 | $25.00 |
| Claude Opus 5.5 | $4.00 | $20.00 |
| Claude Sonnet 5.5 | $2.00 | $10.00 |
List rates from our pricing table as of 2026-10-19. Opus 5.5 is exactly 20% below Opus 5 on both input and output.
How we measured
Three script-graded tasks: strict JSON extraction from a messy support ticket, a four-step arithmetic word problem (answer 580), and an instruction-adherence task asking for exactly three bullets of 12 words or fewer with no preamble. Five runs per task per model, max_tokens 1500, run on 2026-10-19 through our own provider handlers. The battery's default temperature is 0.7, but every Claude model at major version 5 or above rejects temperature, so our handler omits it for all three. Costs are list rate against actual token counts.
All three models passed all 15 calls. None of what follows is an accuracy difference; it is cost, latency and the shape of the output.
The bill
| Opus 5 | Opus 5.5 | Sonnet 5.5 | |
|---|---|---|---|
| Cost, 15 calls | $0.07570 | $0.06280 | $0.02085 |
| vs Opus 5 | — | 17% cheaper | 72% cheaper |
| Output tokens, 15 calls | 2,578 | 2,684 | 1,629 |
| Wall time, 15 calls | 40.1 s | 36.8 s | 20.7 s |
The rate card says 20% off; the battery delivered 17%, because Opus 5.5 wrote 4% more output tokens. Input also edged up by exactly two tokens on every prompt (207 to 209 on the JSON task, 23 to 25 on a 10-word probe), so the same text tokenizes very slightly larger. Neither is large enough to matter on its own.
The thinking moved
Claude 5-family models run adaptive thinking by default: on prompts where the model decides to reason, the response contains a thinking block ahead of the answer, and those tokens are billed as output. Anthropic reports them in usage.output_tokens_details.thinking_tokens. Here is that field across the five runs of each task:
| Task | Opus 5 thinking tokens | Opus 5.5 thinking tokens | Sonnet 5.5 |
|---|---|---|---|
| JSON extraction | 70–87 | 0 | 0 |
| Word problem | 109–131 | 84–96 | 0 |
| Three bullets | 0 | 103–114 | 0 |
Opus 5 reasoned about the support ticket and answered the bullets straight. Opus 5.5 answers the ticket straight and reasons about the bullets. The effect on cost per call:
| Task (median per call) | Opus 5 | Opus 5.5 | Change |
|---|---|---|---|
| JSON extraction | $0.004235 | $0.001896 | 55% cheaper |
| Word problem | $0.008800 | $0.006608 | 25% cheaper |
| Three bullets | $0.002090 | $0.004100 | 96% more |
The same swing shows in latency. Opus 5.5's median was 1.48 s on the JSON task against Opus 5's 1.96 s, and 2.54 s on the bullets against 1.79 s.
This is the migration risk that a battery average hides. A 17% saving overall is two large moves in opposite directions. If your traffic is mostly extraction, Opus 5.5 is a much bigger saving than the rate card suggests. If it is mostly short instruction-following, you may pay more per call than you did on Opus 5. Sonnet 5.5 reported zero thinking tokens on all 15 calls, which is most of why it is both cheapest and fastest here.
The parser note still applies
Because the thinking block comes before the text block, content[0].text is not the answer on any prompt where thinking fires. Our handler filters for every block of type text and joins them. We covered the failure mode, an HTTP 200 with an empty string and a full bill, in why your LLM returns an empty response. If you were already on Opus 5 you have presumably fixed this. The new wrinkle is that the set of prompts that trigger thinking changed, so a prompt that never exercised your parser on Opus 5 may on Opus 5.5.
The same goes for max_tokens: it caps thinking plus answer. None of our 30 Opus calls came close to the 1,500 cap, but a budget tuned to Opus 5's behaviour on a given prompt is not tuned for 5.5's.
What the output looks like
The JSON is byte-identical. All ten Opus runs, five per model, returned exactly this:
{"order_id": "ORD-77412", "reply_email": "m.okafor@example.net", "refund_amount": 89.50, "priority": "high"}
Sonnet 5.5 returns the same values without the spaces after colons. Parse before you compare.
Opus 5.5 punctuates its bullets. Opus 5 ended 0 of its 15 bullet lines with a full stop; Opus 5.5 ended all 15 with one:
Opus 5: - Silent model updates can break prompts and degrade output quality
Opus 5.5: - Prevents silent behavior changes from breaking prompts or parsers.
Trivial for a human reader; not trivial for a snapshot test or a downstream step that appends its own punctuation.
Opus 5.5 explains an ambiguity it noticed. In the word problem, shelf C's count depends on shelf B before boxes are removed. All five Opus 5.5 runs said so explicitly, for example "Shelf C's count was fixed before the removal, so it stays at 90." None of the five Opus 5 runs did. Both got 580 every time. It is a small sign the newer model is more careful to show its reading of the question, and it costs output tokens.
Do you need Opus at all?
On this battery, no. Sonnet 5.5 passed every call, cost 3.0× less than Opus 5.5 and 3.6× less than Opus 5, and ran faster on every task (median 1.08 s, 1.75 s and 1.35 s). That echoes what we found with Sonnet 5 and Opus 5 in August.
The usual caveat holds with more force than usual: three single-turn tasks cannot measure long-horizon agentic work, hard coding sessions, or anything where Opus is actually sold. If your workload is that, evaluate on it. If your workload looks like ours, short extraction, arithmetic and formatted answers, you are paying for capability the task does not use.
What we would do
Swap claude-opus-5 for claude-opus-5-5. No parameter changes, identical results, cheaper overall.
Re-measure per prompt type, not in aggregate. The thinking moved, and with it the cost of individual prompts by up to 2× either way. A blended number will hide that.
Re-check your snapshot tests. Byte-identical JSON is good news; the bullet punctuation change is the kind of diff that fails a suite for no real reason.
Try Sonnet 5.5 on the same traffic before committing to Opus. It is the cheapest way to find out whether you needed Opus in the first place. For the wider field, see our open-weight vs closed-source benchmark.
Try it yourself
- Run the three-bullet test — the prompt where Opus 5.5 started thinking and Opus 5 did not
No account, no API key. To compare Opus 5, Opus 5.5 and Sonnet 5.5 on your own prompts with token counts and cost, that's Promptster.
Run 2026-10-19 through Promptster's own Anthropic handler, five runs per task per model, max_tokens 1500, no temperature (rejected by Claude 5 and later). Thinking tokens are taken from the output_tokens_details.thinking_tokens field in each response's raw usage object; Anthropic counts them inside output_tokens, so Promptster's displayed cost already includes them. Costs are list prices from our pricing table, with no cache or batch discounts. Latency is median wall-clock from one machine in one session. n=5 per task shows nothing failed; it is not enough to rank the models on reliability.