All articles
AI NewsBy Petru Popa · 6 min read

The Cheapest LLM API for Agents Is Decided by Cache Writes, Not the Price Cuts

Sonnet 5.5 and GPT-6.1 Sol now list identical input, output and cache-read prices. On an agent workload, the line that separates them is the one the price cuts left alone.

This run covers the gap since the 24 October post. Nothing was published on the 25th.

If you are looking for the cheapest LLM API to run agents on, Anthropic and OpenAI now list the same price for one pair of models. Anthropic's pricing page puts Claude Sonnet 5.5 at $2 per million input tokens, $10 output and $0.10 for a cache read. OpenAI's pricing page puts GPT-6.1 Sol at $2, $10 and $0.10. Even the default cache write matches at $2.50.

Max Woolf's write-up on Sunday traces how both companies got there: a run of cuts since June, several of them aimed at cache reads rather than input or output. His argument is that for coding agents, cache reads are 96 to 99 percent of the tokens spent. On that basis a 75 percent cut to the read price works out to roughly a 70 to 75 percent cut in cost.

Cloudflare's numbers below put the token share near 94 percent. The dollar share is another matter, because of a multiplier the cuts left alone.

The assumption this breaks

The assumption is that a lower list price lowers your agent bill by about the headline percentage, and that the cheapest LLM API is the one with the lowest numbers in the table. Both pricing pages show why that no longer holds.

Anthropic bills a 5-minute cache write at 1.25 times base input and a 1-hour write at 2 times. Reads are 0.1 times on most models, but 0.05 times on Opus 5.5 and Sonnet 5.5. OpenAI's caching guide sets the same 1.25 times for its default 30-minute write, 2.5 times for a 12-hour write, and 0.05 times for reads on GPT-6.1 Sol. The write multiplier is 1.25 times on both pages, the same as on Anthropic's older models. On these models a written token now costs 25 times a read one.

Cloudflare published real numbers a week ago. Its code quality reviewer, per review, wrote 72,000 tokens to the cache and read back 1.08 million. That is about 6 percent writes by token count. Price those two lines at Opus 5's rates ($6.25 write, $0.50 read) and writes are 45 percent of the cached-context cost. At Opus 5.5's rates ($5 write, $0.20 read) they are 62.5 percent. The cut made the cheap part cheaper, so the expensive part now makes up more of the bill.

Cloudflare's own spend split, taken before its optimisation work, makes the same point from the other direction: output 23 percent, cache writes 43 percent, cache reads 34 percent. Cut the read price by 75 percent on that mix and the bill falls by about a quarter, not three quarters. Of the savings Cloudflare attributes to its model change, the lower per-token price accounted for about $0.20 per review. The rest came from sending and generating fewer tokens.

Where the two cheapest LLM APIs actually differ

With input, output, read and short-write prices identical, the difference between Sonnet 5.5 and GPT-6.1 Sol is cache lifetime. Anthropic's cache lasts 5 minutes by default, refreshed free on each hit. OpenAI's default write lasts 30 minutes. An agent that pauses for a person to read a diff, or waits on a slow tool, for ten minutes falls out of Anthropic's default cache. It then pays a fresh write at 1.25 times, unless it paid 2 times up front for the hour. On OpenAI the same pause is still a read. A loop that calls back within seconds never sees that difference.

Two cautions before you treat the tables as interchangeable. First, identical price per token is not identical price per task. Anthropic's pricing page says Claude 4.7 and later use a tokenizer that produces about 30 percent more tokens for the same text than its earlier one. We did not read a comparable figure for OpenAI's tokenizer, so measure tokens per task on your own prompts. Second, list-price parity does not mean a model change is free. Cloudflare describes moving from Sonnet 5 to Sonnet 5.5 as same price per token. Anthropic's table shows identical input, output and write prices, but Sonnet 5.5's cache read is half of Sonnet 5's.

What to do differently this quarter

The decision is this: do not switch vendors, or book a forecast saving, on a list-price cut until you have measured your own cache-write share. If writes are a large part of your cached-context spend, the saving comes from a stable prefix, not from a new vendor. Cloudflare found that the first request of a session hit the cache only 14 to 26 percent of the time. Giving the shared prompt its own cache breakpoint, together with one other prompt change, took the cost per review from $2.47 to $2.02 before any model change.

Log the usage object from each Anthropic response, one JSON object per line, and price it. This filter uses Opus 5.5 rates and assumes 5-minute writes. It reports dollars per line item:

jq -s 'map(.usage) | {write: (map(.cache_creation_input_tokens // 0) | add * 5), read: (map(.cache_read_input_tokens // 0) | add * 0.2), uncached: (map(.input_tokens) | add * 4), output: (map(.output_tokens) | add * 20)} | map_values(. / 1e6)' usage.jsonl

On OpenAI the same three-way split is in usage.input_tokens_details, as cached_tokens and cache_write_tokens. Uncached input is whatever is left of input_tokens.

Then apply two thresholds. If the write line is larger than the read line, fix the prefix before you compare vendors. If fewer than half your sessions read from the cache on their first call, start there. That was where Cloudflare's single biggest saving came from. Only after both are clean does the vendor comparison measure anything. Our LLM consulting work starts from this same per-line breakdown. It is also the gap between a pilot's cost and a production bill that we describe in why a proof of concept is not production.

This is the same gap we found in the Ember-1 savings table. The headline saving shrinks once you weight it by where the dollars actually go.

When this advice is wrong

If your usage log shows cache reads above roughly 90 percent of cached-context dollars, Woolf's arithmetic holds for you. That is a long session that stays warm and rarely writes, so the read cut is your saving and comparing vendors on list price is the right method. The claim here would also be wrong if either vendor cut its write multiplier below 1.25 times. Check both pricing pages before acting on this, since both changed several times since June.

Ready to start?

Turn this into a plan for your team.

One week, fixed fee: a working session with your team, a prioritized use-case backlog, and an ROI model for the opportunities worth chasing.

Book an AI Opportunity Sprint