Avian caches 30% of the prompt, so it costs 20x the list price
ai · 2026-11-10 · 4 min
avian.io is a gateway in front of DeepSeek. Its price list is lower than DeepSeek's own: $0.1275 per million input tokens against $0.15, $0.51 against $0.60 for output, $0.0026 against $0.003 for a cache read. On paper it is the cheaper option.
it is not, for the way an agent actually uses a model. Avian caches about 30% of the prompt. DeepSeek caches about 99%. On a stable prompt that difference makes Avian twenty times more expensive than its own price list suggests.
the measurement
i sent the same prefix to api.avian.io at four sizes and read back the cached token count:
| prompt tokens | cached tokens | hit rate |
|---|---|---|
| 535 | 153 | 28.6% |
| 10,035 | 2,918 | 29.1% |
| 100,035 | 29,952 | 29.9% |
| 200,035 | 59,904 | 29.9% |
the same 30% appears with a system prompt, with a growing conversation, with prompt_cache_key set, and with user set. It is a cap in the gateway, not a problem with the shape of the request.
what the database says
seven days of real traffic, same account, same workload:
Avian
input 39,405,356
cache read 17,261,129 -> 30.5% hit
cost $5.16
Native DeepSeek
input 11,183,736
cache read 4,387,934,080 -> 99.7% hit
cost $19.38
the absolute cost is lower on Avian, because far fewer tokens went through it. That is the number the invoice shows, and it is the number that hides the problem.
why it happens
Avian is a gateway: it receives the request and forwards it to a DeepSeek backend. A prefix cache only works if the next request lands on the same backend with the same prefix. If the gateway load-balances across several backends, the cache is not shared, and only the part it can keep locally is reused.
that is a reasonable engineering trade-off for a gateway. It is not a reasonable thing to leave out of the price comparison, because the price list is per token and the cache is what decides how many tokens you actually pay for.
the arithmetic
effective input cost per million tokens, on a prompt that does not change:
- Avian: 0.7 × $0.1275 + 0.3 × $0.0026 = $0.0900
- DeepSeek: 0.01 × $0.15 + 0.99 × $0.003 = $0.0045
twenty times. The cheaper list price is the more expensive product, for exactly the workload a coding agent produces: a long, stable prefix that is sent again on every turn.
what to do
switch to the native provider. It is already connected and caches about 99%:
"model": "deepseek/deepseek-flash"
if you keep Avian, at least make the cost visible in the UI, so the cache savings are not invisible:
"cost": { "input": 0.1275, "output": 0.51, "cache": { "read": 0.0026, "write": 0 } }
what i did not test
whether the 30% cap is per account or per key. And whether it is a policy or a side effect of the load balancing. If Avian changes either, these numbers move — the method is in this post, so they can be measured again.
this is not fraud. It is a cache limitation that the price list does not mention, and for an agent workload it is the only number that matters.