Prompt caching economics across providers, 2026
Cached-input rates, write surcharges, break-even reads and what a cached static prefix saves on a reference call, per model.
57 of 62 priced models publish a cached-input rate as of 2026-10-26; the median discount is 90% off the input price (range 50% to 98%). On a 2,000-token call with a 1,500-token static prefix, caching cuts the median model's cost by 38.57%, before any routing.
· Source: TokenZero pricing table, benchmark result files and public audit ledger; CC BY 4.0 with attribution
At a glance
- Models with a cached-input rate
- 57 of 62 (computed)
- Median cache discount
- 90% (computed)
- Discount range
- 50% to 98% (computed)
- Median saving on the reference call
- 38.57% (computed)
- Reference call
- 2,000 input (1,500 static) / 300 output tokens
- Write surcharge
- Anthropic and OpenAI 12h: priced per model in the table; most OpenAI models none
- Minimum prefix
- 1,024 tokens on most models; 512 on Opus 5 / Haiku 5.5
- Table
- 2026-10-26
Prompt caching economics across providers, 2026 (first 57 of 57 rows; full dataset in the downloads)
| model | provider | input_usd_per_1m | cached_input_usd_per_1m | cache_discount_pct | cache_write_usd_per_1m | break_even_reads | min_cacheable_tokens | reference_call_saving_pct |
|---|---|---|---|---|---|---|---|---|
| gpt-6-astra | openai | 10 | 1 | 90 | 12.5 | 2 | 1024 | 38.57 |
| gpt-6.1-sol | openai | 2 | 0.1 | 95 | 2.5 | 2 | 1024 | 40.71 |
| gpt-6-sol | openai | 2 | 0.2 | 90 | 2.5 | 2 | 1024 | 38.57 |
| gpt-6-luna | openai | 0.1 | 0.01 | 90 | 0.125 | 2 | 1024 | 38.57 |
| gpt-5.6-sol | openai | 4 | 0.4 | 90 | 5 | 2 | 1024 | 38.57 |
| gpt-5.6-terra | openai | 2 | 0.2 | 90 | 2.5 | 2 | 1024 | 35.53 |
| gpt-5.6-luna | openai | 0.2 | 0.02 | 90 | 0.25 | 2 | 1024 | 35.53 |
| gpt-5.5 | openai | 5 | 0.5 | 90 | — | 1 | 1024 | 35.53 |
| gpt-5.4 | openai | 2.5 | 0.25 | 90 | — | 1 | 1024 | 35.53 |
| gpt-5.4-mini | openai | 0.75 | 0.075 | 90 | — | 1 | 1024 | 35.53 |
| gpt-5.4-nano | openai | 0.2 | 0.02 | 90 | — | 1 | 1024 | 34.84 |
| gpt-5.2 | openai | 1.75 | 0.175 | 90 | — | 1 | 1024 | 30.68 |
| gpt-5.1 | openai | 1.25 | 0.125 | 90 | — | 1 | 1024 | 30.68 |
| gpt-5 | openai | 1.25 | 0.125 | 90 | — | 1 | 1024 | 30.68 |
| gpt-5-mini | openai | 0.25 | 0.025 | 90 | — | 1 | 1024 | 30.68 |
| gpt-5-nano | openai | 0.05 | 0.005 | 90 | — | 1 | 1024 | 30.68 |
| o3 | openai | 2 | 0.5 | 75 | — | 1 | 1024 | 35.16 |
| o3-mini | openai | 1.1 | 0.55 | 50 | — | 1 | 1024 | 23.44 |
| o4-mini | openai | 1.1 | 0.275 | 75 | — | 1 | 1024 | 35.16 |
| o1 | openai | 15 | 7.5 | 50 | — | 1 | 1024 | 23.44 |
| gpt-4.1 | openai | 2 | 0.5 | 75 | — | 1 | 1024 | 35.16 |
| gpt-4.1-mini | openai | 0.4 | 0.1 | 75 | — | 1 | 1024 | 35.16 |
| gpt-4.1-nano | openai | 0.1 | 0.025 | 75 | — | 1 | 1024 | 35.16 |
| gpt-4o | openai | 2.5 | 1.25 | 50 | — | 1 | 1024 | 23.44 |
| gpt-4o-mini | openai | 0.15 | 0.075 | 50 | — | 1 | 1024 | 23.44 |
| claude-fable-5-1 | anthropic | 10 | 0.25 | 98 | 12.5 | 2 | 512 | 41.79 |
| claude-fable-5 | anthropic | 10 | 1 | 90 | 12.5 | 2 | 512 | 38.57 |
| claude-opus-5-5 | anthropic | 4 | 0.2 | 95 | 5 | 2 | 512 | 40.71 |
| claude-opus-5 | anthropic | 5 | 0.5 | 90 | 6.25 | 2 | 512 | 38.57 |
| claude-opus-4-8 | anthropic | 5 | 0.5 | 90 | 6.25 | 2 | 1024 | 38.57 |
| claude-opus-4-7 | anthropic | 5 | 0.5 | 90 | 6.25 | 2 | 2048 | 38.57 |
| claude-opus-4-6 | anthropic | 5 | 0.5 | 90 | 6.25 | 2 | 4096 | 38.57 |
| claude-opus-4-5 | anthropic | 5 | 0.5 | 90 | 6.25 | 2 | 4096 | 38.57 |
| claude-sonnet-5-5 | anthropic | 2 | 0.1 | 95 | 2.5 | 2 | 512 | 40.71 |
| claude-sonnet-5 | anthropic | 2 | 0.2 | 90 | 2.5 | 2 | 1024 | 38.57 |
| claude-sonnet-4-6 | anthropic | 3 | 0.3 | 90 | 3.75 | 2 | 1024 | 38.57 |
| claude-sonnet-4-5 | anthropic | 3 | 0.3 | 90 | 3.75 | 2 | 1024 | 38.57 |
| claude-haiku-5-5 | anthropic | 0.1 | 0.01 | 90 | 0.125 | 2 | 512 | 38.57 |
| claude-haiku-4-5 | anthropic | 1 | 0.1 | 90 | 1.25 | 2 | 4096 | 38.57 |
| gemini-4-argon | gemini | 2 | 0.1 | 95 | — | 1 | 1024 | 40.71 |
| gemini-3.8-flash | gemini | 0.75 | 0.075 | 90 | — | 1 | 1024 | 38.57 |
| gemini-3.6-flash | gemini | 0.75 | 0.075 | 90 | — | 1 | 1024 | 38.57 |
| gemini-3.5-flash-lite | gemini | 0.3 | 0.03 | 90 | — | 1 | 1024 | 30 |
| gemini-3.1-pro | gemini | 2 | 0.2 | 90 | — | 1 | 1024 | 35.53 |
| gemini-3.1-flash-lite | gemini | 0.25 | 0.025 | 90 | — | 1 | 1024 | 35.53 |
| gemini-3-flash | gemini | 0.5 | 0.05 | 90 | — | 1 | 1024 | 35.53 |
| gemini-2.5-pro | gemini | 1.25 | 0.125 | 90 | — | 1 | 1024 | 30.68 |
| gemini-2.5-flash | gemini | 0.3 | 0.03 | 90 | — | 1 | 1024 | 30 |
| gemini-2.5-flash-lite | gemini | 0.1 | 0.01 | 90 | — | 1 | 1024 | 42.19 |
| grok-4.7 | xai | 2 | 0.5 | 75 | — | 1 | 1024 | 38.79 |
| grok-4.6 | xai | 2 | 0.5 | 75 | — | 1 | 1024 | 38.79 |
| grok-4.5 | xai | 2 | 0.3 | 85 | — | 1 | 1024 | 43.97 |
| grok-4.3 | xai | 1.25 | 0.2 | 84 | — | 1 | 1024 | 48.46 |
| grok-4.20 | xai | 1.25 | 0.2 | 84 | — | 1 | 1024 | 48.46 |
| grok-build-0.1 | xai | 1 | 0.2 | 80 | — | 1 | 1024 | 46.15 |
| deepseek-v4-pro | deepseek | 1.32 | 0.044 | 97 | — | 1 | 1024 | 50 |
| deepseek-flash | deepseek | 0.3 | 0.006 | 98 | — | 1 | 1024 | 45.94 |
Method and licence
Computed at request time from the same data the gateway runs on; the JSON summary carries every number on this page. Reuse under CC BY 4.0 with a link to https://tokenzero.sh/reports/prompt-caching-economics-2026.
Questions people ask
How many reads does a cache write pay back after?
break_even_reads in the dataset: the number of cached reads after which the write surcharge is recovered; 1 where the provider charges no surcharge. TokenZero only chooses a long TTL when the prefix is reused often enough to clear it.
Which models discount cached input the most?
The dataset's cache_discount_pct column, sorted: the top rate is 98% off and the lowest published rate is 50% off, table 2026-10-26.
Does TokenZero do the caching?
It formats the request so the provider caches it (breakpoints on Anthropic, prompt_cache_key or the 12h option on OpenAI) and reports cached tokens from the provider's own usage on the signed receipt; byte-identical repeats are additionally served from its own exact cache at $0.