◉CLAUDE LABEN
●2.1.301 — vim の % モーション、VS Code パネルでの LaTeX 数式表示、使用量上限待ちのリトライ監視の上限が入りました(10/15)●2.1.299 — 200K トークン超で約54分放置した会話はアイドル圧縮。MCP の許可ルールは名指ししたサーバーだけに一致します●SONNET 4.5 — Claude API での提供終了は 11/30、残り45日。移行先は Sonnet 5.5●WINDOWS — 日本語の環境でだけフックが黙って壊れる報告があり、文字コードの確認が呼びかけられています●FAST MODE — Opus 5.5 の Fast mode がリサーチプレビューを終え、ベータヘッダーが不要になりました(10/15)●NEW — Cowork に渡したフォルダの先頭に、十行の約束ファイルを置いてみました●2.1.301 — vim の % モーション、VS Code パネルでの LaTeX 数式表示、使用量上限待ちのリトライ監視の上限が入りました(10/15)●2.1.299 — 200K トークン超で約54分放置した会話はアイドル圧縮。MCP の許可ルールは名指ししたサーバーだけに一致します●SONNET 4.5 — Claude API での提供終了は 11/30、残り45日。移行先は Sonnet 5.5●WINDOWS — 日本語の環境でだけフックが黙って壊れる報告があり、文字コードの確認が呼びかけられています●FAST MODE — Opus 5.5 の Fast mode がリサーチプレビューを終え、ベータヘッダーが不要になりました(10/15)●NEW — Cowork に渡したフォルダの先頭に、十行の約束ファイルを置いてみました
記事一覧/API & SDK
⬡ API & SDK/2026-06-22上級

Claude API のコスト計算が請求と合わないとき — usage の4トークンバケットを正しく会計する

プロンプトキャッシュを有効にすると、自前のコスト集計とコンソールの請求額が食い違うことがあります。input_tokensにキャッシュ分が含まれない仕様、単価の異なる4つのトークンバケットの重み付き会計、1コール1行で突合できる台帳の組み方までを運用上の注意とともにまとめました。

Claude API128コスト管理14プロンプトキャッシュ3運用23

✦ プレミアム記事

個人開発で複数アプリの日次ダイジェストを Claude で回しているのですが、ある月、自前のコスト集計とコンソールに表示された請求額が一割ほど食い違っていました。

私自身、ログを何度も追いました。リクエスト数もトークン数も間違っていません。それでも合わない。

原因はひとつでした。コストを input_tokens + output_tokens だけで計算していたのです。プロンプトキャッシュを有効にした瞬間、この素朴な式は静かに壊れます。

input_tokens にキャッシュ分は入っていない

最初の誤解はここでした。

usage オブジェクトは、入力トークンを役割ごとに分けて返します。キャッシュから読まれたトークンは input_tokens には含まれません。別のフィールドに振り分けられます。

# 実際の usage の形(キャッシュ有効時)
usage = {
    "input_tokens": 412,                  # キャッシュにヒットしなかった通常入力のみ
    "cache_creation_input_tokens": 18500, # キャッシュへの書き込み(高い)
    "cache_read_input_tokens": 17800,     # キャッシュからの読み込み(安い)
    "output_tokens": 1240,
}

つまり、長いシステムプロンプトをキャッシュしている場合、その本体は input_tokens には一切現れません。input_tokens だけを見て課金額を出すと、キャッシュに乗っている数万トークンを丸ごと見落とします。

私の場合、ダイジェストの共通プロンプトが約 18,000 トークン。これがコールドスタートのたびに cache_creation として書き込まれ、その後のコールで cache_read として読まれていました。素朴な式はこの両方を無視していたわけです。

4つのバケットには、それぞれ別の単価がかかる

会計を合わせる鍵は、4つのバケットが同じ単価ではないと理解することです。

キャッシュの読み書きは、基本入力単価に対する倍率で課金されます。倍率は安定していて、価格改定があっても比率自体はめったに変わりません。

バケットusage フィールド基本入力単価に対する倍率
通常入力input_tokens1.0×
キャッシュ書き込み(5分TTL)cache_creation_input_tokens1.25×
キャッシュ書き込み(1時間TTL)cache_creation_input_tokens2.0×
キャッシュ読み込みcache_read_input_tokens0.1×
出力output_tokens出力単価(別系統)

読み込みは基本入力の十分の一。書き込みは 1.25 倍から 2 倍。ここを一律で扱うと、キャッシュが効いているコールほど大きくずれます。読みを高く見積もれば過大計上、書きを基本単価で見積もれば過小計上になります。

✦

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
✦usage の input_tokens にはキャッシュ分が含まれない、という見落としやすい仕様の整理
✦cache_creation(書き込み)と cache_read(読み込み)を正しい倍率で会計する Python 実装
✦1コール=1台帳行として記録し、月次でコンソールの請求と突合する手順
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

⬡ API & SDK2026-08-01
会話の途中でツールを差し替える — プロンプトキャッシュを守るツールレジストリの設計
ターン間でツールを追加・削除できるようになった一方、ツール定義はキャッシュプレフィックスの最前列にあります。12種類の変更を指紋で実測し、安定コアと揮発テールに分けるレジストリ設計とガード実装をまとめました。
⬡ API & SDK2026-05-02
Claude API の月額予算を破綻させない設計 — 個人開発者のための実践コスト管理
個人開発で Claude API を組み込んだとき、最初にぶつかるのは月末の請求書です。月額予算を守り抜くための見積もり・モニタリング・上限設定・リトライ設計を、自分のアプリで躓いた箇所と一緒にまとめました。
⬡ API & SDK2026-10-16
Make から Claude API に 40 行流すと 14 行目で止まる — 429 を待ち時間の計算で避ける
表計算の行を1件ずつ Claude API に渡すノーコード自動化が、途中で 429 になる理由と直し方です。模擬バケットで7通りの間隔を比べ、Sleep の秒数を 60÷上限−応答時間 で決める式と、失敗行を落とさない設定を示します。