Guides / anthropic bill spike
Why an Anthropic bill spikes when nothing else changed
An Anthropic bill spike on flat traffic usually traces to prompt caching, because Anthropic is the only provider that charges to write a cache. A five-minute write bills at 1.25 times the input rate, so a prefix you rebuild on every call costs 25% more than never caching. Culpa, a local-first LLM cost, margin, and forecast ledger, prices cache writes, cache reads and plain input as three separate things.
Why this happens
Caching gets switched on as an optimisation and is almost never measured afterwards. The economics only work when the cached prefix stays stable and gets read many times per write. Put a timestamp, a user name or a retrieved document at the top of the prefix and it changes on every call, so every call writes a fresh cache and reads nothing. The feature then behaves as a 25% surcharge on the entire prefix, applied silently, and the dashboards still report caching as enabled.
What this usually looks like
- Spend rose in the same week caching went live, and the two got treated as unrelated.
- Your cache hit rate has never been measured, or it reads far below what the prefix design implies.
- The cached prefix contains something that varies per call, such as a date, a session id or retrieved context.
- Anthropic spend rose while call volume and output length both stayed flat.
Free, no card, no account
Run the free Cost Leak Scan
It shows your most expensive conversation before you install anything.
Mistakes that cost the most
| Mistake | Why it hurts | Do instead |
|---|---|---|
| Putting anything variable at the front of a cached prefix. | A cache breaks at the first differing token, so one variable field at the top invalidates everything after it. | Order the prompt most-stable first. Variable content goes last, after the cache breakpoint. |
| Choosing the one-hour cache because it lasts longer. | The one-hour write bills at twice the input rate, so it needs two reads before it beats not caching. | Match the duration to your real re-read interval. Five minutes at 1.25x clears break-even on the first read. |
| Treating caching as done once it's enabled. | A prompt edit months later can move a variable field above the breakpoint and silently invert the economics. | Track cache reads per write as a live metric, and alert when it falls below the break-even for your duration. |
Run this check tonight
- Read your cached prefix top to bottom and mark every field that can differ between two calls.
- Count cache reads against cache writes for last week. Below one read per write, caching is costing you money.
- Check which cache duration you selected, and whether anyone chose it deliberately.
- Compare Anthropic spend before and after caching went live at matched call volume.
- Confirm your cost model prices writes and reads separately rather than folding both into input.
The same prefix, cached well and cached badly
Illustrative example
A 30,000-token stable prefix on Claude Opus 4.8 at real rates of $0.005 per 1k input, $0.0005 cached read and $0.00625 for a five-minute cache write. The traffic patterns below are modelled.
The same feature, the same prefix and the same call count produce $0.49 or $3.94 depending on one thing nobody monitors. Caching badly is worse than not caching, by precisely the 1.25x write premium.
Every number, with its confidence and source
| Figure | What it means | Confidence | Source |
|---|---|---|---|
| $0.4875 to $3.9375 | modelled cost of 21 calls over one 30k prefix, cached well against cached badly on Claude Opus 4.8 | estimated | Both endpoints at real Claude Opus 4.8 input, cached-read and five-minute cache-write rates from the price book, effective 2026-07-02. A range because the traffic pattern is modelled. |
| 25% | premium paid over not caching at all when every call rewrites the cache | calculated | The five-minute cache-write rate of $0.00625 per 1k divided by the $0.005 input rate, which is the published 1.25x multiplier. |
What a generic answer can’t know
A provider reports what it billed, not why the cache kept missing. Knowing that a date field sits above your breakpoint, and which feature put it there, needs the prompt structure and the call record together. Culpa holds both on your infrastructure, keeps your prompts and responses there, and counts the calls to run your plan.
Questions founders ask next
Does Anthropic charge to write a prompt cache?
Yes, and it's the only provider in Culpa's price book that does. A five-minute cache write bills at 1.25 times the input rate and a one-hour write at twice it, while cache reads bill at a tenth of input.
How many reads does a cache need before it pays off?
One, for the five-minute duration, and two for the one-hour duration. Anthropic states this directly. The write is incremental over an input call you were making anyway, so the extra cost is 0.25x rather than the full 1.25x.
Can prompt caching make a bill go up?
Yes, when the cached prefix changes between calls. Every call then pays the write premium and no call ever reads a cache, so the feature lands as a 25% surcharge on the prefix while still reporting as enabled.
On your infrastructure
Culpa runs on your infrastructure. Your prompts and responses never leave it. Culpa counts calls to run your plan, and it fails open, so if it ever breaks your app keeps running.
How Culpa works
Find the culprit. Not just the total.
Your dashboard shows what you spent. It stops short of who spent it. Culpa shows the conversation, the user and the feature behind it.
Your prompts stay local.
Culpa runs on your own infrastructure. What you send to a model reaches us at no point.
Every dollar has a name.
Follow any charge to the conversation, the user, the feature and the customer behind it.
See the bill before it lands.
Cost your next feature before you ship it. You get the likely bill and the worst case, at best, median, p90 and p99.
Three steps to your first answer.
Change one base URL.
Or drop in the Python or TypeScript library.
Find your most expensive conversation.
In the first session, not the first week.
Cost your next feature before you ship it.
Why the bill went up
Example dashboardCalls traced
418,209
across 3 projects
Spend this week
$378.41
+ $182 vs last week
Failed calls
312
74% retried, and you paid for all of them
+ $182 this week traced to one culprit
Spend over 14 days
Most expensive users
Next week forecast
Graded against reality. Accuracy shown as results land.
Free, no card, no account
Run the free Cost Leak Scan
It shows your most expensive conversation before you install anything.
Keep reading
Sources: Anthropic pricing. Last reviewed 2026-08-01. Plain text version.