Somewhere between September 21 and 22, 2026, the tech press decided a price war had broken out. "Three frontier labs repriced within 48 hours," went the aggregation: Anthropic cut Opus prices, OpenAI cut GPT-6 prices, and Google โ well, Google was in the sentence too. Some versions added xAI's Grok 4.7 for a full four-horse narrative.
This article exists because that sentence is false in each of its three load-bearing clauses, and the way it is false is more interesting than the war it invented. Decomposed to price-sheet arithmetic โ the only level that can be verified live against vendor docs โ the window contained: one genuine repricing with a structural cache-read change (Anthropic), one new-SKU launch whose cache multiplier did not move at all (OpenAI), and one non-event (Google). No vendor said "price war." That framing is press interpretation, and it should be read as such everywhere below12.
The economics that made this window newsworthy is the same economics our agent-fleet cache-elasticity guide decomposed: agentic workloads are dominated by prefix re-reads, so the cache-read line, not list price, is what a fleet actually pays. When a vendor moves that line, the move is aimed at fleets. Let's check who actually moved it.
What the price sheets say, line by line
Verification is trivial and everyone doing this honestly should do it themselves: open the vendor pricing pages, read the four numbers per model โ base input, cached input, cache write, output โ and compute the ratios. Here is what that exercise yields for the Sept 21-22 window.
Anthropic, September 22, 2026 โ the only real repricing1. Opus 5.5 launched against Opus 5 with every line down and one line down far more than the rest:
| Price-sheet line | Opus 5 | Opus 5.5 | Delta |
|---|---|---|---|
| Base input | \$5 /MTok | \$4 /MTok | โ20% |
| Base output | \$25 /MTok | \$20 /MTok | โ20% |
| Cache write (5-min) | \$6.25 /MTok (1.25x) | \$5 /MTok (1.25x) | โ20% |
| Cache write (1-hour) | \$10 /MTok (2x) | \$8 /MTok (2x) | โ20% |
| Cache read | \$0.50 /MTok (0.10x) | \$0.20 /MTok (0.05x) | โ60% |
The context window is unchanged at 1M tokens, and a Fast mode tier runs at \40 with up to 2.5x speed. Note the last row carefully: Anthropic's platform docs price cache reads at "0.1x base input" as the standard multiplier across the model line โ Opus 5.5 explicitly breaks it down to 0.05x of its \$4 base. That is the structural story of the whole window, and it is one vendor's move, not three.
OpenAI, September 22, 2026 โ a launch, not a repricing2. GPT-6 Sol (\10) and GPT-6 Luna (\0.50) are new SKUs, priced against the GPT-5.6 promotional cards:
| Price-sheet line | GPT-5.6 Sol (promo) | GPT-6 Sol | Delta |
|---|---|---|---|
| Base input | \$4.00 /MTok | \$2.00 /MTok | โ50% |
| Base output | \$20.00 /MTok | \$10.00 /MTok | โ50% |
| Cached input | \$0.40 /MTok | \$0.20 /MTok | โ50%, at 0.10x flat |
The cached-input line fell by 50% only because it is defined as 0.10x of base input, and base input fell by 50%. The multiplier itself is untouched โ it was 0.10x before, it is 0.10x after. OpenAI's actual cache move that day was performance: a separate post, "Better prompt caching for GPT-6," announced higher default hit rates, cache discounts for eligible prefixes reused within a 30-minute window, explicit cache breakpoints, a caching dashboard, and miss diagnostics3. All of that changes how often the 0.10x rate applies. None of it changes the rate. And the headline "50% cheaper" is itself inexact on one line: Luna's output went \0.50, which computes to โ58.3% โ the marketing number is the Sol-and-input figure copied across the table2.
Google, September 21-22, 2026 โ nothing happened4. The Gemini API changelog's latest pricing-relevant entries are dated August 13-24 and September 2, 2026 (flash-tier launches at introductory rates, scheduled to double on January 1, 2027). There is no September 21-22 entry because there was no September 21-22 price change. Any story that puts Google in the repricing window has merged the flash intro-rate story into a window it does not belong to. And the tempting fourth player โ xAI's Grok 4.7, launched September 21 โ launched at unchanged prices, "served at the same price and speed as Grok 4.6" in the vendor's own words5. A release is not a repricing.
So the accurate summary of the window, verified at the primaries: one repricing, one launch, one silence. The "three labs cut prices" line failed at each vendor by a different mechanism โ which is exactly the kind of aggregation artifact worth understanding.
Why the cache-read line is the battlefield
The fleet economics make the targeting obvious. An agent loop re-sends its own conversation prefix on every tool call; on the self-reported anchor day we dissected previously โ roughly 4B tokens for ~44 agents โ some 75% of the tokens were cache reads of the fleet's own context, not fresh work6. A vendor that cuts the cache-read line by 60% is cutting the dominant line of exactly one customer class: people running agent fleets. A vendor that cuts list price 50% across the board cuts that line too โ but discounting cached input is not a fleet-specific weapon; it is just arithmetic trailing the list price.
Run the actual day on each price card. Canonical shape, from the anchor decomposition6: 3.0B cache-read tokens, 0.9B fresh input tokens, 0.1B output tokens:
M = 1e6
shape = dict(cache_reads=3.0e9, fresh_in=0.9e9, output=0.1e9) # 4B total, 75% loop share
cards = {
"Anthropic Opus 5 (old)": dict(i=5.00, c=0.50, o=25.00),
"Anthropic Opus 5.5": dict(i=4.00, c=0.20, o=20.00),
"OpenAI GPT-5.6 Sol (promo)": dict(i=4.00, c=0.40, o=20.00),
"OpenAI GPT-6 Sol": dict(i=2.00, c=0.20, o=10.00),
"OpenAI GPT-6 Luna": dict(i=0.10, c=0.01, o=0.50),
"Google Gemini 3.8 Flash (intro)": dict(i=0.75, c=0.075, o=3.75),
}
for name, p in cards.items():
day = (shape["cache_reads"] / M * p["c"]
+ shape["fresh_in"] / M * p["i"]
+ shape["output"] / M * p["o"])
cr = shape["cache_reads"] / M * p["c"]
print(f"{name:34s} day=${day:,.0f} cache-read line=${cr:,.0f} ({cr/day:.1%})")Which prints, live against the cards above:
| Price card | Barrie-shaped day | Of which cache reads |
|---|---|---|
| Anthropic Opus 5 (old) | \$8,500 | \$1,500 |
| Anthropic Opus 5.5 | \$6,200 | \$600 |
| OpenAI GPT-5.6 Sol (promo) | \$6,800 | \$1,200 |
| OpenAI GPT-6 Sol | \$3,400 | \$600 |
| OpenAI GPT-6 Luna | \$170 | \$30 |
| Google Gemini 3.8 Flash (intro) | \$1,275 | \$225 |
Three price-sheet facts fall out of this table, and none of them is "three-way war":
- Same-shape deltas: Opus 5 โ Opus 5.5 on the identical workload is โ27.1% for the day (\6,200), deeper than the โ20% list-price cut because cache reads fell 60% on the largest single quantity. GPT-5.6 Sol โ GPT-6 Sol is exactly โ50% for the day, because every line fell 50%. The 60% asymmetry is Anthropic-specific.
- Cross-vendor, the cards are not comparable unless you ignore quality: Opus 5.5's day is 1.82x GPT-6 Sol's, and each vendor prices capability families, not fungible tokens. Any "parity" claim past the cards themselves is marketing or press.
- The cache-read share is card-invariant on this shape: on every card with standard proportional multipliers the cache-read line lands at a fixed ~17.6% of the day (Opus 5: 8,500) because the ratio of cached to fresh quantity is the workload's property, not the vendor's โ> the deliberate exception is Opus 5.5, where the 60% cache-read cut pulls the share to 9.7% (6,200); that exception is the fleet-targeted policy, and flat-0.10x cards cannot copy it without repricing the multiplier itself. That is precisely why the fleet market โ the 75%-looping customer class โ is where cache-read pricing decisions land hardest, and why a 0.05x multiplier is fleet-targeted policy.
The 0.05x deviation, quantified
Anthropic's own pricing docs price cache reads at "0.1x base input price" with model-specific exceptions spelled out (0.025x on Fable 5.1 and Mythos 5.1, and now 5% on Opus 5.5)1. Opus 5.5 is therefore not "20% cheaper Opus with a 10% multiplier" โ a naive reading โ but a deliberate halving of the fraction Opus-shaped agentic work pays on its echo:
# effective input multiplier at cache hit rate h: fresh pays 1.0x, hits pay the vendor's m
# effective = (1 - h) * 1.0 + h * m
for h in (0.50, 0.75, 0.90):
m05 = 1 - h + h * 0.05 # Opus 5.5
m10 = 1 - h + h * 0.10 # standard Anthropic / OpenAI multiplier
print(f"h={h:.2f}: 0.05x -> {m05:.3f} vs 0.10x -> {m10:.3f}, "
f"cache line {(m05/m10 - 1):+.1%}")- h = 0.50 โ 4.5% deeper cut on the input line than a 0.10x card would give
- h = 0.75 โ 11.5% deeper
- h = 0.90 โ 23.7% deeper โ at high hit rates, half the price on one quantity plus a rate break both apply
The deviation compounds with hit rate: at the looping fractions agent fleets actually run (0.75+), the 0.05x multiplier is worth an extra ~12% off the entire input line, on top of the 20% list cut. Flat 0.10x cards โ every OpenAI SKU in this story, and the rest of Anthropic's own line โ cannot follow that without repricing the multiplier itself.
Vendor rationale vs press warfare
The last decomposition layer is who said what. The vendors' statements are about cost-to-serve; the war is in the headlines.
Anthropic's stated rationale, verbatim: Opus 5.5 "requires less compute to serve than Opus 5, and its pricing reflects that. Our tests show that at default settings it will cost 40% less than Opus 5 on typical workloads."1 That is a cost-to-serve argument โ and note the 40% is a workload estimate (cheaper tokens ร fewer tokens ร faster output), not a price-card delta. The honest price-card numbers are โ20/โ20/โ20/โ60, and the same-shape arithmetic above gives โ27% on a standard agentic day, not 40%. Both can be true; only one is on the price sheet.
OpenAI's stated rationale, verbatim: "Improvements in caching and inference let us serve these models at lower cost, and we're passing those savings directly on to users and customers by reducing API prices for Sol and Luna by 50% compared with their GPT-5.6 promotional pricing."2 Also a cost argument โ new models, cheaper to serve, priced accordingly โ attached to new SKUs, not existing ones.
Google said nothing in the window, because there was nothing to say4. xAI said prices were unchanged5.
No vendor claimed a price war. The "war" is press interpretation โ outlet framing like "price wars heat up" and "pressure on their ability to profit," plus aggregator timelines stacking unrelated events โ and it deserves the skepticism given to any narrative that survives its own fact-check: the war narrative needs three belligerents, and the price sheets supply one aggressive move, one new-product launch, and an empty chair.
Verdict, with the counterfactual stated honestly
What actually happened on September 21-22, 2026, decomposed:
- One repricing. Anthropic cut every Opus 5.5 line 20% and the cache-read line 60%, taking the multiplier to 0.05x โ a structural, fleet-targeted change to the price the largest token quantity in agentic work pays.
- One launch. OpenAI shipped GPT-6 Sol and Luna at 50% below the GPT-5.6 promo cards (Luna output โ58.3%), with the 0.10x cache multiplier untouched; its caching improvements change realized hit rates, not rates3. Luna's per-MTok day above shows how far the small card goes on a big loop-shaped day โ with all the capability caveats a 4B-token fleet implies.
- Zero Google. Google moved nothing in the window; the flash intro rates are older news4. Grok 4.7 launched at unchanged prices5.
And the honest counterfactual for the fleet operator: nothing in this window changed your workload shape. The per-token cost chain โ the inference math of prefill, KV reuse, and decode โ moved only at the billing layer, and the serving-engine landscape is where those costs really live. A fleet whose agents loop at 75% now pays 0.05x-per-tenth on the echo on one vendor, and 50% less per cached token on the other โ the shape still decides the bill. Measure the hit rate, cap the loop depth, price the day against the card โ and read "price war" headlines the way you read any aggregation of one event, one launch, and a silence: as a compression artifact, not a quote.
Footnotes
Footnotes
-
Anthropic, "Introducing Claude Opus 5.5," September 22, 2026 โ price table (input \20, cache writes \0.20/MTok), the โ60% cache-read claim, Fast mode \40 at up to 2.5x speed, and the rationale quote "requires less compute to serve than Opus 5... will cost 40% less than Opus 5 on typical workloads": https://www.anthropic.com/claude-opus-5-5 โ with the full model pricing and cache multipliers (standard 0.1x read; 1.25x/2x writes; 0.05x read on Opus 5.5 explicitly): https://platform.claude.com/docs/en/about-claude/pricing โฉ โฉ2 โฉ3 โฉ4
-
OpenAI, "Introducing GPT-6 Sol and Luna," September 22, 2026 โ the \2/\10 (Sol) and \0.10/\0.50 (Luna) tables, the "reducing API prices... by 50%" and "passing those savings directly on" quotes: https://openai.com/index/introducing-gpt-6-sol-and-luna/ โ live API pricing with cached input at flat 0.10x of list: https://developers.openai.com/api/docs/pricing โฉ โฉ2 โฉ3 โฉ4
-
OpenAI, "Better prompt caching for GPT-6," September 22, 2026 โ higher default cache hit rates, 30-minute reuse window for eligible shared prefixes, explicit breakpoints, Prompt Caching Dashboard and miss diagnostics, "discounts of up to 90% on cached input tokens," and mid-conversation reasoning-effort changes that preserve cache: https://openai.com/index/better-prompt-caching-for-gpt-6/ โฉ โฉ2
-
Google AI Gemini API pricing and changelog, retrieved September 25, 2026 โ flash-tier introductory rates (\0.075 cached through December 31, 2026, doubling January 1, 2027) and the changelog whose latest pricing-relevant entries are dated August 13-24 and September 2, 2026 (Gemini 3.8 Flash GA), with no September 21-22, 2026 entry: https://ai.google.dev/gemini-api/docs/pricing and https://ai.google.dev/gemini-api/docs/changelog โฉ โฉ2 โฉ3
-
xAI, Grok 4.7 announcement, September 21, 2026 โ launched at the same price and speed as Grok 4.6, i.e. no repricing shipped: https://x.ai/news/grok-4-7 โฉ โฉ2 โฉ3
-
Flozi TechHub, "Agent-Fleet Token Economics Is Cache Economics" โ the Barrie anchor day (~44 agents, ~4B tokens, ~\$1,300, 75% cache-read share) decomposed against live price sheets, with the hit-rate cost multiplier
1 โ 0.9 ร h: https://flozi.net/en/guides/ai/agent-fleet-cost-cache-elasticity โฉ โฉ2