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.