The same output.
A smaller bill.

You spend now
per month
Anthropic API, all models
You'd spend
$17,967 same output
55% less · $22,033 a month · assumes a 30% hit rate today
Measure my real hit rate

Your agents resend the same context every turn. Anthropic serves it back at a tenth of the price — but only if your cache is working, and it fails silently.

A model, not a quote. No integration, no traffic through us, read-only.

The problem

A broken cache throws no error.

It doesn't crash. It doesn't warn. cache_read_input_tokens quietly goes to zero and your bill goes up. One dynamic field in the wrong place is enough.

// healthy — the prefix is being reused
"usage": {
  "input_tokens":              1,204
  "cache_read_input_tokens":   847,392   ← billed at 0.1x
}

// broken — same code, one field moved
"usage": {
  "input_tokens":            848,596   ← full price, every turn
  "cache_read_input_tokens":       0   ← no error, no warning
}
4

breakpoints, max

Anthropic allows four cache_control markers per request. Place them wrong and you pay to write a cache nothing reads.

20

block lookback

A breakpoint searches back only twenty content blocks. Eight parallel tool calls can overshoot that in one turn.

512

token minimum

Below the model's minimum cacheable prefix, caching silently does nothing at all.

Three stacked translucent panes; the two beneath glow, the one on top is clear.

The mechanism

Pay once for the part that never changes.

Your system prompt, your tool definitions, your reference documents — identical on every call. A cache breakpoint marks where that stable prefix ends. Anthropic keeps the computed state and charges 0.1× to reuse it.

The model still runs a full forward pass on everything after the breakpoint. That is why the output cannot change: it is the same model reading the same tokens.

See where it breaks →

It happens to good teams

ProjectDiscovery ran at a 7% hit rate.

A security agent on Opus 4.5 with 2,500-line system prompts — over 20,000 tokens each. Caching was on. It was working at 7% because working memory sat inside the cached prefix and changed on nearly every step.

“Working memory changes on nearly every step. This was silently killing our cache hits.”

Moving it to the tail took them 7% → 74% in one change, then 84% with follow-ups — cutting cost 59%, later 70%, across 9.8 billion cached tokens. — their write-up →

And the longer the agent runs, the more it saves.

Their own production data, by task length. This is the shape that matters: the agentic work everyone is scaling into is exactly the work caching pays off hardest on.

Task lengthStreamsAvg cache rateAvg input tokens
1 step2,80135.5%47,518
2–3 steps79430.0%161,442
4–5 steps62042.8%253,880
6–10 steps1,28453.6%379,818
11–20 steps1,72963.9%745,685
20+ steps3,13974.0%3,763,263

At the extreme they measured tasks of 57–68M input tokens running at 83–93% cache rates. A comparable task before the fix ran at 3.2% — roughly a 60× cost difference on the same work. All figures are ProjectDiscovery's own, published and linked above.

What we ship

Only levers that can't change your output.

Same model, same tokens — so there's nothing to A/B, nothing to eval, and no quality argument to have in procurement.

Measure, then decide

The audit reads token counts from your usage — never prompt text. You get your real hit rate and dollar headroom before you change anything or sign anything.

Then keep it working

Caching breaks silently as prompts, tools and models churn through a growing team. We watch the hit rate and tell you the day it drops.

Caching discounts input only — output always bills full rate. And inference isn't bit-deterministic, so we claim zero quality change by construction (same model, same input), not identical bytes. Only an exact-match cache hit is literally byte-for-byte. See every method →

Start with the number

Find out what you're leaving on the table.

Free, read-only, no integration. If it's under 20% we'll tell you and leave.