A cache discount does not reduce what a miss costs, it widens the gap: one Anthropic footnote now puts it at forty where the standard multiplier gives ten.
Five vendors, pages opened on 2026-09-07
There is no industry rate for a cached read. Figures are per million tokens. Anthropic prints its two multipliers; the rest of that column is my division.
| Provider and model | Base input | Cached read | Multiplier | Probed | Source |
|---|---|---|---|---|---|
| Anthropic, Claude Fable 5.1 | $10.00 | $0.25 | 0.025x | 2026-09-07 | pricing |
| Anthropic, Claude Fable 5 | $10.00 | $1.00 | 0.1x | 2026-09-07 | pricing |
| Anthropic, Claude Opus 5 | $5.00 | $0.50 | 0.1x | 2026-09-07 | pricing |
| OpenAI, gpt-6-astra (standard, short context) | $10.00 | $1.00 | 0.1x | 2026-09-07 | pricing |
| Google, Gemini 3.8 Flash | $0.75 | $0.075 | 0.1x | 2026-09-07 | pricing |
| Groq, caching-enabled models | not on this page | 50 percent discount | 0.5x | 2026-09-07 | caching docs |
| DeepSeek, deepseek-v4-pro (off-peak) | $0.66 | $0.022 | 0.033x | 2026-09-07 | pricing |
| DeepSeek, deepseek-v4-flash (off-peak) | $0.22 | $0.007 | 0.032x | 2026-09-07 | pricing |
The change is one footnote on the Anthropic pricing page: "Cache hits and refreshes on Claude Fable 5.1 and Claude Mythos 5.1 are priced at 0.025x the base input price. All other models use the standard 0.1x multiplier." The model overview page says Fable 5.1 holds Fable 5 input and output prices, cache reads at a quarter.
Groq documents the discount, not the base rates, and only on hits: 0.5x is a best case, a mixed run bills above it. Four multipliers on one table, 0.025x, 0.033x, 0.1x and 0.5x, is what no industry rate looks like in practice. Google charges cache storage on top, $0.50 per million tokens per hour through 2026-12-31 and $1.00 from 2027-01-01, dating the Gemini row too: $0.75 and $0.075 through 2026-12-31, $1.50 and $0.15 from 2027-01-01. The OpenAI row is the standard tier at short context; the same model in fast mode lists $20.00 base input and $2.00 cached. The DeepSeek rows are the off-peak half of a clock: the page states that off-peak rates are half of the peak rates, with peak hours 01:00 to 04:00 and 06:00 to 10:00 UTC on weekdays, so both columns double at peak and the multiplier does not move. It also no longer prices one DeepSeek, which is why the model is named in each row.
Two posts priced the read
On 2026-09-03 max_quimby published Fable 5.1's Real Story Is the 75% Cache Price Cut: the Fable 5 against Fable 5.1 price table moves on one row, cache reads falling from $1.00 to $0.25 per million tokens, the other rows unchanged.
On 2026-09-04 aidiveyt published Fable 5.1 cut cache reads by 75%. Cost per task went up 20% anyway.: the pelican Simon Willison drew at every effort level cost 10 cents on low effort against $3.30 at maximum, with 65,927 output tokens, attributed there to the effort dial, not caching.
In comment 3e615 on 2026-09-04, max_quimby named the operational half: "The moment your orchestrator reorders tools, injects a timestamp, or rotates a system-prompt fragment, you bust the cache and quietly pay full input price on the re-read." He reports identical-looking loops differing three to four times in bill on prompt determinism alone, a production report, not a controlled experiment. Neither post prices the miss, which errors nowhere and shows only as a line item.
The discount raised the price of a mistake
Take a system prefix of 20,000 tokens over 50 turns: 1,000,000 tokens a session. All hits on Fable 5.1, at $0.25 per million, cost $0.25.
One clock in the system prompt changes that: a timestamp that ticks per request alters an early token, the prefix stops matching, and every turn misses, the same 1,000,000 tokens at the $10.00 base input price, $10.00. Forty times the disciplined run, for one field.
The same two lines on Claude Opus 5, $5.00 base input and $0.50 cached: $0.50 against $5.00, a factor of ten.
The miss price did not move: Fable 5 and Fable 5.1 both bill base input at $10.00 per million. The ratio changed, and the ratio is what prefix discipline is worth per turn.
Cache writes bill separately, $12.50 per million for the five-minute window on the Anthropic pricing page, over base input, so a prefix rewritten every turn bills above the miss line, not below.
What breaks the prefix, according to the vendor
On the prompt caching page the cache follows a hierarchy of tools, then system, then messages: a change at one level invalidates that level and every one after.
| What changes | Tools cache | System cache | Messages cache |
|---|---|---|---|
| Tool definitions: names, descriptions, parameters | invalidated | invalidated | invalidated |
| Web search toggle | valid | invalidated | invalidated |
| Speed setting, fast against standard | valid | invalidated | invalidated |
| Tool choice parameter | valid | valid | invalidated |
| Images added or removed | valid | valid | invalidated |
| Thinking parameters | model specific | model specific | invalidated |
| Effort setting | model specific | model specific | invalidated |
The first row is expensive: "Modifying tool definitions (names, descriptions, parameters) invalidates the entire cache". A registry sorting tools by dictionary iteration order pays it on every deploy, and nobody decided to.
Two rows carry an exception. Where per-message effort is supported, an effort change carried in a message with role system leaves the cached prefix intact. On Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Opus 4.8 and Opus 5, an instruction appended as a message with role system, rather than edited into the top-level system field, leaves the system and message caches alone. The page excludes Claude Sonnet 5 by name.
The hit rate is a meter, not a setting
The same page documents three usage fields: cache_read_input_tokens for what was served, cache_creation_input_tokens for what was written, input_tokens for what was neither, and total_input_tokens = cache_read_input_tokens + cache_creation_input_tokens + input_tokens, making input_tokens a remainder, not the size of what you sent.
DeepSeek exposes the same split as prompt_cache_hit_tokens and prompt_cache_miss_tokens, and its cache guide describes the cache as best effort, no guarantee of a hit. Groq states the matching rule: "Cache hits are only possible for exact prefix matches within a prompt."
In its engineering post of 2025-07-18 the Manus team argued that "the KV-cache hit rate is the single most important metric for a production-stage AI agent", reporting an average input-to-output token ratio around 100 to 1, a vendor self-report. Log it per prompt version: a drop that stays down is a prompt change nobody flagged.
Working memory and long-term memory are two different things
Every cache here has a stated lifetime: Anthropic prices cache writes in five-minute and one-hour windows, the DeepSeek guide a disk cache cleared over hours to days. That is working memory.
The durable layer has separate economics. MemGPT (Packer et al., 2023) framed it as an operating-system hierarchy: what the paper calls main context, analogous to RAM, against external context, analogous to disk. Prefix stability makes the fast tier cheap and decides nothing about what survives the session. Whether context engineering and memory engineering are one discipline is argued both ways: one survey treats memory as a component of context engineering (Mei et al., 2025), another separates them (Hu et al., December 2025), both cited on the original page.
What this does not prove
This is a reading of documentation and price tables, not a measurement. I opened eight vendor pages on 2026-09-07. No agent was run, no bill reproduced, no hit rate recorded.
The arithmetic is a calculation on list prices assuming every turn rereads the full prefix, while real loops have partial matches, several breakpoints and expiry between turns. The cost per task figures and the three to four times spread belong to other authors.
Prices are a snapshot, and one row carries its own expiry: the Gemini figures hold through 2026-12-31 by Google's note. The price table on the original page carries an earlier check date, so where the two disagree, trust the dated table above.
The invalidation table is one vendor's behavior and does not transfer. It says what would break a prefix, not that anything is breaking yours. The cheap way to find out is those three usage fields, on the loop you already run.
Disclosure: I work on Mnemoverse, a memory engine for AI agents connected over MCP, so weigh the argument accordingly. Every source above is linked and dated, and the longer version with the full citations is on the original page.
Top comments (0)