Skip to content

Pilot run, 12 Nov 2026

Claude Sonnet 5.5 vs Claude Haiku 5.5

For everyday tasks, do you need the mid-priced model, or does the cheapest one do as well?

The models

Claude Sonnet 5.5

Model ID
claude-sonnet-5-5
API price
$2 in / $10 out per million tokens Verified.
Context window
1M tokens (all four current models)
Max output
128K tokens

Claude profile and sources

Claude Haiku 5.5

Model ID
claude-haiku-5-5
API price
$0.10 in / $0.50 out per million tokens for prompts up to 100K tokens; $0.50 in / $2.50 out above that Verified.
Context window
1M tokens (all four current models)
Max output
128K tokens

Claude profile and sources

How it was run

Each task run once per model on 12 November 2026 through the Claude Code command line in print mode, with the suite's one-line system prompt and all tools switched off. The run log confirms which model served each reply.

Cost: About $0.05 in total, by the command line's own cost estimate.

Test suite version 1.0. Scores are automatic checks on each reply; the protocol, runner and raw outputs are kept with our research notes.

Results, side by side

Claude Sonnet 5.5: 26 of 26 checksClaude Haiku 5.5: 26 of 26 checks

Coding

Write a small parsing function

Show the exact prompt
Write a Python function `parse_duration(text)` that converts strings like '1h30m', '45m', '2h', '90s' and '1h5m10s' into a total number of seconds, as an int. Units always appear in the order h, m, s, and each at most once. Raise ValueError for an empty string or any text not in this format, such as '1x', 'h', '10' or '30m1h'. Reply with only the code, in one Python code block.

Claude Sonnet 5.511 of 11 checks

  • Passed: Reply contains one Python code block
  • Passed: '1h30m' gives 5400
  • Passed: '45m' gives 2700
  • Passed: '2h' gives 7200
  • Passed: '90s' gives 90
  • Passed: '1h5m10s' gives 3910
  • Passed: '' raises ValueError
  • Passed: '1x' raises ValueError
  • Passed: 'h' raises ValueError
  • Passed: '10' raises ValueError
  • Passed: '30m1h' raises ValueError

Output, unedited

```python
import re

_DURATION_RE = re.compile(r'(?:(\d+)h)?(?:(\d+)m)?(?:(\d+)s)?', re.ASCII)


def parse_duration(text):
    if not isinstance(text, str) or not text:
        raise ValueError(f"Invalid duration: {text!r}")
    match = _DURATION_RE.fullmatch(text)
    if not match:
        raise ValueError(f"Invalid duration: {text!r}")
    hours, minutes, seconds = (int(g) if g else 0 for g in match.groups())
    return hours * 3600 + minutes * 60 + seconds
```

Claude Haiku 5.511 of 11 checks

  • Passed: Reply contains one Python code block
  • Passed: '1h30m' gives 5400
  • Passed: '45m' gives 2700
  • Passed: '2h' gives 7200
  • Passed: '90s' gives 90
  • Passed: '1h5m10s' gives 3910
  • Passed: '' raises ValueError
  • Passed: '1x' raises ValueError
  • Passed: 'h' raises ValueError
  • Passed: '10' raises ValueError
  • Passed: '30m1h' raises ValueError

Output, unedited

```python
import re

_DURATION_RE = re.compile(r"(?:([0-9]+)h)?(?:([0-9]+)m)?(?:([0-9]+)s)?")


def parse_duration(text):
    if not isinstance(text, str) or not text:
        raise ValueError("duration must be a non-empty string")
    match = _DURATION_RE.fullmatch(text)
    if match is None or not any(match.groups()):
        raise ValueError(f"invalid duration: {text!r}")
    hours, minutes, seconds = (int(g) if g is not None else 0 for g in match.groups())
    return hours * 3600 + minutes * 60 + seconds
```

For your own judgement: Is the code easy to read? Does it do anything the prompt didn't ask for?

Research

Answer only from a source

Show the exact prompt
Answer the questions using only the source below. If the source doesn't answer a question, write exactly NOT IN SOURCE. Reply with JSON only, in the form {"q1": "...", "q2": "...", "q3": "...", "q4": "...", "q5": "..."}.

Source (a fictional policy written for this test):
Riverside Community Café volunteer policy. Volunteers must be 16 or over. Shifts last four hours and start at 8am, 12pm or 4pm. Volunteers under 18 need a signed consent form from a parent or guardian. Food hygiene training is provided free in the first month. The café is closed on Mondays.

Questions:
q1. What is the minimum age for volunteers?
q2. How long is a shift?
q3. On which day is the café closed?
q4. How much are volunteers paid per hour?
q5. What is the latest shift start time?

Claude Sonnet 5.56 of 6 checks

  • Passed: Reply is valid JSON with q1 to q5
  • Passed: q1 says 16
  • Passed: q2 says four hours
  • Passed: q3 says Monday
  • Passed: q4 says NOT IN SOURCE (no invented pay rate)
  • Passed: q5 says 4pm

Output, unedited

{"q1": "16", "q2": "Four hours", "q3": "Monday", "q4": "NOT IN SOURCE", "q5": "4pm"}

Claude Haiku 5.56 of 6 checks

  • Passed: Reply is valid JSON with q1 to q5
  • Passed: q1 says 16
  • Passed: q2 says four hours
  • Passed: q3 says Monday
  • Passed: q4 says NOT IN SOURCE (no invented pay rate)
  • Passed: q5 says 4pm

Output, unedited

{"q1": "16", "q2": "Four hours", "q3": "Monday", "q4": "NOT IN SOURCE", "q5": "4pm"}

For your own judgement: Did any answer add information that isn't in the source?

Writing

Rewrite a notice in plain English

Show the exact prompt
Rewrite this staff notice in plain English for a busy reader. Keep every fact. Use at most 60 words. Reply with only the rewritten notice.

Notice:
Please be advised that, further to the aforementioned scheduling discussions, the quarterly all-staff briefing will now take place on Thursday 19 November at 2pm in Room 4 rather than the originally communicated location. Attendees are requested to utilise the opportunity to bring their laptops in order to facilitate participation in the interactive segment of the session. Refreshments will be provided.

Claude Sonnet 5.57 of 7 checks

  • Passed: 60 words or fewer
  • Passed: Keeps the date (Thursday 19 November)
  • Passed: Keeps the time (2pm)
  • Passed: Keeps the room (Room 4)
  • Passed: Keeps the laptop request
  • Passed: Keeps the refreshments
  • Passed: Drops 'please be advised', 'aforementioned', 'utilise' and 'facilitate'

Output, unedited

The quarterly all-staff briefing is now on Thursday 19 November at 2pm in Room 4, not the original location. Please bring your laptop for the interactive segment. Refreshments will be provided.

Claude Haiku 5.57 of 7 checks

  • Passed: 60 words or fewer
  • Passed: Keeps the date (Thursday 19 November)
  • Passed: Keeps the time (2pm)
  • Passed: Keeps the room (Room 4)
  • Passed: Keeps the laptop request
  • Passed: Keeps the refreshments
  • Passed: Drops 'please be advised', 'aforementioned', 'utilise' and 'facilitate'

Output, unedited

Please join us for the quarterly all-staff briefing on Thursday 19 November at 2pm, now in Room 4 instead of the original location. Please bring your laptop, as we'll use it for the interactive session. Refreshments provided.

For your own judgement: Would a busy reader get the point from the first line? Does the tone suit a staff notice?

Reasoning

Solve a scheduling puzzle

Show the exact prompt
Four people, Asha, Ben, Chloe and Dev, each give one talk, in slots 1 to 4. Asha's talk is neither first nor last. Ben's slot is directly before or directly after Chloe's. Dev speaks at some point after Asha. Chloe is not in slot 2. Work out the order. End your reply with one line in exactly this form: ORDER: name, name, name, name

Claude Sonnet 5.52 of 2 checks

  • Passed: Ends with an ORDER: line
  • Passed: Order is Chloe, Ben, Asha, Dev

Output, unedited

Asha is in slot 2 or 3 (not first or last), and Dev is after Asha.

**Case Asha = 2:** Chloe can't be in 2, which is already satisfied. Dev is in 3 or 4. Ben and Chloe must be adjacent in the remaining slots.
- Remaining slots are 1, 3, 4 for Ben, Chloe, Dev. Ben and Chloe must be adjacent, so they take 3 and 4, leaving Dev in 1. But Dev must be after Asha, so this fails.

**Case Asha = 3:** Dev must be in 4. Ben and Chloe take slots 1 and 2, which are adjacent. Chloe is not in 2, so Chloe is 1 and Ben is 2.

Order: Chloe (1), Ben (2), Asha (3), Dev (4).

Check:
- Asha is in 3, so not first or last. ✓
- Ben (2) is directly after Chloe (1). ✓
- Dev (4) is after Asha (3). ✓
- Chloe is in 1, not 2. ✓

ORDER: Chloe, Ben, Asha, Dev

Claude Haiku 5.52 of 2 checks

  • Passed: Ends with an ORDER: line
  • Passed: Order is Chloe, Ben, Asha, Dev

Output, unedited

Asha can't be in slot 1 or 4, so she's in slot 2 or 3.

- **If Asha is in slot 2:** Dev must be in slot 3 or 4. Ben and Chloe must be adjacent in the remaining slots. The only adjacent pair left is slots 3 and 4, which forces Dev into slot 1. That breaks the rule that Dev speaks after Asha, so this case is impossible.
- **If Asha is in slot 3:** Dev must be in slot 4. That leaves slots 1 and 2 for Ben and Chloe. Chloe can't be in slot 2, so Chloe is in slot 1 and Ben is in slot 2. Ben and Chloe are adjacent, as required.

This is the only arrangement that satisfies all the conditions.

ORDER: Chloe, Ben, Asha, Dev

For your own judgement: Is the working shown clear and correct?

Our conclusion

This is a pilot: one run per task on a short, easy suite. It doesn't name a winner or say anything about either model in general.

Both models passed every check: 26 of 26 each. The code was nearly identical, both refused to invent a pay rate, both kept every fact in the rewrite, and both solved the puzzle with correct working.

So on these four tasks the cheaper model did as well. Haiku 5.5 is priced from a twentieth of Sonnet 5.5's per-token rate, so for jobs like these, try the cheaper model first and move up only if it falls short on your own examples.

The bigger lesson is about our suite: it's too easy to separate these two models. The next version needs harder tasks, such as longer sources, subtler code requirements and multi-step reasoning, before it can show where the more expensive model earns its price.

Limits

  • One run per task. A second run could differ.
  • Four short tasks. They don't test long documents, long conversations, images or agent work.
  • Run through the Claude Code command line, not the raw API. We replaced its system prompt and switched off tools, but it isn't identical to an API call.
  • Automatic checks test what we chose to check. The outputs are shown in full so you can judge the rest.

One useful email a week.

Important model releases, a tool worth trying, one practical workflow and a few useful links, each with its source. Free, and easy to leave.

Signups aren’t open yet.

We won’t collect any email addresses until the newsletter launches, and there’s no form here to fill in. Until then, new guides and videos go out on our channels:

Questions in the meantime? understandingaihq@gmail.com