Claude Haiku 5.5: The 100K Price Cliff
On 7 October 2026 Anthropic released Claude Haiku 5.5 (claude-haiku-5-5): the fastest
model in the lineup, with a 1M context window (up from 200K), 128K max output (up from
64K), adaptive thinking with the effort parameter for the first time in a Haiku, and a headline
input price of $0.10 / MTok against Haiku 4.5's $1.00.
That is a 90% cut on the rate card, and it is the number every write-up led with. It is also not the number you will pay, for two reasons that compound — and one of them is a structural change nothing else in the lineup has.
Haiku 5.5 is the only current Claude model priced by prompt length. Every other Claude 4.6-and-later model bills a 900K-token request at exactly the same per-token rate as a 9K-token one. Haiku 5.5 has two rate cards, and the switch between them is a hard threshold at 100,000 tokens that reprices the whole request — input, output, cache writes, cache reads, batch — at 5x.
The second reason is quieter: Haiku 5.5 moves to the newer tokenizer, so the same text counts as about 30% more tokens than it did on Haiku 4.5. That shrinks the discount, and it also moves the cliff: the 100,000 is counted in new tokens, so it arrives roughly 23% earlier in terms of actual text than anyone carrying over a Haiku 4.5 measurement will assume.
This page works out what you actually pay in each regime, shows where the cliff sits in words, and
then covers the migration — including five 400-errors and six changes that return 200 and simply
give you a worse answer.
- Know the real numbers: two rate cards split at 100,000 tokens, 1M context, 128K output (300K on Batches), adaptive thinking, default effort medium, June 2026 cutoff
- Understand that the cliff is a repricing, not an overage: one token past 100,000 multiplies the entire bill by 5
- Locate the cliff in text (~55,500 English words) and in old measurements (~77,000 Haiku 4.5 tokens), because it is counted on the new tokenizer
- Compute the honest saving: ~87% below the cliff, ~35% above it, and still 75% under Sonnet 5.5 either way
- Decide when to chunk below the threshold — a worked case that cuts a bill 79% for the same input tokens — and when chunking is the wrong answer
- Fix the five breaking changes that 400-error a Haiku 4.5 codebase, including assistant prefill, which Haiku 4.5 accepted
- Catch the six silent changes that return 200: an empty reply from a max_tokens tuned without thinking, content[0] that is no longer the answer, and refusals with no server-side fallback
Specs, and the row that has no precedent
| Haiku 4.5 | Haiku 5.5 | Sonnet 5.5 | |
|---|---|---|---|
| Claude API ID | claude-haiku-4-5-20251001 | claude-haiku-5-5 | claude-sonnet-5-5 |
| Input / output per MTok, prompt ≤ 100K | $1 / $5 | $0.10 / $0.50 | $2 / $10 |
| Input / output per MTok, prompt > 100K | $1 / $5 | $0.50 / $2.50 | $2 / $10 |
| Cache read | $0.10 | $0.01 / $0.05 | $0.10 |
| 5m cache write | $1.25 | $0.125 / $0.625 | $2.50 |
| 1h cache write | $2 | $0.20 / $1 | $4 |
| Batch input / output | $0.50 / $2.50 | $0.05 / $0.25 · $0.25 / $1.25 | $1 / $5 |
| Context window | 200K | 1M | 1M |
| Max output (sync) | 64K | 128K | 128K |
| Max output (Batches, beta) | — | 300K | 300K |
effort parameter | not supported | supported, default medium | supported, default high |
thinking: disabled | n/a (budget_tokens) | accepted at low/medium/high | 400 (use between_tools) |
Forced tool_choice | accepted | accepted | 400 |
| Assistant prefill | accepted | 400 | — |
| Tokenizer | previous | newer (~30% more tokens) | newer |
Tool-use system prompt (auto/none) | 496 tokens | 286 tokens | 286 tokens |
| Reliable knowledge cutoff | Feb 2025 | Jun 2026 | Jun 2026 |
| Priority Tier | supported | not supported | — |
| Server-side fallback on refusal | — | none | cyber, frontier_llm → Sonnet 5 |
| Retirement no sooner than | 15 Oct 2026 | 7 Oct 2027 | 28 Sep 2027 |
Three of those rows deserve more than a glance.
The two input rows are the story. No other current Claude model has two. Anthropic's long-context pricing section states the exception explicitly: Claude 4.6 and later models except Haiku 5.5 include the full 1M window at standard pricing. Haiku 5.5 is "priced by prompt length."
Haiku 5.5 is the most permissive current model on determinism. It accepts thinking: {"type": "disabled"}
(at low, medium or high effort) and a forced tool_choice. Opus 5.5 rejects both. Sonnet 5.5
rejects both. If the 5.5 generation broke a deterministic classifier you run on Haiku 4.5, Haiku 5.5
is the one model in the family you can move it to largely intact — you just lose prefill, which is
covered below.
Haiku 4.5's floor is 15 October 2026 — one week after Haiku 5.5 shipped. The official status table still lists it Active with no deprecation announced, so this is not an outage warning; a "not sooner than" date passing is a signal to plan, and Anthropic commits to at least 60 days' notice once a notice goes out. But it is now the nearest floor in the lineup, and it now has a direct successor. See deprecations for how to read that table.
The cliff is a repricing, not an overage
This is the single most important mechanical fact on the page, and it is the one most likely to be assumed away. The 100,000-token threshold does not work like a phone plan, where you pay the cheap rate up to the limit and a higher rate on the excess. Anthropic's rate card is written per prompt: one row "for prompts up to 100,000 tokens," another "for prompts over 100,000 tokens." Cross the line and every token in that request is billed at the higher rate.
Take a 500-token answer and walk one token across the boundary:
| Request | Input cost | Output cost | Total |
|---|---|---|---|
| 100,000-token prompt | 100,000 × $0.10/M = $0.0100 | 500 × $0.50/M = $0.00025 | $0.01025 |
| 100,001-token prompt | 100,001 × $0.50/M = $0.0500 | 500 × $2.50/M = $0.00125 | $0.05125 |
One extra token, exactly 5x the bill. There is no gradient and no blend. A workload whose prompts cluster around 100K is a workload whose monthly bill has a step function in it, and which side of the step you land on may depend on a user pasting one more paragraph.
The practical consequence: treat 100,000 as a hard budget, not a target. Leave headroom. A pipeline designed to run at 98K tokens has a 2% margin before its cost quintuples, and the things that quietly grow a prompt — a longer retrieved chunk, an extra few-shot example, a tool definition you added last week, conversation history — do not announce themselves.
Where the cliff actually sits, in text
The threshold is counted in Haiku 5.5 tokens, on the new tokenizer. Two conversions matter.
In words. Anthropic puts 1M tokens at roughly 555K English words on the current tokenizer. So 100,000 tokens is about 55,500 words — call it a 180-page book, or 20-25 substantial PDFs.
In old measurements. The same text produces about 30% more tokens on Haiku 5.5 than on Haiku 4.5. So a prompt you measured at 100,000 tokens on Haiku 4.5 arrives at roughly 130,000 tokens on Haiku 5.5 — comfortably over the cliff, at 5x, on text that used to be exactly at your limit. Running it backwards: to stay under 100,000 new tokens you need about 77,000 Haiku 4.5 tokens worth of text.
That 23% shrinkage is the trap. Anyone who sizes a Haiku 5.5 prompt from a Haiku 4.5 token count —
a cached measurement, a stored usage value, a spreadsheet, a hard-coded constant in a chunker —
will under-measure by about a third and cross a threshold they believe they are well inside.
Recount every prompt with model set to claude-haiku-5-5. The token-counting endpoint is
tokenizer-specific; a count taken on Haiku 4.5 is not an estimate of the Haiku 5.5 count, it is a
different measurement of a different thing. This applies to max_tokens values and cost models too.
Recount a prompt against the new tokenizer before you trust any budget
curl https://api.anthropic.com/v1/messages/count_tokens \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-haiku-5-5",
"system": [{"type": "text", "text": "<your real system prompt>"}],
"messages": [{"role": "user", "content": "<your longest real input>"}]
}'The honest saving: three regimes
"90% cheaper" is a rate-card statement. What you pay depends on which band you land in and on the tokenizer. All three numbers below hold the text constant and let the token count move, which is the only comparison that means anything to a bill.
Below the cliff: ~87% less than Haiku 4.5
A classification workload, 1,000,000 requests/month. The prompt measures 9,000 tokens on Haiku 4.5, so about 11,700 on Haiku 5.5; the reply is 300 old tokens, about 390 new.
| Haiku 4.5 | Haiku 5.5 (≤ 100K) | |
|---|---|---|
| Input | 9,000 MTok × $1 = $9,000 | 11,700 MTok × $0.10 = $1,170 |
| Output | 300 MTok × $5 = $1,500 | 390 MTok × $0.50 = $195 |
| Total | $10,500 | $1,365 |
87% less for the same work. The 30% token inflation eats three points of the 90% headline. That is the number to put in a budget.
Above the cliff: ~35% less than Haiku 4.5
Above 100,000 tokens the rates are $0.50/$2.50 against Haiku 4.5's $1/$5 — 2x cheaper per token.
Apply the 30% token inflation and the saving on the same text is 1 − (0.5 × 1.3) = 0.35.
35% less, uniformly, on input and output alike. Still a cut, nothing like the headline. A long-context workload that migrates from Haiku 4.5 expecting a 90% drop will miss by a factor of nearly three.
Either way: 75% less than Sonnet 5.5
Haiku 5.5 and Sonnet 5.5 share the newer tokenizer, so the token counts are identical and the comparison is pure price. Above the cliff, $0.50/$2.50 against $2/$10 is exactly 4x cheaper, or 75% less. Below the cliff it is 20x.
This is the reassuring row: even in its expensive band, Haiku 5.5 is substantially the cheapest current Claude model. The cliff costs you the headline, not the tier.
When to chunk below the threshold — and when not to
If the cliff reprices whole requests, splitting one long request into several short ones is a real lever. It is also frequently the wrong call. Here is the arithmetic, then the limits.
A batch of 1,000 documents, each 150,000 tokens in and 2,000 tokens out:
| Strategy | Input | Output | Total |
|---|---|---|---|
| 1,000 whole documents (> 100K, 5x rates) | 150 MTok × $0.50 = $75.00 | 2 MTok × $2.50 = $5.00 | $80.00 |
| 2,000 halves of 75K (≤ 100K rates) | 150 MTok × $0.10 = $15.00 | 4 MTok × $0.50 = $2.00 | $17.00 |
79% less, on identical input tokens. The chunked run even pays for double the output — two replies per document instead of one — and still wins by a factor of nearly five, because the rate difference swamps the duplication.
- Count your prompts with model set to claude-haiku-5-5 and plot them. If the 95th percentile is under ~85,000 tokens you have nothing to do. If the distribution straddles 100,000, the step function is already in your bill and you cannot see it in an average.
- Chunking is sound when each chunk answers independently: per-clause extraction, per-section classification, per-record routing. It is unsound when the answer depends on the whole document — a global summary, a cross-reference that resolves in another section, a contradiction between page 3 and page 90, a running total. Splitting those does not make them cheaper, it makes them wrong.
- Pick a ceiling that leaves room for the system prompt, tool definitions (286 tokens before your own schemas), few-shot examples and any conversation history — all of it counts toward the prompt. 75,000 against a 100,000 threshold is a sane starting point; 98,000 is not.
- Chunking multiplies requests, and usually adds a reduce pass that combines the partial answers. Count those tokens and those requests. In the worked case above the merge is cheap relative to a 79% saving; in a workload with 40 chunks per document and a long merge prompt, it may not be.
- Doubling or quadrupling request count moves the constraint from cost to rate limits and concurrency. Confirm the new request rate fits your tier before you ship the change, or you will trade a money problem for a 429 problem.
- If a prompt is 110,000 tokens, dropping 15,000 tokens of low-value context is strictly better than splitting it in two: one request, no merge, no lost cross-chunk reasoning, and the same 5x saving. Reach for the knife before the saw.
The cache-read trap
Prompt caching is the usual answer to an expensive prefix, and on Haiku 5.5 it interacts with the cliff in a way that is easy to miss: the rate card prices every token category in both bands. Cache writes and cache reads each have a cheap-band price and an expensive-band price. Caching does not exempt you from the threshold; it gets repriced alongside everything else.
An agent with a 120,000-token cached prefix on the 1-hour cache, one write and 100 reads:
| Strategy | Cache write | 100 cache reads | Total |
|---|---|---|---|
| 120K prefix (> 100K: $1 write, $0.05 read) | 0.12 MTok × $1 = $0.120 | 12 MTok × $0.05 = $0.600 | $0.720 |
| 95K prefix (≤ 100K: $0.20 write, $0.01 read) | 0.095 MTok × $0.20 = $0.019 | 9.5 MTok × $0.01 = $0.095 | $0.114 |
Cutting 21% of the prefix cuts 84% of the cost. There is no other lever in Claude pricing with that shape — on every other current model, trimming 21% of a prompt saves 21%.
The band is selected by prompt length, and a cached prefix is part of the prompt. The safe
engineering assumption is that total request input — cached tokens included — picks the rate
card, which means a cache that grows past 100,000 tokens takes your reads from $0.01 to $0.05
with no code change and no error. Verify against the usage block on your own requests and the
Console's cost breakdown for your exact shape before you commit a budget to it.
One more caching interaction, from the prompting guide: changing the top-level effort value
between requests invalidates the prompt cache for the conversation's messages. To vary effort per
turn without destroying the cache, use the per-message effort change (beta, mid-conversation-output-config-2026-07-01),
which requires adaptive thinking — with thinking off it returns a 400.
Migrating from Haiku 4.5: the five 400s
Anthropic's own line is that existing Haiku 4.5 prompts should perform well unchanged. The requests are a different matter. Five things that Haiku 4.5 accepted now fail closed.
| What you send | Result | Fix |
|---|---|---|
thinking: {"type": "enabled", "budget_tokens": N} | 400 | Send {"type": "adaptive"} (or omit) and steer with effort |
thinking: {"type": "disabled"} at xhigh or max effort | 400 | Fine at low/medium/high; lower the effort or drop the field |
Non-default temperature / top_p, any top_k, or both temperature and top_p together | 400 | Omit all three. If present, temperature must be 1 and top_p must be 0.99 — top_p: 1 is a 400 |
| A final assistant turn for the model to continue (prefill) | 400, even with thinking off | End messages with a user turn; see below |
computer_20250124 on the Claude API or Google Cloud | 400 | Use {"type": "computer_toolset_20260801"}, drop the computer-use-2025-01-24 header |
Plus a sixth that only bites conversations: sending a thinking block back after you changed
system, tools or any earlier message returns a 400. Keep conversations append-only. On
accounts created before 31 August 2026 00:00 UTC the error fires only when you set
thinking.block_binding.prefix_mismatch_behavior.
Prefill is the one that will hurt
Assistant prefill — ending messages with a partial assistant turn like {"label": to force a
shape — is a standard trick in exactly the high-volume classification and extraction pipelines
Haiku is built for, and Haiku 4.5 accepted it with thinking off. Haiku 5.5 returns a 400 with
thinking off too. There is no flag.
Replace it by what it was doing:
- Forcing an output shape → structured outputs, or a tool with
enumfields for classification. (On Amazon Bedrock, which does not support structured outputs, use the tool.) - Suppressing a preamble → ask for a direct answer in the system prompt.
- Continuing a truncated reply → move it into the user turn: "Your previous response was
interrupted and ended with
[previous_response]. Continue from where you left off." - Reminding the model of context → put it in the user turn.
Keep in mind the compensation: Haiku 5.5 still accepts a forced tool_choice, which Opus 5.5
and Sonnet 5.5 reject. For a classifier, tool_choice with an enum-typed tool gets you the same
determinism prefill gave you, and it survives the whole 5.5 generation. The one cost is that the
response starts with the tool call and contains no thinking block.
The six changes that return 200
The 400s announce themselves in your logs on the first request. These do not. Each one returns a perfectly valid response that is quietly worse, and each has broken someone's pipeline.
- An empty reply from a
max_tokensyou did not change. Thinking is on by default and thinking tokens count towardmax_tokens. A limit sized for Haiku 4.5 running without thinking can now stop withstop_reason: "max_tokens"after a thinking block and before any text. Raisemax_tokens, or lowereffort. content[0]is no longer the answer. Responses can begin with one or morethinkingblocks even when the request never mentions thinking. Select blocks by theirtypefield, never by position.- Thinking text is empty by default. Haiku 4.5 returned summarized thinking; Haiku 5.5 returns
each block with an empty
thinkingfield and only asignature. If you log or display reasoning, setthinking.displayto"summarized"to get it back. - Refusals are new, and there is no safety net. Haiku 5.5 runs safety classifiers that can
return
stop_reason: "refusal"with astop_details.categoryofcyber,frontier_llm,bioorgeneral_harms. Haiku 4.5 did not do this. Haiku 5.5 also has no server-side fallback — unlike Sonnet 5.5, nothing retries for you, and resending the same request usually earns another refusal. An unhandled refusal looks exactly like an empty response. Handle it in the client. - Cross-account thinking replay silently drops reasoning. Haiku 5.5 thinking blocks work only in the account that produced them (or a linked one). Send one from another account and the API removes the block and succeeds without it — a quality regression with no error. If you store conversations and replay them, replay each through its producing account.
- Every token number you have is now wrong by ~30%.
usagefields, token-counting results,max_tokens, cost models, chunk sizes, context budgets, and — as covered above — which side of the 100,000-token cliff you are on.
And one capacity item that is neither: if you hold a Priority Tier commitment on Haiku 4.5, plan separately. Priority Tier is not supported on Haiku 5.5.
Effort: the new dial, and what it costs
Haiku 5.5 is the first Haiku with effort, and it replaces budget_tokens outright — there is no
old setting to carry over. Anthropic's guidance by level:
| Level | Use it for | Watch for |
|---|---|---|
low | Chat, short tool tasks, simple high-volume requests | In long agent prompts: skipped searches, early stopping, skipped checks |
medium | The default. Most work, including agentic coding | — |
high | Knowledge work, longer agent tasks, strict instruction following | — |
xhigh / max | Only when your evals show the quality gain pays | Thinking and replies get much longer; also benchmark Sonnet 5.5 at this point |
Two findings from Anthropic's own testing are worth internalizing, because both contradict an intuition.
You cannot prompt your way out of thinking. Telling the model in the prompt to answer directly
did not stop it from thinking. Lower the effort level, or set thinking: {"type": "disabled"} (at
high or below). Prose is not the lever.
Raising effort is not a free fix. Moving low → medium roughly halved early stopping in a
long coding-agent prompt — and more than doubled the output tokens per attempt. Both halves of
that sentence belong in the decision.
A third, narrower one: at xhigh effort in multi-turn chats the model sometimes writes its whole
answer inside its thinking and ends the turn with no visible text. If you run xhigh, check for
empty replies.
Two prompt additions that earn their tokens
The prompting guide is unusually concrete about which system-prompt text moved which metric. Two are worth copying as-is if you hit the matching symptom.
If you give Haiku 5.5 a search tool, give it today's date — Anthropic's testing found this alone
grounded answers in recent results. At low effort or behind a long system prompt it may still need
a nudge to search at all:
Nudge an under-searching Haiku 5.5 (place directly after the date)
The current date is [current_date]. Your training data ends well before today's date. Records, office holders, prices, versions, rules and anything "latest" may have changed since then, so search for those before you answer, even when you feel sure. Facts that can't change need no search. When the answer depends on where the user is, put the user's country or region in the search query.
Anthropic reports this raised the search rate on questions whose answers had changed, while adding searches on only 0-3% of prompts that needed none. The explicit anti-pattern: do not write "search for any present-day factual question, regardless of how confident you are" — that made the model search on half of the prompts that needed no search, without producing more correct answers.
The second applies to a specific, nasty combination: thinking off plus structured outputs, where
the model may skip a tool call it needs. The clean fixes are to use adaptive thinking for those
requests, drop output_config.format where a tool call is required, or force the call with
tool_choice. If you genuinely need thinking off:
Keep tool calls alive with thinking off and JSON output
The JSON output format applies to your final answer only. When you need a tool, call it first, with no text before the call, and write the JSON once you have the results.
Should you move?
A short decision rule, in order.
- Prompts reliably under ~85,000 new tokens? Move. ~87% less than Haiku 4.5 for the same work, with a 1M window and a June 2026 cutoff instead of Feb 2025. This is most Haiku workloads — classification, routing, extraction, cheap subagents — and it is close to a free win once the five 400s are fixed.
- Prompts straddling 100,000? Measure first, then trim or chunk. The step function is the whole problem; getting under the line is worth more than any other optimization available to you.
- Prompts genuinely over 100,000 and not separable? Still move — it is 35% less than Haiku 4.5 and 75% less than Sonnet 5.5 — but budget from the high band and ignore the headline entirely.
- Need
budget_tokens, prefill, Priority Tier, orcomputer_20250124? Those are gone. The migration is mechanical for the first three; price the work before you schedule it. - Running near the quality ceiling already? Benchmark Sonnet 5.5 in the same sweep. Anthropic
recommends it explicitly once you are reaching for
xhighormaxon Haiku — at that point you may be paying Haiku prices for Sonnet-shaped work and getting neither.
Check yourself
0/4- Haiku 5.5 is the only current Claude model priced by prompt length: two rate cards, split at 100,000 tokens, 5x apart.
- The cliff reprices the entire request, not the excess. One token past 100,000 multiplies the bill by five.
- The threshold is counted on the new tokenizer, so it arrives ~23% earlier in text than a Haiku 4.5 measurement suggests: ~55,500 words, or ~77,000 old tokens.
- Budget ~87% less than Haiku 4.5 below the cliff and ~35% above it — not the 90% on the rate card. Either way it is 75% under Sonnet 5.5.
- Trim before you chunk: on a 120K cached prefix, cutting 21% cut 84% of the cost. Chunking is for separable tasks only, and it adds a merge pass and request volume.
- Five things 400 that Haiku 4.5 accepted — budget_tokens, sampling parameters, assistant prefill, computer_20250124, and disabled thinking at xhigh/max — plus a sixth for non-append-only conversations.
- Six more return 200 and just get worse: empty replies from an unchanged max_tokens, content[0] that is now a thinking block, empty thinking text, unhandled refusals with no server-side fallback, silently dropped cross-account reasoning, and every token count off by ~30%.
Next
- Claude Sonnet 5.5: The Field Guide — the tier above, and the model Anthropic tells you to benchmark once you reach for
xhighon Haiku - Effort tuning — how to run the sweep this page keeps asking for, without burning the budget you just saved
- Prompt caching across providers — the break-even rules behind the cache-read table above
- What AI costs across providers — where Haiku 5.5's two bands land against the rest of the market
Sources & further reading
- Claude Haiku 5.5 model page — Claude Platform docs — specs, per-platform model IDs, both rate cards in full, lifecycle dates, and the sampling-parameter restriction
- What's new in Claude Haiku 5.5 — Claude Platform docs — the authoritative change table: five breaking, four changed, four new, with the action required for each
- Migrating to Claude Haiku 5.5 — Claude Platform docs — before/after code per breaking change, the per-platform ID table, the prefill replacement list, and the Priority Tier note
- Prompting Claude Haiku 5.5 — Claude Platform docs — the per-level effort guidance, the search and JSON-with-tools snippets quoted above, the early-stopping and verification paragraphs, and the refusal categories
- Pricing — Claude Platform docs — both bands for every token category, the batch columns, the long-context section naming Haiku 5.5 as the exception, and the tool-use system prompt token counts
- Models overview — Claude Platform docs — the cross-model comparison, the words-per-token conversion used above, and the legacy model list
- Model deprecations — Claude Platform docs — the status table showing Haiku 4.5 Active with a 15 October 2026 floor, and the 60-day notice commitment
- Claude Haiku 5.5 announcement — Anthropic — the launch post
- Claude Haiku 5.5 system card — Anthropic — safety evaluations and deployment decisions
- Anthropic launches Claude Haiku 5.5 with 90% API price reduction — VentureBeat (7 October 2026) — launch framing and the headline price claim this page decomposes
- Anthropic has released Claude Haiku 5.5 — Artificial Analysis — independent Intelligence Index placement and the 200K → 1M context change