Skip to content

Anthropic, OpenAI, AWS Bedrock

Stop paying for prompt cache you never read.

We read your usage export, token counts only. You get the dollar figure per model. Free.

$236

Paid for nothing.

Four days, one team, one model, on Bedrock.

1,182.09 × 0.25 / 1.25  codex#37674

The same four days, itemised.

Your provider prints one input-token figure. Writes and reads are both inside it, added together. Split apart, it reads like this.

Statement

AWS Bedrock · 5 to 8 August 2026 · one team

Line itemAmount
Cache writesbilled at 1.25× a plain token, 171,900,000 tokens$1,182.09
Reads of those writesnothing read the stored prefix back in the sampled session, 0 tokens$0.00
Of which premium, 0.25 of 1.251,182.09 × 0.25 / 1.25 = $236.42, already counted in the row above

Paid for nothing

$236.42

The fix was one line: a cache breakpoint on the part of the prompt that never changes.

Source: codex#37674, the reporter's own Cost Explorer estimate, not an invoice, and the reporter says so. The cause, a newly enabled tool breaking the prefix on every call, was found eleven days later.

Five ways the bill quietly grows.

None shows up as a spike. Each shows up as a level that was always a little too high.

  • +25%

    Writes nobody reads

    A write costs 1.25 times a plain token. If nothing reads it back, the extra quarter is gone.

  • ×1.25every call

    Prefixes that keep changing

    A timestamp, a reordered tool, a toggled setting. The stored copy stops matching and you pay the write again.

  • ~10×

    No caching at all

    A read costs 0.1 of a plain token, and 1 / 0.1 is ten. A stable prefix sent in full every call costs about ten times the cached traffic.

  • inputTokens

    Dashboards that miss it

    On Bedrock that field excludes cached tokens. A budget built on it guards the wrong number.

  • > TTL

    Requests spaced wider than the window

    A five minute cache and a seven minute median gap means every write is paid again and nothing is ever read back.

The instrument

One ratio decides it: reads per write.

A cache write costs 1.25 times a plain token, a read 0.1. Caching pays back only above 0.28 reads per write. On a one hour cache the write is 2× and the line moves to 1.11.

The invoice does not show the ratio. Both are billed as input tokens and added together.

Cost per cached token, 5 min cachevs sending it plain
  • codex#37674, sampled session · 0.00
    +25%
  • Break-even · 0.28
    ±0
  • One read per write · 1.00
    −32%

Under 0.28, switching caching off would cost less.

Same formula, three rulebooks

Multipliers match. What differs is the one hour tier, whether cached tokens sit inside the input count, and since when writes cost money. Verified 22 August 2026; each row links its source.

ProviderWrite, 5 minWrite, 1 hReadBreak-even
Anthropic1.25×0.1×0.28 / 1.11
OpenAI1.25× from GPT-5.6, free beforenot verified, 30 min TTL0.1×0.28
AWS Bedrock1.25×2×, per model0.1×0.28 / 1.11

Gemini bills cached tokens by storage hour, not by write, so this formula does not apply there and the audit does not cover it yet.

Per model, including the minimum below which a breakpoint is silently ignored: the full schedule. The same rows as data, nulls included: pricing-matrix.json.

Check it yourself

Decide it from the bill, or before you write the code.

From the bill: cache write tokens and cache read tokens, for one model, over any period you like. Before you build: how far apart your calls land on one unchanged prefix. Everything below is computed in this page. Nothing is sent anywhere, and nothing is kept.

What you are checking
Cache window

This model offers: 5 min, 1 h

Readout

Reads per write
Break-even at
Net vs no caching
In dollars

Waiting for two numbers.

Break-even is 0.28 on a short window and 1.11 on an hour, from (write − 1) / (1 − read). A window of length T reaches it at an average gap of T / ln(1 + break-even), which is 20.4 minutes on a five minute window and 80.3 on an hour. The matrix holds every multiplier and its verification date.

Three steps. No install, no account.

A local binary is on the way. Until then we run it for you, and you get the same report.

  1. Export a week of usage

    From your provider console: token counts and timestamps, no prompt content. Each provider's export looks different, so the steps for yours come with the reply.

  2. Send it

    We run the audit and send the report back. Until the binary ships that is a person, not a pipeline, which is why it takes two working days.

  3. Read the number

    Per model: reads per write, dollars paid for nothing, and the one change that fixes it. The method is printed next to every figure.

Pay only from savings we can prove.

If the number is zero, so is the invoice.

Audit

$0

Per model: reads per write, dollars paid for nothing, and the one change that fixes it. As often as you want.

Get your number

Both start the same way, with the free audit.

Pilot, three months

20% of savings

capped at $500/mo

We apply the fix in your request path and measure the difference against your baseline. After the pilot, a flat plan from $199/mo.

  • Measured against 14 to 30 days of your own traffic, at current list prices.
  • Months we made it worse count against us.
  • Raw event export with every invoice. Disputes are settled by the export.
  • Zero findings

    If there is nothing to find, you get that in writing too.

  • What we see

    Token counts and timestamps only. Never prompt or response content.

  • Providers

    Anthropic, OpenAI and AWS Bedrock. No call required.

See how much of your bill is paid for nothing.

Leave your email and provider. Within one working day you get the export steps. Send the export back and the report follows within two working days.

How we handle what you send: privacy.

Questions engineers ask first.

What exactly do you see?

Token counts, timestamps, model names, request ids. Never a prompt, never a response. For the audit that is a CSV you export yourself. In a pilot it is the same metadata, read from the gateway that applies the fix.

What is the gateway, and where does it run?

A proxy in front of your provider that sets cache breakpoints on the stable prefix and keeps tool order stable. It runs in your cloud account, not ours. It fails open: if it is down, requests go straight to the provider.

My gateway already has caching turned on. Is that not enough?

A checkbox tells you caching is on. It does not tell you whether it pays for itself. Below 0.28 reads per write it does not, and that is what we measure.

Will you change my model or shorten my outputs?

Never without an evaluation on a sample and your written consent, per route. Caching fixes do not alter a response. Output changes always do, so they are opt-in.

Who is behind this?

Tenzan Logic, a one-person software studio in Krakow. The method is published next to every number. The invoice follows the savings.

Schedule of minimums

Under the floor, a breakpoint does nothing.

No error, no warning, no line on the invoice. You set a breakpoint, the prompt is under the model's floor, and the provider ignores it. These are the floors, all 26 models we have checked.

Minimum cacheable prompt and available cache windows, per model
ModelMinimum tokensCache windowsRules from
fable-5Anthropic5125 min, 1 hAnthropic docs, prompt caching, for anthropic:fable-5
haiku-3.5Anthropic2,0485 min, 1 hAnthropic docs, prompt caching, for anthropic:haiku-3.5
haiku-4.5Anthropic4,0965 min, 1 hAnthropic docs, prompt caching, for anthropic:haiku-4.5
mythos-5Anthropic5125 min, 1 hAnthropic docs, prompt caching, for anthropic:mythos-5
opus-4.5Anthropic4,0965 min, 1 hAnthropic docs, prompt caching, for anthropic:opus-4.5
opus-4.6Anthropic4,0965 min, 1 hAnthropic docs, prompt caching, for anthropic:opus-4.6
opus-4.7Anthropic2,0485 min, 1 hAnthropic docs, prompt caching, for anthropic:opus-4.7
opus-4.8Anthropic1,0245 min, 1 hAnthropic docs, prompt caching, for anthropic:opus-4.8
opus-5Anthropic5125 min, 1 hAnthropic docs, prompt caching, for anthropic:opus-5
sonnet-4.5Anthropic1,0245 min, 1 hAnthropic docs, prompt caching, for anthropic:sonnet-4.5
sonnet-4.6Anthropic1,0245 min, 1 hAnthropic docs, prompt caching, for anthropic:sonnet-4.6
sonnet-5Anthropic1,0245 min, 1 hAnthropic docs, prompt caching, for anthropic:sonnet-5
claude-3.5-sonnet-v2AWS Bedrock1,0245 minAWS Bedrock docs, prompt caching, for bedrock:claude-3.5-sonnet-v2
claude-3.7-sonnetAWS Bedrock1,0245 minAWS Bedrock docs, prompt caching, for bedrock:claude-3.7-sonnet
claude-haiku-4.5AWS Bedrock4,0965 min, 1 hAWS Bedrock docs, prompt caching, for bedrock:claude-haiku-4.5
claude-opus-4AWS Bedrock1,0245 minAWS Bedrock docs, prompt caching, for bedrock:claude-opus-4
claude-opus-4.5AWS Bedrock4,0965 min, 1 hAWS Bedrock docs, prompt caching, for bedrock:claude-opus-4.5
claude-opus-4.6AWS Bedrock4,0965 mindisputedAWS Bedrock docs, prompt caching, for bedrock:claude-opus-4.6
claude-sonnet-4.5AWS Bedrock1,0245 min, 1 hAWS Bedrock docs, prompt caching, for bedrock:claude-sonnet-4.5
claude-sonnet-4.6AWS Bedrock1,0245 mindisputedAWS Bedrock docs, prompt caching, for bedrock:claude-sonnet-4.6
gpt-5.6-lunaAWS Bedrock1,02430 minAWS Bedrock docs, prompt caching, for bedrock:gpt-5.6-luna
gpt-5.6-solAWS Bedrock1,02430 minAWS Bedrock docs, prompt caching, for bedrock:gpt-5.6-sol
gpt-5.6-terraAWS Bedrock1,02430 minAWS Bedrock docs, prompt caching, for bedrock:gpt-5.6-terra
gpt-5.4OpenAI1,024no explicit windowOpenAI docs, prompt caching, for openai:gpt-5.4
gpt-5.5OpenAI1,024no explicit windowOpenAI docs, prompt caching, for openai:gpt-5.5
gpt-5.6-solOpenAI1,02430 minOpenAI docs, prompt caching, for openai:gpt-5.6-sol

Where the documentation contradicts itself

On claude-opus-4.6 and claude-sonnet-4.6, AWS publishes two answers. The model card for each says the cache accepts a five minute and a one hour window. The supported-models table on the prompt caching page lists five minutes only, which matches the January 2026 general availability announcement, where the one hour window covered Opus 4.5, Haiku 4.5 and Sonnet 4.5 and nothing else.

We have not resolved it, so we print both. Until someone sends a request with a one hour cache point and reports what the API answers, treating either page as settled is a guess. The table above shows the five minute figure, which is the one both pages agree on.

Reading this table

A window is how long a written prefix survives before it has to be paid for again. Models with no explicit window cache automatically and charge nothing for the write, so there is no break-even to clear on them.

Matrix version 2026-08-26. Multipliers verified 2026-08-22. Same rows, as data: pricing-matrix.json