Bedrock prompt caching looks like a 90% discount — then the invoice shows a 15% saving. The gap is not a rounding error. On Amazon Bedrock, caching is billed in three separate token classes, and only one of them gets the advertised discount. If you model the others as free, your budget will be wrong by hundreds of dollars a month.
This guide explains Bedrock prompt caching pricing the way the invoice actually works: what you pay to write a cache, what you pay to read it, how the time-to-live resets, and when the same workload is cheaper without caching at all. All numbers below use the October 2026 rate card and can be reproduced in the AI cost calculator on rabayid.com.
Ignore any single percentage. A cached prompt on Bedrock has exactly three costs:
If your model only includes the read discount, it will always under-estimate the bill. The write count is the missing term.
Bedrock mirrors Anthropic's token classes. What changes is where the cache lives, how it is scoped, and which models support it. Here are the current list prices per 1M tokens:
| Model | Base input | Cache write | Cache read | Output |
|---|---|---|---|---|
| Claude Opus 5 | $5.00 | $6.25 | $0.50 | $25.00 |
| Claude Sonnet 5 | $2.00 | $2.50 | $0.20 | $10.00 |
| Claude Haiku 4.5 | $1.00 | $1.25 | $0.10 | $5.00 |
Two rules follow directly from this table:
There is no storage line. You are not billed per hour for keeping the five-minute cache — the premium covers it.
Take a support assistant running on Claude Sonnet 5: a 40,000-token prefix (system prompt, tool schemas, policy corpus), 2,000 tokens of conversation per request, 500 output tokens, 1,200 requests a day for 30 days — 36,000 requests a month.
| Line item | No caching | 5-minute TTL |
|---|---|---|
| Uncached input | $3,024 | $144 |
| Cache writes | — | $864 |
| Cache reads | — | $288 |
| Output | $180 | $180 |
| Total | $3,204 | $1,476 |
Cache writes are 58% of the cached bill even though the prefix never changes. The cache is rebuilt 8,640 times a month because traffic is steady but the TTL is short. That is the whole story of Bedrock prompt caching pricing: the discount is real, and the write frequency decides whether you keep it.
Five Bedrock facts change the math more than any discount:
The monthly model is short enough to keep in a spreadsheet cell:
monthly = N x (P x r_read + V x r_in + O x r_out)
+ W x P x r_write
N = requests per month P = cached prefix tokens
V = variable input O = output tokens
W = writes per month r_* = rate per token
On Sonnet 5, a write costs $0.50 per million tokens above base; each read saves $1.80 per million. Caching pays for itself on the first re-read inside the TTL. The question is never whether to cache — it is how often you rebuild.
The token classes match, but operations do not. Four differences matter for cost:
None of these appear on a price sheet. All of them appear on the invoice.
The safest workflow is boring, and it works:
Do not enable caching everywhere and hope. Measure the write line first.
You pay 1.25× base input to write a prefix, 0.10× to read it, and nothing extra for the five-minute cache. On Sonnet 5 that is $2.50 per million written tokens and $0.20 per million read tokens.
Yes, if the prefix is re-read inside the TTL. One re-read on Sonnet 5 more than covers one write. Without re-reads, you pay a 25% premium for nothing.
Anthropic prices it at 2× base input on the direct API. Availability varies by region and model on Bedrock, so confirm in your console before budgeting on it.
Because writes dominate. Steady traffic with a short TTL rebuilds the cache thousands of times. Check the write count, not only the hit rate.
Your next step is one number: how many times per month your cache is rebuilt. If it is more than your request count divided by ten, the TTL costs more than the model. Run your prefix through the free AI cost calculator and read the write line yourself.