<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Brian Fu</title>
    <description>The latest articles on DEV Community by Brian Fu (@korouter).</description>
    <link>https://dev.to/korouter</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4176318%2F97afa6d6-5216-4752-9f88-eb29099fd269.png</url>
      <title>DEV Community: Brian Fu</title>
      <link>https://dev.to/korouter</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/korouter"/>
    <language>en</language>
    <item>
      <title>DeepSeek V4, GLM-5.3 and Kimi K3 in Claude Code: one config block, and what a 2-hour session costs on each</title>
      <dc:creator>Brian Fu</dc:creator>
      <pubDate>Thu, 15 Oct 2026 13:00:00 +0000</pubDate>
      <link>https://dev.to/korouter/deepseek-v4-glm-53-and-kimi-k3-in-claude-code-one-config-block-and-what-a-2-hour-session-costs-3i63</link>
      <guid>https://dev.to/korouter/deepseek-v4-glm-53-and-kimi-k3-in-claude-code-one-config-block-and-what-a-2-hour-session-costs-3i63</guid>
      <description>&lt;p&gt;Claude Code doesn't have to run on Claude. It talks to any endpoint that speaks the Anthropic protocol, and a gateway that lists other vendors' models behind that protocol lets you point the same tool at DeepSeek V4, GLM-5.3 or Kimi K3 with one config block. This post covers the setup for Claude Code, Cline, Aider and Continue, what to expect from each model, and what the same two-hour session costs on all of them.&lt;/p&gt;

&lt;p&gt;Prices below are from the &lt;a href="https://korouter.ai/models?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=cc-chinese-models" rel="noopener noreferrer"&gt;KoRouter marketplace&lt;/a&gt; on 7 October 2026, USD per million tokens, with the vendor's official price first.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why bother
&lt;/h2&gt;

&lt;p&gt;Three reasons people do this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cost.&lt;/strong&gt; DeepSeek V4.1 Flash is $0.15 input / $0.60 output at DeepSeek's own off-peak list price (double that during weekday peak hours), and $0.066 / $0.264 through KoRouter at any hour. A two-hour Claude Code session that costs $10.97 on Claude Fable 5 costs about seven cents on V4.1 Flash (the numbers are below).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One balance.&lt;/strong&gt; The models are billed in USD on the same KoRouter balance as Claude and GPT — no separate vendor account, no second top-up.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Task fit.&lt;/strong&gt; Tests, refactors, docs, log triage and other high-volume, low-stakes work are where a cheap model with a 1M-token context earns its place. Keep the frontier model for the decisions that matter.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The models
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Input&lt;/th&gt;
&lt;th&gt;Output&lt;/th&gt;
&lt;th&gt;Cache read&lt;/th&gt;
&lt;th&gt;vs official&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;deepseek-v4.1-flash&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;$0.15 → $0.066&lt;/td&gt;
&lt;td&gt;$0.60 → $0.264&lt;/td&gt;
&lt;td&gt;$0.003 → $0.00132&lt;/td&gt;
&lt;td&gt;56%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;glm-5.3-flash&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;$0.15 → $0.0735&lt;/td&gt;
&lt;td&gt;$0.50 → $0.245&lt;/td&gt;
&lt;td&gt;$0.03 → $0.0147&lt;/td&gt;
&lt;td&gt;51%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;glm-5.3&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;$1.40 → $0.714&lt;/td&gt;
&lt;td&gt;$4.40 → $2.24&lt;/td&gt;
&lt;td&gt;$0.26 → $0.1326&lt;/td&gt;
&lt;td&gt;49%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;kimi-k3&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;$3.00 → $1.74&lt;/td&gt;
&lt;td&gt;$15.00 → $8.70&lt;/td&gt;
&lt;td&gt;$0.30 → $0.174&lt;/td&gt;
&lt;td&gt;42%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Notes that matter for agentic use:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DeepSeek V4.1 Flash and GLM-5.3 Flash take a 1M-token input context and support tool calling (&lt;code&gt;tools&lt;/code&gt;, &lt;code&gt;tool_choice&lt;/code&gt;), &lt;code&gt;response_format&lt;/code&gt; and reasoning parameters — everything Claude Code needs.&lt;/li&gt;
&lt;li&gt;None of the three vendors has a cache-write price: tokens that miss the cache are billed as ordinary input, at the input price. The session costs below count cache writes that way.&lt;/li&gt;
&lt;li&gt;The discount is one multiplier per model, applied to input, output and cache reads alike.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Claude Code
&lt;/h2&gt;

&lt;p&gt;Add the block to &lt;code&gt;~/.claude/settings.json&lt;/code&gt; (Windows: &lt;code&gt;%USERPROFILE%\.claude\settings.json&lt;/code&gt;). The same keys also work as environment variables.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"env"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"ANTHROPIC_BASE_URL"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://korouter.ai"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"ANTHROPIC_AUTH_TOKEN"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"sk-your-key"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"ANTHROPIC_MODEL"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"deepseek-v4.1-flash"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"CLAUDE_CODE_ATTRIBUTION_HEADER"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"0"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Verify:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude &lt;span class="nt"&gt;-p&lt;/span&gt; &lt;span class="s2"&gt;"Reply with OK"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Two things people get wrong: the key goes in &lt;code&gt;ANTHROPIC_AUTH_TOKEN&lt;/code&gt;, not &lt;code&gt;ANTHROPIC_API_KEY&lt;/code&gt;; and &lt;code&gt;ANTHROPIC_MODEL&lt;/code&gt; takes the bare id from the catalog — &lt;code&gt;deepseek-v4.1-flash&lt;/code&gt;, &lt;code&gt;glm-5.3-flash&lt;/code&gt;, &lt;code&gt;glm-5.3&lt;/code&gt;, &lt;code&gt;kimi-k3&lt;/code&gt; — with no vendor prefix.&lt;/p&gt;

&lt;p&gt;To switch models per project, keep a second settings file and launch with &lt;code&gt;claude --settings path/to/settings.json&lt;/code&gt;, or just change &lt;code&gt;ANTHROPIC_MODEL&lt;/code&gt; and restart.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cline, Aider, Continue
&lt;/h2&gt;

&lt;p&gt;These speak the OpenAI protocol, so they use the &lt;code&gt;/v1&lt;/code&gt; base URL and the same bare model ids.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Aider&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;OPENAI_API_BASE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"https://korouter.ai/v1"&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;OPENAI_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"sk-your-key"&lt;/span&gt;
aider &lt;span class="nt"&gt;--model&lt;/span&gt; openai/deepseek-v4.1-flash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Continue&lt;/strong&gt; (&lt;code&gt;~/.continue/config.yaml&lt;/code&gt;)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;models&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;KoRouter deepseek-v4.1-flash&lt;/span&gt;
    &lt;span class="na"&gt;provider&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;openai&lt;/span&gt;
    &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;deepseek-v4.1-flash&lt;/span&gt;
    &lt;span class="na"&gt;apiBase&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;https://korouter.ai/v1&lt;/span&gt;
    &lt;span class="na"&gt;apiKey&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;sk-your-key&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Cline&lt;/strong&gt; — pick the &lt;em&gt;OpenAI Compatible&lt;/em&gt; provider, set the base URL to &lt;code&gt;https://korouter.ai/v1&lt;/code&gt;, paste the key, and enter &lt;code&gt;deepseek-v4.1-flash&lt;/code&gt; as the model id.&lt;/p&gt;

&lt;p&gt;Codex uses the Responses API and is documented with GPT models; it's not covered here.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the same session costs
&lt;/h2&gt;

&lt;p&gt;The reference workload is the one from our &lt;a href="https://korouter.ai/docs/claude-code-cost?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=cc-chinese-models" rel="noopener noreferrer"&gt;cost guide&lt;/a&gt;: a focused two-hour Claude Code session on a mid-size repository — 5M cache-read tokens, 250K fresh input, 100K output, 350K cache writes. Priced at KoRouter rates:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Session cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;deepseek-v4.1-flash&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;$0.07&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;glm-5.3-flash&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;$0.14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;glm-5.3&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;$1.32&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;claude-sonnet-5&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;$2.19&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;kimi-k3&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;$2.78&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;claude-fable-5&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;$10.97&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A hundred and forty sessions of V4.1 Flash cost less than one session of Fable 5. That doesn't make V4.1 Flash the better model — it makes it the right model for the 80% of work where the cheaper answer is good enough, with the expensive one a config change away.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to expect
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Tool calling works; Claude Code's file edits, shell commands and searches go through as tool calls the same way they do on Claude.&lt;/li&gt;
&lt;li&gt;Output style differs between vendors. Give the model the same CLAUDE.md you'd give Claude and expect to tighten instructions for the first hour.&lt;/li&gt;
&lt;li&gt;Long sessions still benefit from &lt;code&gt;/clear&lt;/code&gt; between tasks. Cache reads are cheap on every model here, but a 1M context window doesn't mean you want to fill it.&lt;/li&gt;
&lt;li&gt;Availability history for each model is public on the &lt;a href="https://korouter.ai/status?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=cc-chinese-models" rel="noopener noreferrer"&gt;status page&lt;/a&gt; — check it before you move a workload.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Disclosure
&lt;/h2&gt;

&lt;p&gt;I run &lt;a href="https://korouter.ai/?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=cc-chinese-models" rel="noopener noreferrer"&gt;KoRouter&lt;/a&gt;, the gateway used in the config above. One key covers Claude, GPT, DeepSeek, GLM and Kimi; every model shows the vendor's official price next to ours, and one multiplier applies to all price components. Free to sign up, no monthly fee — pay as you go with credits. The config pattern works with any gateway that lists these models behind the Anthropic and OpenAI protocols; the prices are ours.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claudecode</category>
      <category>deepseek</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How some "discount" LLM gateways advertise 50% off and deliver 28%</title>
      <dc:creator>Brian Fu</dc:creator>
      <pubDate>Tue, 13 Oct 2026 13:00:00 +0000</pubDate>
      <link>https://dev.to/korouter/how-some-discount-llm-gateways-advertise-50-off-and-deliver-28-4bhf</link>
      <guid>https://dev.to/korouter/how-some-discount-llm-gateways-advertise-50-off-and-deliver-28-4bhf</guid>
      <description>&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a real session looks like
&lt;/h2&gt;

&lt;p&gt;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:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Tokens&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Cache reads&lt;/td&gt;
&lt;td&gt;5,000,000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fresh input&lt;/td&gt;
&lt;td&gt;250,000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Output&lt;/td&gt;
&lt;td&gt;100,000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cache writes&lt;/td&gt;
&lt;td&gt;350,000&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the money goes
&lt;/h2&gt;

&lt;p&gt;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 &lt;strong&gt;$16.88&lt;/strong&gt;:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Line&lt;/th&gt;
&lt;th&gt;Cost&lt;/th&gt;
&lt;th&gt;Share of bill&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Cache reads&lt;/td&gt;
&lt;td&gt;$5.00&lt;/td&gt;
&lt;td&gt;29.6%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cache writes&lt;/td&gt;
&lt;td&gt;$4.38&lt;/td&gt;
&lt;td&gt;25.9%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fresh input&lt;/td&gt;
&lt;td&gt;$2.50&lt;/td&gt;
&lt;td&gt;14.8%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Output&lt;/td&gt;
&lt;td&gt;$5.00&lt;/td&gt;
&lt;td&gt;29.6%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Cache reads are 88% of the tokens but only about 30% of the money — cache reads are cheap per token. Add cache writes and &lt;strong&gt;cache pricing is 56% of the bill&lt;/strong&gt;. Input and output together, the two numbers every badge is built on, are the remaining 44%.&lt;/p&gt;

&lt;p&gt;So a discount that only touches input and output is discounting less than half of what you pay.&lt;/p&gt;

&lt;h2&gt;
  
  
  Four ways a badge gets bigger than the bill
&lt;/h2&gt;

&lt;p&gt;None of these are lies. All of them are true statements about the wrong number.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The discount applies to input and output only.&lt;/strong&gt; 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%.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cache writes aren't mentioned at all.&lt;/strong&gt; 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.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;"Up to X% off" is measured on the cheapest line.&lt;/strong&gt; Output for one model, a promotional tier for another. The rest of the catalog sits well below the badge.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cache pricing isn't on the pricing page.&lt;/strong&gt; You find it on the invoice. If a provider's price table has two columns, ask where the other two are.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  The worked example
&lt;/h2&gt;

&lt;p&gt;Same session, three hypothetical providers:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Provider&lt;/th&gt;
&lt;th&gt;Input / output&lt;/th&gt;
&lt;th&gt;Cache read&lt;/th&gt;
&lt;th&gt;Cache write&lt;/th&gt;
&lt;th&gt;Session cost&lt;/th&gt;
&lt;th&gt;Real discount&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Official API&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;$16.88&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"50% off", cache read 20% off, cache write at list&lt;/td&gt;
&lt;td&gt;50%&lt;/td&gt;
&lt;td&gt;20%&lt;/td&gt;
&lt;td&gt;0%&lt;/td&gt;
&lt;td&gt;$12.13&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;28%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"50% off", both cache lines 20% off&lt;/td&gt;
&lt;td&gt;50%&lt;/td&gt;
&lt;td&gt;20%&lt;/td&gt;
&lt;td&gt;20%&lt;/td&gt;
&lt;td&gt;$11.25&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;33%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Flat 35% on all four prices&lt;/td&gt;
&lt;td&gt;35%&lt;/td&gt;
&lt;td&gt;35%&lt;/td&gt;
&lt;td&gt;35%&lt;/td&gt;
&lt;td&gt;$10.97&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;35%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to check any provider in three minutes
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Collect four unit prices&lt;/strong&gt; 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.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Write down your mix.&lt;/strong&gt; Claude Code prints it under &lt;code&gt;/usage&lt;/code&gt; (input, output, cache read, cache write); other tools log it too. If you have nothing, use the table above.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multiply and add.&lt;/strong&gt; Four multiplications, one sum, per provider. Compare totals, not badges.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Four questions worth asking before you top up anywhere:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is the discount the same on cache reads as on output?&lt;/li&gt;
&lt;li&gt;What do you charge for cache writes?&lt;/li&gt;
&lt;li&gt;Is the "up to" number the best case or the typical case?&lt;/li&gt;
&lt;li&gt;Can I see the official price next to yours?&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Disclosure
&lt;/h2&gt;

&lt;p&gt;I run &lt;a href="https://korouter.ai/?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=cache-pricing" rel="noopener noreferrer"&gt;KoRouter&lt;/a&gt;, 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 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.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>claudecode</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
