learnaiwithrafa
ClaudeSetup

Sonnet 5: The Price Didn't Change, Your Bill Will

Sonnet 5 lists at the same $3/$15 as Sonnet 4.6, but a new tokenizer turns the same input into up to 1.35x the tokens — and the discount hiding that expires August 31, 2026. Here are the specs that decide something, plus the routing rule I run.

5 min read4 sources
  • #models
  • #claude
  • #sonnet-5
  • #pricing

Every Sonnet 5 writeup leads with the price: $3 per million input tokens, $15 output — exactly what Sonnet 4.6 cost. That reads like a free upgrade. It isn't, and the reason sits in a footnote: Sonnet 5 ships with the newer tokenizer, and Anthropic's own launch note says the same input can map to roughly 1.0–1.35x the tokens depending on content type. The price per token held. The number of tokens per job went up.

Right now that increase is masked by introductory pricing of $2 / $10 per million — a 33% discount that lands almost exactly on top of the tokenizer inflation. It ends August 31, 2026. On September 1 two things move at once: the rate returns to $3/$15 and you're still paying for more tokens per task than Sonnet 4.6 charged you. Put that date in a calendar, not in your head.

The spec rows that actually decide something

The model id is claude-sonnet-5 — a pinned snapshot, not an evergreen alias.

  • Context window: 1M tokens. The docs put that at ~555k words. Sonnet 4.6's 1M tokens was ~750k words, because it used the older tokenizer. Same headline number, roughly a quarter less text in the window.
  • Max output: 128k tokens on the Messages API; up to 300k on the Batch API with the output-300k-2026-03-24 beta header.
  • Comparative latency: Fast. Only Haiku 4.5 is faster. Opus 5 is Moderate, Fable 5 is Slower.
  • Thinking: adaptive thinking, yes. Legacy thinking.type: "enabled", no. You control depth with effort.
  • Reliable knowledge cutoff: January 2026.
  • Availability: the default model on Free and Pro plans. Anthropic's framing is that no previous Sonnet was built this agentic — it plans, drives browsers and terminals, and runs unattended.

Worth noticing: Anthropic's own docs open the model page with "if you're unsure which model to use, start with Claude Opus 5." The consumer default and the builder recommendation are different models. Sonnet 5 is what most people get; it is not what the docs tell developers to reach for first.

Where Sonnet 5 is genuinely behind

January 2026 knowledge cutoff, against Opus 5's May 2026. Four months of framework releases, API changes and deprecations that Sonnet 5 never saw. That's the same axis I used to split Opus 5 from Fable 5 — capability and freshness are separate dimensions, and the cheaper model is not automatically the staler one. Here it happens to be. When the answer has to come out of the model's own memory of recent releases, price stops being the deciding factor.

The number nobody quotes: cache reads

Base input rate is the wrong thing to optimize. On long agent sessions, cache reads dominate — on one 404-turn session in this workspace they were roughly 77% of total spend: 75.9M cache-read tokens against 227k output tokens. So the rate that decides your bill is the cache-hit rate:

  • Sonnet 5 — $0.20 / MTok cache read on intro pricing, $0.30 standard
  • Opus 5 — $0.50 / MTok
  • Fable 5 — $1.00 / MTok

Sonnet 5 reads your context back 2.5x cheaper than Opus 5 and 5x cheaper than Fable 5. For an agent that re-reads a big CLAUDE.md, a repo map and a growing transcript on every single turn, that one column is the whole argument. Two catches: a 5-minute cache write costs 1.25x base input and pays for itself on the first hit, a 1-hour write costs 2x and needs two hits; and changing effort mid-conversation throws away the cached prefix — so pick a level per workload and hold it, rather than varying it inside a session.

The dial most people leave on default

On the Claude API and in Claude Code, Sonnet 5's effort defaults to high. The best line in the whole release is buried in the effort docs: medium effort on Sonnet 5 is "comparable to Claude Sonnet 4.6 at high effort." Last generation's ceiling is this generation's cost-saving step-down. Most routine agent work never needed high in the first place.

# Sonnet 5 at the cheap-but-still-strong setting
curl https://api.anthropic.com/v1/messages \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-5",
    "max_tokens": 4096,
    "messages": [{"role": "user", "content": "..."}],
    "output_config": { "effort": "medium" }
  }'

The other end of the dial is new for a Sonnet: xhigh, which Sonnet 4.6 doesn't support at all. Anthropic scopes it to agentic runs over 30 minutes with token budgets in the millions. One model now covers both "cheap classifier" and "long autonomous coding run" — and you move between them by changing a string, not a model id.

The EM angle

Three things worth turning into shared config instead of personal habit. Pin claude-sonnet-5 explicitly rather than trusting whatever a surface defaults to. Set effort explicitly in your agent config — medium for routine loops, xhigh only for the long unattended ones — because "whatever the default is" was never a decision anyone made. And send non-urgent bulk work through the Batch API, where Sonnet 5 runs $1/$5 until August 31 and $1.50/$7.50 after: half price for accepting async, which most backfills and eval runs can.

Today: take one task you run often, run it twice on claude-sonnet-5 — once at the default high, once at effort: "medium" — and compare the token counts in the usage block against the quality of the output. If medium holds, write it into your agent config and put a reminder on August 31.

Sources