In a normal coding-agent loop, cache reads are 96-99% of the token bill. That is the line item that matters. OpenAI and Anthropic cut sticker prices by as much as 80% over a few months in 2026, but if your runner never hits cache, you mostly bought a nicer price tag – not a cheaper task.
Think of it like ordering the same coffee every morning: the shop can halve the menu price, yet you still overpay if they re-grind the beans from scratch each time instead of using the batch already warm. Agents work the same way. Stable prefixes should be warm (cache read). Unstable junk forces a cold write or a full input charge.
Max Woolf’s Oct 2026 breakdown made the pattern obvious to a lot of teams: unit prices fell hard, aggregate spend still rose, because people ran longer, smarter loops. Below is what to do on your stack this week – not another timeline recap.
Do this on one real agent trace first
Export a single multi-turn run and split tokens into input, cache read, and output. If cache read is not north of ~90%, stop shopping for models. Fix the prefix. Stable blocks belong up front: system instructions, tool schemas, repo summary. Volatile user turns stay out of the cached prefix.
OpenAI path (Chat Completions / Responses style) – then read the usage object:
from openai import OpenAI
client = OpenAI()
response = client.chat.completions.create(
model="gpt-6.1-sol",
messages=[
{"role": "system", "content": long_system_prompt},
{"role": "user", "content": user_msg},
],
)
# Check usage.prompt_tokens_details.cached_tokens after the call
# If it stays ~0, the prefix is drifting or caching never engaged
Anthropic’s shape is explicit: mark stable content blocks with cache_control: {"type": "ephemeral"}. Set the prefix once. Later turns should show cheap reads, not full input again. Official rate cards live on OpenAI’s pricing docs and Claude’s platform API page (figures below are standard short-context, late Oct 2026).
Sticker prices vs what your bill tracks
Effective cost ≈ (uncached fraction × input) + (cached fraction × cache read) + output. For agentic coding, a fat cache-read discount dominates any modest input tweak.
| Model | Input | Cache read | Output |
|---|---|---|---|
| GPT-6 Luna | $0.10 | $0.01 | $0.50 |
| GPT-6.1 Sol | $2.00 | $0.10 | $10.00 |
| GPT-6 Astra | $10.00 | $1.00 | $50.00 |
| Claude Haiku 5.5 (≤100K) | $0.10 | $0.01 | $0.50 |
| Claude Sonnet 5.5 | $2.00 | $0.10 | $10.00 |
| Claude Opus 5.5 | $4.00 | $0.20 | $20.00 |
| Claude Fable 5.1 | $10.00 | $0.25 | $50.00 |
Woolf’s read on high-hit agents: a ~75% cache-price cut lands around a 70-75% real cost drop because reads are almost the whole bill. Batch is typically 50% off and async (can take hours). Fast/priority is often 2×. Regional/US-only uplift sits near ~10% on some routes. Pick the multiplier that matches the SLA you actually need – mixing Batch and Fast “just in case” is how quiet overpay starts.
Honest question worth sitting with: if quality on your eval set barely moves between Sol and Astra, what are you buying at 5× – bragging rights, or a measurable failure-rate drop?
Route after caching works
Luna or Haiku for classification and tight loops. Sol or Sonnet for daily coding agents. Astra, Opus 5.5, or Fable only when your own scored tasks show a clear gap. DeepSeek Flash V4.1-class pricing (~$0.15 / $0.60 / $0.003) with many OpenRouter hosts undercuts further when the quality bar allows – keep a fallback list; switching cost is mostly a string change.
GPT-5.6 Luna’s July 30, 2026 cut (down to $0.20 / $1.20 / $0.02 per MTok) set the tone; later GPT-6 Luna/Sol rates went lower still on the standard card. OpenAI has pointed at caching and inference improvements; Anthropic has said Opus 5.5 needs less compute to serve (OpenAI’s Sol/Luna announcement context). Vercel AI Gateway data via the same Woolf write-up: cost-per-token around 43.3% of April 2026 levels while aggregate spend still climbed. Competition and efficiency both pushed stickers down. Your job is still the effective $/task.
Pitfalls that wipe the discount
- Cache writes often price above base input (on the order of 1.25× on published cards). Forcing cache on one-off prompts can raise the bill.
- OpenAI long-context bands: above ~272K input tokens per request, rates can double (output can jump ~1.5×). Haiku 5.5 steps up hard past 100K. Long silent contexts blow budgets.
- No
cache_control(or equivalent) on the stable prefix → you pay full input every turn even “after” a rate cut. - Batch for interactive UX, or Fast mode for overnight jobs – wrong multiplier for the job shape.
Run a 10-task internal suite before you trust vibes. A model that feels snappier and a model that fails fewer tool calls are different purchases.
FAQ
Do the new lower prices apply automatically?
Yes on current official model IDs. Call the new IDs; no migration ritual. Old IDs keep old rates until they die.
Will prices bounce after big lab IPOs?
Near-term reversion is a weak bet. Easy multi-host routing and open-weight pressure still exist, and labs have been willing to price closer to serving cost when efficiency improves. Watch capacity crunches and queue-ups more than a single IPO headline. Stickers can stay low while your spend rises if agents get longer.
How do I know caching is actually firing?
Read the usage object every call. OpenAI exposes cached token counts; Anthropic does too. Zero cached tokens on a 20-turn coding session usually means a drifting prefix or a missing cache directive – not “the API forgot the sale.” Fix that before you chase another model. Same model, 95% hits, often beats a “cheaper” model with a cold prefix every turn.
Open last night’s agent log. Reprice it with late-Oct 2026 cache-read rates. Turn caching on for the stable prefix. Re-run the same workload. That single change usually beats another model swap.