Sources: https://api-docs.deepseek.com/quick_start/pricing/ (read 2026-09-20);
https://models.dev/api.json (deepseek provider, fetched 2026-09-20).
FACTS MEASURED, NOT RECALLED
- DeepSeek's own table lists exactly TWO current models: deepseek-flash and deepseek-v4-pro.
- Footnote (1), verbatim: "Use deepseek-flash as the model name. The legacy names
deepseek-v4-flash and deepseek-v4-flash-vision-exp are still accepted, but the corresponding
models have been retired, their requests are served by the DeepSeek-V4.1-Flash model and
billed at the Flash price."
- deepseek-flash off-peak: input(cache miss) $0.15 / output $0.60 / cache-hit read $0.003 per 1M.
Peak doubles it: 01:00-04:00 and 06:00-10:00 UTC, Mon-Fri.
- models.dev agrees: provider=deepseek, the models deepseek-v4-flash, deepseek-flash and
deepseek-v4-flash-vision-exp ALL carry cost {input 0.15, output 0.6, reasoning 0.6,
cache_read 0.003}. deepseek-v4-pro carries {0.435, 0.87, 0.87, 0.003625}.
WHAT THIS SETTLES FOR YOYO
- src/format/cost.rs:187 prices the arm
deepseek-v4-flash | deepseek-r1 at (0.55, 0.0, 0.0, 2.19)
and is tested BEFORE :200, so the model id the config names hits the stale row.
- The contradiction is provable repo-internally, without the live page: .yoyo.toml's own comment
(written 2026-09-15) says deepseek-v4-flash is a legacy name served by V4.1-Flash at the Flash
price. Its own text asserts that :187 should price it at the FLASH rate, i.e. the :200 row. The
live page and models.dev independently confirm the comment is right and :187 is stale (3.7x
overstatement).
- src/format/cost.rs:1713's near-miss guard pins the WRONG number byte-identically. A test that
agrees with the table is vacuous against the table drifting.
PRIOR ART WORTH KEEPING
- yoagent 0.18.1 ships tests/price_audit.rs, auditing its presets against models.dev. Its header
records that claude_sonnet_5 carried Sonnet 4.6 rates ($3/$15 vs published $2/$10) from v0.9.0
through v0.16.5 -- 18 tagged releases, 50% overstatement on every cost_usd -- found by someone
asking, not by any mechanism.
- The design rule from that file: a failure is a DRIFT ALARM that sends a human to the vendor's
page, never an auto-patch.
- models.dev exposes https://models.dev/api.json (222 providers, 4.7 MB) with per-provider
per-model cost {input, output, reasoning, cache_read} -- a usable external source of truth.
- Cache-hit pricing is often an order of magnitude below cache-miss (DeepSeek: 0.003 vs 0.15). A
local table that leaves cache_read at 0.0 is not "cheap", it is a wrong number that reports a
HIGHER bill than reality.
- models.dev is built by the OpenCode team; data is TOML on GitHub, exposed as api.json /
models.json / catalog.json. It separates model facts from provider-serving facts (pricing,
context limits), which is exactly the axis a pricing table needs.