· CostMyTokens · Guides · 2 min read
Prompt caching: the quiet 90% discount hiding in your agent workloads
Cached input tokens cost a tenth — or a twentieth — of fresh input on the major APIs. For prompt-heavy agents, that is the difference between a viable product and a bonfire.
If your application sends the same long system prompt, tool definitions or reference documents with every request, you are probably paying full price to re-read them thousands of times. Prompt caching exists precisely for this: the provider keeps the processed prefix, and reads from cache are billed at a steep discount.
How big is the discount?
Current official rates, verified October 2026:
| Model | Fresh input / 1M | Cached input / 1M | Saving |
|---|---|---|---|
| GPT-6.1 Sol | $2.00 | $0.10 | 95% |
| GPT-6 Astra | $10.00 | $1.00 | 90% |
| Claude Sonnet 5.5 | $2.00 | $0.10 | 95% |
| Claude Haiku 5.5 | $0.10 | $0.01 | 90% |
| Gemini 4 Argon | $2.00 | $0.10 | 95% |
Two things to notice. First, the discount is roughly an order of magnitude everywhere — this is not a marginal optimization. Second, not every model publishes a cached rate; where our sources show none, our model pages say “Not published” rather than guessing.
A worked example: the agent loop
Consider an agent that re-reads a 100,000-token context on every call, adds 10,000 fresh input tokens, and produces 2,000 output tokens, 500 times a month, on Claude Sonnet 5.5:
- With caching: (10,000 × $2 + 100,000 × $0.10 + 2,000 × $10) ÷ 1M = $0.05 per call → $25/month
- Without caching (all input at full rate): (110,000 × $2 + 2,000 × $10) ÷ 1M = $0.24 per call → $120/month
Same model, same output, 79% cheaper. For caching-heavy workloads, the cached rate — not the headline input rate — is the number that decides which model wins, and it is the number most comparison tables leave out.
Where caching does not save you
- Short, unique prompts. If nothing repeats, there is nothing to cache. Chat workloads with small prompts gain little.
- Cache writes and lifetimes. Providers differ on whether writing to cache costs extra and how long entries live (Gemini 4 Argon’s caching is implicit, triggered automatically from 4,096 tokens). A prefix that expires between calls earns nothing.
- Volatile prefixes. One changing token near the start — a timestamp in the system prompt is the classic — can invalidate everything after it. Put stable content first, volatile content last.
How to use this in planning
Estimate your cached share honestly: it is the fraction of input tokens that are byte-identical across calls within the cache lifetime. Then price your workload with that split in the calculator — every model page shows its cached rate alongside the standard one, with the date it was verified.