Claude Sonnet 5's 1M Context: When Big Context Pays Off (and When It Just Costs More)
A million-token window feels like a permission slip: stop pruning, dump the whole repo in, let the model sort it out.
The window is real. The permission slip isn’t. Sonnet 5 bills the full 1M context at one flat per-token rate — there’s no premium above 200K to punish you — but flat doesn’t mean free. Every token you park in context is a token you pay for, on every turn, whether the model needed it or not. The 1M window changes what you can do. It doesn’t change the arithmetic of what you should.
This is a field note, not a benchmark. It’s the token math for when big context earns its keep and when it’s just burn — with a decision rule at the end.
The 10-second answer
- Whole-corpus reasoning + reuse → fill the window. Large-repo Q&A, long-transcript synthesis, “compare everything to everything.” Cache the big prefix and it’s cheap.
- Small, findable slice → retrieve it. If the answer lives in three files, send three files. The window doesn’t make retrieval obsolete; the bill still rewards it.
- One-shot short task → don’t stuff. A 300K-token context sent to answer a two-line question pays full freight for tokens the model skims.
The one thing to internalize: the 1M window is a capacity, not a strategy.
The numbers (as of 2026-09-04)
Correction, 2026-09-04. This post originally said Sonnet 5’s $2/$10 was introductory pricing that would revert to $3/$15 on September 1, 2026. Anthropic has since made $2/$10 the standard price and cancelled that increase. Every price below is the permanent rate; the sections on reverting have been rewritten.
Claude Sonnet 5 (claude-sonnet-5), first-party Claude API. (Per-token rates are identical if you call the same model through Bedrock or OpenRouter — only the wrapper around the bill changes.) The $2/$10 launched as introductory pricing through August 31, 2026; it is now the standard rate, alongside Sonnet 4.6 for comparison:
| Sonnet 5 | Sonnet 4.6 | |
|---|---|---|
| Input | $2 / Mtok | $3 / Mtok |
| Output | $10 / Mtok | $15 / Mtok |
| Cache read (hit) | $0.20 / Mtok | $0.30 / Mtok |
| 5-min cache write | $2.50 / Mtok | $3.75 / Mtok |
Two facts that matter more than the sticker price:
1. No long-context tax. Sonnet 5 — along with Opus 4.6/4.7/4.8, Fable 5, and Sonnet 4.6 — includes the full 1M window at standard pricing. Anthropic’s own words: “a 900k-token request is billed at the same per-token rate as a 9k-token request.” If you remember the older 1M betas where tokens above 200K cost extra, that tier is gone here. Good news — but it removes the only mechanical reason big context was expensive, which is exactly why people now overfill it.
(For what that cached prefix actually looks like across a month of real sessions — and why it dwarfs everything else in the window — see measuring every image in 298 sessions.)
2. The tokenizer moved. Sonnet 5 uses the newer tokenizer (introduced with Opus 4.7) that produces ~30% more tokens for the same text than Sonnet 4.6 and earlier. Your list price per token dropped; your token count per task went up. That gap is where the headline number lies to you (more below).
Receipts: when 1M earns it
Concrete cases, standard pricing, context cost only (question and answer tokens are small by comparison). A “300K-token repo” here means as Sonnet 5 counts it.
Case A — Whole-repo Q&A, done right. A 300K-token codebase, eight questions in one session, repo cached as a prefix.
- Cache the repo once: 300K × $2.50/Mtok = $0.75
- Seven follow-up turns read the cached prefix: 7 × 300K × $0.20/Mtok = $0.42
- Total ≈ $1.17 to interrogate a whole codebase eight different ways.
Same eight questions with no caching, re-reading the repo each turn: 8 × 300K × $2/Mtok = $4.80. Caching saves ~75%, and $1.17 for whole-repo reasoning is where the big window pays for itself. The answer genuinely spans the corpus, and you reuse the prefix — both boxes checked.
Case B — Short task, fat context. Pure burn. Same 300K repo dumped in “just in case,” one-shot: “add a null check to parseConfig().”
- Uncached: 300K × $2/Mtok = $0.60 for a task the model resolves from ~6K relevant tokens ($0.012).
- 50× overpay, on a single shot — and you re-pay it every iteration you keep the fat context loaded.
Case C — Retrieve vs. stuff. The answer lives in three files (~10K tokens) of the 300K repo.
- Stuff the whole repo: $0.60/turn.
- Retrieve the 10K slice: $0.02/turn — 30× cheaper, and usually more accurate, because you’re not burying the signal in 290K tokens of distractors.
The window makes it easy to skip retrieval. The bill is why you shouldn’t when the slice is small and stable.
The receipt that hides in the tokenizer
Here’s the one that catches people migrating from Sonnet 4.6. List price is $2/Mtok — a third under Sonnet 4.6’s $3. Looks like a 33% cut. It isn’t, because Sonnet 5 emits ~30% more tokens for the same text.
Read a document that counted 300K tokens on Sonnet 4.6. On Sonnet 5 it’s ~390K tokens.
| Tokens for the same text | One-shot read cost | |
|---|---|---|
| Sonnet 4.6 ($3/Mtok) | 300K | $0.90 |
| Sonnet 5 ($2/Mtok) | ~390K | $0.78 |
A 33% price cut nets out to ~13% cheaper per equivalent task. You still come out ahead — but pocket the real number, not the sticker one. And the same arithmetic runs the other way: at $3/Mtok, that 390K read would be $1.17, or ~30% more than Sonnet 4.6 for identical text, which is what a per-token price comparison hides whenever the tokenizer moves under it. Don’t trust a word-count or a Sonnet-4.6 baseline — run count_tokens on your text with claude-sonnet-5 before you budget.
Cost levers (work regardless of window size)
These apply no matter how big your context is:
- Prompt caching is the whole game for big prefixes. Cache reads cost 0.1× base input ($0.20/Mtok). A stable 300K prefix reused across a session goes from dollars to cents. If your long context repeats, not caching it is the most expensive mistake on this page.
- Retrieve the slice when the slice is small and findable. grep, embeddings, a file list — anything that turns 300K tokens into 10K. Cheaper and sharper.
- Batch the async work. 50% off input and output for non-interactive jobs (bulk summarization, tagging, offline analysis): Sonnet 5 batch is $1/$5 per Mtok.
- Measure effective tokens, not list price. The tokenizer shift means per-token price and per-task cost now move independently.
count_tokenson your real prompts is the only number that pays your bill.
The decision rule
No flowchart needed:
- Fill the 1M window when the answer genuinely lives across the whole corpus (whole-repo reasoning, long-transcript synthesis) and you’ll reuse the prefix enough to cache it. That’s when big context earns its cost.
- Retrieve the slice when the relevant information is a small, findable subset. The window tempts you to skip this; the per-turn bill says don’t.
- Never stuff for a one-shot short task. You pay full freight for tokens the model skims, once per iteration.
- Re-measure on Sonnet 5’s tokenizer rather than trusting a per-token price comparison. Price per token and cost per task now move independently.
The one-line rule: a 1M window is capacity, not a plan — fill it when the answer spans the whole corpus and you’ll reuse the prefix; otherwise retrieve the slice and cache the rest. No long-context premium doesn’t make the tokens free.
Sources
Verify against the official pages before budgeting — rates change.
- Anthropic pricing (model rates, long-context pricing, tokenizer note): https://platform.claude.com/docs/en/about-claude/pricing
- Claude models overview (Sonnet 5 context window, IDs, effort default): https://platform.claude.com/docs/en/about-claude/models/overview
- Prompt caching (multipliers, cache-read economics): https://platform.claude.com/docs/en/build-with-claude/prompt-caching
- Token counting (
count_tokensfor effective per-task cost): https://platform.claude.com/docs/en/build-with-claude/token-counting
Prices re-verified against Anthropic’s live pricing and models docs on 2026-09-04. Sonnet 5’s $2 / $10 per Mtok is the standard rate — the increase to $3 / $15 previously scheduled for September 1, 2026 was cancelled. Confirm current rates before committing.