guide · ai

Claude Sonnet vs Haiku vs Opus: When to Pick Which

A practical decision rubric for the Anthropic Claude tiers: per-tier cost, speed, capability, and a 7-row table mapping everyday tasks to the right model.

July 14, 2026 · By Alastair Fraser

Three friendly retro robots lined up by size, each wearing a labeled badge (HAIKU, SONNET, OPUS), with a hand-drawn arrow pointing from a task card to the right robot.

The three tiers, in one sentence

Haiku is the cheap-and-fast tier for high-volume low-stakes work. Sonnet is the balanced tier for everyday reasoning. Opus is the heaviest tier for reasoning that has to be right.

Three tiers, three jobs. The mistake most operators make is treating the three like a ladder they must climb — start at the bottom, upgrade if needed. The Anthropic Claude lineup is not a ladder. It is three parallel tools with different cost and capability profiles, and the right one depends entirely on the call you are about to make.

The decision rubric

This is the table to bookmark. Read the “task” column on the left, pick the tier on the right, and stop second-guessing.

TaskPickWhy
One-line reply, classification, JSON extractionHaiku 4.5Cheapest; near-frontier quality on short structured prompts
High-volume categorization (triage, tagging, routing)Haiku 4.5Cost-per-call dominates; capability is plenty
Single-file code edit with clear diff in mindSonnet 5Right balance of context grasp and latency
Multi-file analysis or refactor across modulesSonnet 5Better instruction-following than Haiku; cheaper than Opus
Long-context summarization (200k–1M tokens)Opus 4.8 or Sonnet 5Sonnet for routine summarization; Opus when the summary drives a decision
Code review where missed bugs are expensiveOpus 4.8Highest code-correctness ceiling in the lineup
Math / proof verification / multi-step reasoning chainsOpus 4.8Heavyweight reasoning is what the tier exists for

If a task fits two rows, pick the cheaper tier first. Promote only after the cheaper tier demonstrably fails on the operator’s downstream.

Cost per million tokens (snapshot)

Live prices from the Anthropic pricing page, captured 2026-07-14. All figures are USD per million tokens (MTok), input / output.

ModelInputOutputContext window
Claude Haiku 4.5$1$5200k
Claude Sonnet 5 (intro through 2026-08-31)$2$101M
Claude Sonnet 5 (standard from 2026-09-01)$3$151M
Claude Opus 4.8$5$251M

Output tokens cost 5x as much as input tokens across the lineup. That is why long-winded system prompts matter more than people think: a 1k-token system prompt is cheap (input); a 1k-token opus response with the same content is a five-times costlier line on the bill.

The intro pricing on Sonnet 5 expires on 2026-08-31. Do not bake the $2/$10 figure into any long-lived automation or budget forecast without a refresh date in the comment.

The four capability axes

A useful way to compare three tiers without drowning in benchmark graphs: pick four axes that map to operator outcomes.

  1. Reasoning depth — Haiku solid, Sonnet stronger, Opus strongest on multi-step chains. The gap between Sonnet and Opus widens noticeably on multi-hop problems.
  2. Speed floor — Haiku fastest on short prompts, Sonnet close behind on most calls, Opus noticeably slower because more compute is spent per token.
  3. Instruction-following — Sonnet and Opus both hold complex, layered system prompts reliably; Haiku can drift on long or contradictory instruction sets.
  4. Code-correctness — All three tiers can write code; Sonnet is the everyday workhorse; Opus is the model to reach for when a missed edge case is a real cost.

The Anthropic model cards document these axes formally with test methodology; the operator takeaway above is the gut version distilled from running them.

When to override the rubric

Sometimes a task that “should” be Sonnet keeps failing three times in a row. Promote to Opus. Sometimes a task that “should” be Opus lands clean on the first call with Sonnet. Demote and bank the savings.

The rule of thumb is short: move up a tier when the output is unfit for the operator’s downstream; move down when the output is fine and the cost is obvious. The rubric is a starting bias, not a law. Each call is one data point; a small personal log of “task → tier → result → retry count” quickly becomes the most valuable piece of operational metadata in the whole stack.

Use Haiku for:

  • Quick one-liner replies
  • High-volume categorization
  • Tiny summarization (≤ 500 tokens of input)
  • Cheap shell-out layers in multi-agent systems

Use Sonnet for:

  • Mid-depth reasoning and most everyday reasoning tasks
  • Code generation across single files or a small set
  • Multi-step instructions with several constraints
  • The default fallback when the task is not obviously tiered

Use Opus for:

  • Long-context tasks with downstream consequences
  • Math or proof verification
  • Architecture-level design across many components
  • Reasoning chains where two-strikes-out means the project failed

Common failure modes

MistakeWhat it costs
Defaulting every call to OpusBurns 5x the input budget on trivially easy tasks; Sonnet would have shipped faster and cheaper
Routing Opus-grade tasks to Haiku to save moneyThe output is rejected, retried, or quietly shipped wrong — the “savings” turn into rework cost
Locking an app to one tier foreverA new Anthropic release shifts the cost/quality curve; the app’s worst task suddenly becomes its most expensive line item
Benchmarking on a single test promptEvery call is one data point — pick the tier on five diverse tasks before committing
Confusing the legacy and current aliasesclaude-3-5-sonnet-*, claude-3-7-sonnet-*, claude-sonnet-4-*, and claude-sonnet-5 are four different models with different prices

What not to do

  • Don’t lock your app to a single tier. Compose a routing layer: cheap tier first, expensive tier on failure.
  • Don’t pick Opus by reflex. Operators fresh out of a benchmark high are the most expensive users Anthropic has.
  • Don’t write a benchmark of one — every call is one data point. Test on five diverse tasks before committing to a tier assignment.
  • Don’t confuse model family generations. 3.5 Sonnet, 3.7 Sonnet, Sonnet 4.5, Sonnet 4.6, and Sonnet 5 are different models with different prices and capability ceilings.
  • Don’t quote input pricing while ignoring output — output is 5x input on every tier.

Verification checklist

Three commands to confirm what is actually happening on a real call.

  1. Which model is loaded? Inspect the API request payload or the Hermes config layer: cat ~/.hermes/config.yaml | grep -A2 'models:'. The default: and the alias on the active provider must match the tier you intended to call.
  2. How many tokens moved? Capture the response usage block (input_tokens, output_tokens, cache_read_input_tokens). On the Claude API this is part of every Messages response; on Hermes it surfaces in the run log.
  3. What did that call cost? Multiply: (input × tier.input_price) + (output × tier.output_price). Pre-compute it as a one-liner so cost is visible before the next call, not after the bill.

Sources

Last verified: 2026-07-14.

Sources

#claude#anthropic#sonnet#haiku#opus#comparison#decision

Submit a take

Have a different read on this? Drop a comment below — your email isn't published, and I read every one. Nothing leaves the site until I approve it.

Your email address will not be published. Required fields are marked.