How some "discount" LLM gateways advertise 50% off and deliver 28%
29 August 2026 · prices as published by the providers on that date
Every LLM gateway that undercuts the official APIs puts a number on the badge: 50% off, up to 80% off. The number is real. It just isn't the number on your bill, because the badge is computed on the two prices you look at — input and output — and a real coding session spends most of its money somewhere else.
This is a look at where the money actually goes, how a badge gets inflated, and a three-minute way to check any provider, including us.
What a real session looks like
Take a focused two-hour Claude Code session on a mid-size repository: a few dozen requests, the usual context reuse. Agentic coding tools re-send the system prompt, the project context and the conversation history on every request; the provider caches that prefix and bills the re-reads at a much lower "cache read" rate. A representative mix:
- Cache reads5,000,000 tokens
- Fresh input250,000 tokens
- Output100,000 tokens
- Cache writes350,000 tokens
Cache reads are 88% of the tokens. Your mix will differ — a long session pushes that share past 95% — but the shape holds for any agentic tool.
Where the money goes
Priced at Anthropic's published rates for Claude Fable 5 ($10 input, $50 output, $1 cache read, $12.50 cache write per million tokens), the session costs $16.88:
| Line | Cost | Share of bill |
|---|---|---|
| Cache reads | $5.00 | 29.6% |
| Cache writes | $4.38 | 25.9% |
| Fresh input | $2.50 | 14.8% |
| Output | $5.00 | 29.6% |
Cache reads are 88% of the tokens but only about 30% of the money — cache reads are cheap per token. Add cache writes and cache pricing is 56% of the bill. Input and output together, the two numbers every badge is built on, are the remaining 44%.
So a discount that only touches input and output is discounting less than half of what you pay.
Four ways a badge gets bigger than the bill
None of these are lies. All of them are true statements about the wrong number.
- 1. The discount applies to input and output only. Cache reads are billed at the provider's list price, or at a much smaller discount. The badge says 50%; the cache row says 0–20%.
- 2. Cache writes aren't mentioned at all. Anthropic bills a five-minute cache write at 1.25× the input price; OpenAI does the same from GPT-5.6 on. A gateway that passes that through at list price is charging full rate on a quarter of your session.
- 3. "Up to X% off" is measured on the cheapest line. Output for one model, a promotional tier for another. The rest of the catalog sits well below the badge.
- 4. Cache pricing isn't on the pricing page. You find it on the invoice. If a provider's price table has two columns, ask where the other two are.
Our own slip
We briefly made a version of mistake number three ourselves: our "up to" badge compared a long-context tier against the base list price. We fixed it the same day we noticed, and the checklist below is now something we run on our own catalog.
The worked example
Same session, three hypothetical providers:
| Provider | Input / output | Cache read | Cache write | Session | Real discount |
|---|---|---|---|---|---|
| Official API | — | — | — | $16.88 | — |
| "50% off", cache read 20% off, cache write at list | 50% | 20% | 0% | $12.13 | 28% |
| "50% off", both cache lines 20% off | 50% | 20% | 20% | $11.25 | 33% |
| Flat 35% on all four prices | 35% | 35% | 35% | $10.97 | 35% |
A flat 35% beats a "50%" badge on this session — not because 35 is bigger than 50, but because it applies to the 56% of the bill the badge ignores.
To be fair to the badge: if a provider discounts both cache lines by at least 23%, its "50%" would match the flat 35% on this mix. Which is exactly the point — the cache rows decide the outcome, and the badge doesn't tell you what they are.
How to check any provider in three minutes
- 1. Collect four unit prices for the model you actually use: cache read, input, output, cache write. If one is missing from the pricing page, ask support; if support doesn't know, that's your answer.
- 2. Write down your mix. Claude Code prints it under /usage (input, output, cache read, cache write); other tools log it too. If you have nothing, use the table above.
- 3. Multiply and add. Four multiplications, one sum, per provider. Compare totals, not badges.
Four questions worth asking before you top up anywhere:
- Is the discount the same on cache reads as on output?
- What do you charge for cache writes?
- Is the "up to" number the best case or the typical case?
- Can I see the official price next to yours?
Disclosure
I run KoRouter, a gateway with one key for Claude, GPT, DeepSeek, GLM and Kimi models. One multiplier per model applies to all four prices — cache reads and writes included — and every model on the marketplace shows the provider's official price next to ours, so the method above works on us too. If you run the numbers and find a cheaper session somewhere, use it; the point of this post is the method, not the badge.
The same session priced at live KoRouter rates is on the cost guide.