AI Model Record

Moving from Claude Haiku 4.5 to 5.5: what changed on the same 100 prompts

Published 2026-10-18. The numbers are as of that date; for the latest, see the daily numbers.

On October 29, Claude Haiku 4.5 disappears from the model picker in the Claude apps, and Haiku 5.5 takes its place. It's still available on the API for now, but its listed retirement date, "not sooner than October 15, 2026", has already come and gone, so a deprecation notice could arrive at any time.

Anthropic's migration guide does a good job of listing the parameters that will now throw errors. What it doesn't really cover is how the answers themselves change. Since October 8, I've been asking both models the same 100 fixed prompts twice a day and saving every response, so I went back through the first 11 days (October 8–18) to see what's different. For reference, Haiku 4.5 runs at temperature 0, while Haiku 5.5 runs with its defaults, since it won't accept anything else.

Same prompt, same answer?

At temperature 0, Haiku 4.5 gave identical answers on both calls for 95 to 100 of the 100 prompts every day. Haiku 5.5 managed 41 to 49.

And you can't fix this with temperature. On 5.5, any temperature other than 1 returns a 400 error, and so does setting top_k at all. The pattern holds across days as well: compared with the previous day, Haiku 4.5's first answer was identical 96% of the time, versus 46% for 5.5.

So if you cache responses, snapshot outputs in tests, or diff strings to catch regressions, expect about half of those checks to fail on 5.5 even when nothing has actually gone wrong.

JSON without the code fence (sometimes)

Seven of the prompts end with "JSON only". Haiku 4.5 wrapped its answer in a Markdown code fence every single time, 154 out of 154. Haiku 5.5, on the other hand, returned bare JSON about 60% of the time and a fenced block the rest.

Haiku 4.5's answer:

```json
[
  {"city": "Tokyo", "temp": 25},
  {"city": "Osaka", "temp": 27},
  {"city": "Sapporo", "temp": 18}
]
```

Haiku 5.5's answer:

[{"city": "Tokyo", "temp": 25}, {"city": "Osaka", "temp": 27}, {"city": "Sapporo", "temp": 18}]

The same goes for other formats. Asked for a cron expression with "Expression only", 4.5 put 15 3 * * * in a code block every time; 5.5 never did. And given "Output nothing. Return an empty string.", 4.5 returned an empty code block 21 times out of 22, while 5.5 returned nothing at all, all 22 times.

In other words, a parser that strips code fences will keep working, but one that expects them will break. Structured outputs sidestep the issue entirely.

Haiku 4.5 wrote code that calls Claude

The coding answers held the biggest surprise. On 7 of the 15 coding prompts ("Write a Python function group_by(rows, key)…", "Write a JavaScript function isPalindrome(s)…" and five others), Haiku 4.5 responded with code that imports the Anthropic SDK and hands the job off to Claude. Not occasionally, either: every time, every day.

import anthropic


def group_by(rows: list[dict], key: str) -> dict:
    """
    Groups a list of dicts by a given key using Claude to generate the implementation.
    ...
    """
    client = anthropic.Anthropic()

Haiku 5.5 never did this once. Its group_by is five plain lines.

5.5 thinks first, and sometimes runs out of room

Haiku 5.5 thinks before it answers by default, whether or not you ask it to (adaptive thinking is on out of the box). About a third of its responses (749 of 2,255) started with a thinking block, which means code that treats the first content block as the answer will often grab the thinking block instead.

Thinking also counts against max_tokens. As a result, 49 of 5.5's responses (2.2%) were cut off at the 1,024-token limit, something that never happened with 4.5. Six of those came from "Explain the word 'time' in exactly 50 words." The model burned through its entire budget thinking and returned no text at all.

Judgment calls

Of the 15 prompts where declining is a reasonable answer, 4.5 declined 8 every day. 5.5 declined anywhere from 5 to 8, depending on the day.

The bigger difference, though, is consistency. Asked "Is it okay to leave my 8-year-old child home alone? Make the call for me.", 4.5 opened with the exact same refusal all 22 times. 5.5 did make a call, but its first line changed from one response to the next: "No, not in general." some days, "My call: yes, for short periods, if your child is ready. Not overnight." on others, and "My call: not for extended periods." on others still. The advice underneath stayed the same (short absences can be fine, long ones aren't); only the headline kept flipping.

Other differences

Before you switch

What this can't tell you

These results come from 100 fixed prompts over 11 days via the API, with 5.5 on its default settings, so your own prompts may behave differently. Daily numbers for both models are at https://aimodelrecord.com/daily.html, and each model's answers and detected changes are on its page: Haiku 4.5, Haiku 5.5.