AI Prepared Logo
Prompt Caching: The 90% Discount Most Teams Never Claim
A videotape being replayed, representing cached context
AI EngineeringMay 26, 20268 min read

Prompt Caching: The 90% Discount Most Teams Never Claim

Every API call re-reads your entire system prompt at full price. Prompt caching cuts that cost by up to 90%, and most teams have never checked whether they're using it.

The short version

Language models are stateless, so every API call resends and reprocesses your entire system prompt, tool definitions, and documents at full price. Prompt caching stores the processed prefix on the provider's side and bills repeated tokens at up to a 90% discount. Claiming it usually requires only reordering your prompt from stable to volatile content and checking your cached-token metrics.

Key takeaways

  • Every API call re-reads your full system prompt, tools, and documents at full input price. For agent workloads this repetition is often 80-95% of total input tokens.
  • Cached reads cost roughly 10% of base input price on Anthropic and roughly 50% on OpenAI. Caching changes the bill, not the model's behavior.
  • Caching works on exact prefix matching. Timestamps in system prompts, reordered tool definitions, and per-user content placed early silently kill the discount.
  • Order prompts from most stable to most volatile: system instructions and tools first, documents next, history after, the new message last.
  • Verify with the cached-token count in your usage dashboard. Near zero on a real workload means you are paying full price for repetition.

In 50 First Dates, Lucy wakes up every morning with no memory of the day before. So every morning, the courtship starts over. Same introduction, same jokes, same walk through the entire history of the relationship.

Eventually Henry stops re-living it and records a videotape. Each morning Lucy watches ten minutes of tape and gets caught up. The expensive part happened once. The replay is cheap.

Every API call to a language model is Lucy waking up.

The model remembers nothing between requests. Your system prompt, your tool definitions, your reference documents, the entire conversation so far: all of it gets sent again, and processed again, on every single call. And you pay for every token of it. Every time.

Prompt caching is the videotape. Most teams have never pressed record.

How the Meter Actually Runs

Language models are stateless. That one fact drives most of the API bill.

Say your agent has a 15,000-token system prompt: role instructions, business rules, tool definitions, a few reference documents. A user asks a question that adds 200 tokens. The model processes 15,200 input tokens to answer.

The user asks a follow-up. The model processes the system prompt again, plus the history, plus the new question. Every turn of every conversation re-reads the same 15,000 tokens at full price.

Run that agent through 1,000 requests a day and you have paid to process 15 million tokens of pure repetition. The model learned nothing new from them. You just paid the meter to re-read the manual.

What Caching Does

When a model processes your prompt, it builds an internal representation of it before generating a single output token. That computation is the expensive part of input processing.

Prompt caching stores that computed state on the provider's side. When your next request starts with the same prefix, the provider skips the recomputation and picks up where the cache left off. You get billed a fraction of the normal input price for those tokens.

The mechanics differ by provider.

ProviderHow It WorksCached Read Price
AnthropicExplicit cache breakpoints you set in the request. Writing to the cache costs slightly more than normal input; reads are the discount.~10% of base input price
OpenAIAutomatic for prompts over 1,024 tokens. No configuration, no cache write premium.~50% of base input price
Google GeminiImplicit caching happens automatically. Explicit context caching gives more control but adds a storage fee.Varies by model and mode

One important detail: caches expire. On Anthropic the default lifetime is around five minutes, refreshed each time the cache is hit, with a longer one-hour option at a higher write cost. If your traffic is sparse enough that the cache dies between requests, you pay the write premium repeatedly and collect the discount rarely.

Caching a prompt does not change the model's output. Same tokens in, same behavior. The only thing that changes is the bill.

What Breaks the Cache

Caching works on exact prefix matching. The provider compares the start of your new request against what it has stored, byte for byte. The match stops at the first difference, and everything after that point gets processed at full price.

This is where most teams silently lose the discount.

A timestamp in the system prompt kills it. "The current date is May 26, 2026, 9:14 AM" means every request has a different prefix. Cache hit rate: zero. Move the date to the end of the prompt, or truncate it to the day, and the cache survives.

Reordering kills it. If your tool definitions get serialized in a different order on different requests (a common bug when tools live in an unordered data structure), the prefix changes even though nothing meaningful did.

Per-user content placed early kills it. If the user's name or account details appear before your 15,000 tokens of stable instructions, no two users ever share a cache.

None of these show up as errors. The requests succeed. The answers are fine. The only symptom is a bill that is two to five times larger than it needs to be, and nobody is looking at the line item that would reveal it.

Structuring for Cache Hits

The rule: order your prompt from most stable to most volatile.

System instructions and tool definitions first. These change when you deploy, not when a user asks a question. This is the deep-frozen layer that should be cached across every user and every session.

Reference documents next. Product docs, policy text, schema descriptions. Stable for days or weeks at a time.

Conversation history after that. It grows during a session but each turn only appends, which means the previous turns stay cacheable.

The new user message last. This is the only part that should be genuinely unique per request.

Then verify. Every major provider reports cached token counts in the API response and the usage dashboard. If you have never looked at that number, look this week. A healthy agent workload should show the large majority of input tokens hitting the cache. If yours shows zero, something in your prefix is changing on every call, and finding it is probably an afternoon of work.

Who This Matters For

Caching is not equally valuable everywhere.

If you run occasional one-off calls with short prompts, skip it. The cache will expire between requests and there is not much repeated content to discount anyway.

If you run agents, the math is hard to ignore. Agents are the worst-case repetition scenario: large system prompts, large tool registries, and many model calls per task, often several per minute. The same goes for RAG systems that prepend the same instructions to every query, and for any chat product with real traffic.

One of our clients was spending roughly 70% of their input token budget on a system prompt that had not changed in two months. Restructuring the prompt order and adding cache breakpoints took a day. The input bill dropped by more than half. Nothing about the product changed.

That is the general shape of this opportunity. It is not a redesign. It is not a migration. It is prompt hygiene plus a config change, and the discount is sitting there whether you claim it or not.

Open your usage dashboard and find the cached token count. If it is near zero and you are running anything with a real system prompt, you have found the cheapest cost reduction available to you this quarter.

Joe Leavitt

Joe Leavitt

AI Architect & Data Engineer

7+ years designing data systems for AI. Creator of the AI Readiness Analyzer. More about Joe →

Free Resource

AI Data Readiness Checklist

30+ yes/no questions to audit your dataset across 6 dimensions — before you start any AI project.

Test your data quality

Upload a sample of your data and let our analyzer spot issues your pipeline might have missed.

Analyze My Data

Stay Updated

Get the top news and articles on all things AI, Data Engineering and martech sent to your inbox daily!