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.

Run a free scan

Mistakes that cost the most

MistakeWhy it hurtsDo 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

  1. Read your cached prefix top to bottom and mark every field that can differ between two calls.
  2. Count cache reads against cache writes for last week. Below one read per write, caching is costing you money.
  3. Check which cache duration you selected, and whether anyone chose it deliberately.
  4. Compare Anthropic spend before and after caching went live at matched call volume.
  5. 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.

Uncached, 21 calls: 21 x (30 x $0.005) = 21 x $0.150 = $3.150
Cached well, one write then 20 reads: (30 x $0.00625) + 20 x (30 x $0.0005) = $0.1875 + $0.300 = $0.4875
Cached badly, prefix varies so all 21 calls write: 21 x (30 x $0.00625) = 21 x $0.1875 = $3.9375
Cached well saves 84.5% against not caching
Cached badly costs exactly 25% more than not caching, which is the write multiplier and nothing else

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

FigureWhat it meansConfidenceSource
$0.4875 to $3.9375modelled cost of 21 calls over one 30k prefix, cached well against cached badly on Claude Opus 4.8estimatedBoth 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 cachecalculatedThe 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.

1

Change one base URL.

Or drop in the Python or TypeScript library.

2

Find your most expensive conversation.

In the first session, not the first week.

3

Cost your next feature before you ship it.

Base URLhttp://localhost:4545/v1Your traffic keeps flowing if Culpa ever stops.

Why the bill went up

Example dashboard

Calls 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

$0$20$40$60$8024262830020406
user_384report_generatorconv_91fprompt_v1894,220 tokens3 retries$6.81

Most expensive users

user_384$38.42
user_119$21.07
user_562$14.90
user_204$8.30
user_871$5.10

Next week forecast

Best$180
Median$240
p90$310
p99$395

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.

Run a free scan

Keep reading


Sources: Anthropic pricing. Last reviewed 2026-08-01. Plain text version.