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-07-03)
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.) Sonnet 5 is on introductory pricing through August 31, 2026, then it reverts:
| Intro (through Aug 31 2026) | Standard (Sep 1 2026 on) | |
|---|---|---|
| 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.
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, intro 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 usuallymoreaccurate, 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. Intro list price is $2/Mtok — a third under Sonnet 4.6’s $3. Looks like a free lunch. 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, intro ($2/Mtok) | ~390K | $0.78 (~13% cheaper) |
| Sonnet 5, standard Sep 1 ($3/Mtok) | ~390K | $1.17 (~30% more) |
During the promo you come out a little ahead. After September 1, “same $3/Mtok as Sonnet 4.6” quietly means ~30% more per equivalent task, because the token count moved even though the per-token price didn’t. 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 intro). 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. Cheaperandsharper.Batch the async work. 50% off input and output for non-interactive jobs (bulk summarization, tagging, offline analysis): intro 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_tokens
on 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, and re-check the math after** September 1, 2026**, when intro pricing ends and per-task cost jumps.
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 — pricing and promo terms change.
- Anthropic pricing (model rates, Sonnet 5 intro terms, long-context pricing, tokenizer note):
[https://platform.claude.com/docs/en/about-claude/pricing](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](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](https://platform.claude.com/docs/en/build-with-claude/prompt-caching) - Token counting (
count_tokens
for effective per-task cost):https://platform.claude.com/docs/en/build-with-claude/token-counting Prices and the introductory-pricing end date verified against Anthropic’s live pricing and models docs on 2026-07-03. Introductory Sonnet 5 pricing ends August 31, 2026; standard rates ($3 / $15 per Mtok) apply from September 1, 2026. Confirm current rates before committing.