本文へ移動

Claude Codeのトークンログは使用量を2.5x過大計上します。正しい数え方はこれです

更新日 November 3, 2026 · 初回公開 November 3, 2026

Claude Codeは、返信がストリーミングされる間に、同じアシスタントメッセージをログに何度も書き込みます。10月のusage行をすべて合計すると、213億トークン、定価換算の価値は$12,438になりました。各メッセージを1回だけ数えると、84億トークンで$4,323でした。生の合計は、トークンで約2.5倍、ドルで約2.9倍の過大計上になります。

2.5x
全行を合計した場合のトークン過大計上
175,884
ユニークなメッセージ70,592件に対するusage行数
60%
先行メッセージの繰り返しだった行の割合
14%
先頭行だけを残すと漏れる出力トークン

2026年11月3日公開 · Claude Codeのトランスクリプト、2026年10月1日〜11月3日(UTC、11月1日〜3日は途中まで)

なぜ1つのメッセージが何度も現れるのですか?

Claude Codeのトランスクリプト(~/.claude/projects/.../*.jsonl)の各アシスタントエントリには、入力、出力、キャッシュ書き込み、キャッシュ読み取りのトークン数を持つusageオブジェクトが含まれます。私たちのログでは、同じmessage.idとrequestIdの組が複数の行に現れ、後の行ほど出力数が大きくなっていました。原因をすべて追跡したわけではありません。このパターンは、返信がストリーミング中に書き込まれていることと整合します。原因が何であれ、全行を合計すると同じリクエストを複数回数えることになります。対象期間の175,884行のusage行のうち、異なるメッセージは70,592件だけでした。

生の合計はどれくらい間違っていますか?

Claude Codeの1か月の使用量を数える3つの方法全ログ行を合計すると213億トークンで$12,438、各メッセージを1回だけ数えると84億で$4,323になります。全行を合計213億トークン各メッセージの先頭行84億1件ずつ(最大値)84億全行を合計定価換算 $12,438各メッセージの先頭行$4,2971件ずつ(最大値)$4,323トークン(入力、出力、キャッシュ書き込み、キャッシュ読み取り)定価換算の価値
同じ10月のトランスクリプトを3通りに数えたもの。価値はAnthropicの料金ページにあるAPI定価で、キャッシュ書き込みはログに記録された5分と1時間の内訳で評価しています。定価換算の価値であり、請求額ではありません。

生の合計は、トークンで2.5倍、ドルで2.9倍高くなっています。ドルのほうがトークンより膨らむのは、繰り返された行が、より高価なトークンの種類に偏っていたことを意味します。これ以上の内訳は調べていません。

先頭行だけを残すのも間違いな理由

分かりやすい対策は、各メッセージの先頭行を残すことです。しかし先頭行は部分的なスナップショットなので、出力を過少に数えてしまいます。私たちは、同じメッセージIDとリクエストIDを持つすべての行について、各フィールドの最大値を残しています。

先頭のログ行だけを残した場合に漏れる出力トークン(モデル別)同じメッセージのいずれかの行にある最大値と比べて、先頭のログ行が取りこぼす出力トークンの割合。Claude Haiku 4.5 (167件)99.6%Claude Haiku 5.5 (6,300件)88.2%Claude Sonnet 5.5 (25,440件)15.7%Claude Opus 5.5 (38,379件)0.5%Claude Fable 5.1 (223件)0.0%
各メッセージの先頭行だけを残した場合に漏れる出力トークン(モデル別、メッセージ100件超のモデル)。先頭行の方法は、全体で出力トークンの14%(3,310万に対して3,850万)を取りこぼしました。

差はモデルによって異なります。Claude Haiku 4.5は出力トークンのほぼ100%を失い、Claude Fable 5.1は0.0%でした。ドルへの影響は、ここでは小さいものでした($4,297に対して$4,323、約0.6%)。私たちのトークン量に占める出力の割合が小さかったからです。書き込みが多く読み取りが少ないワークロードなら、影響はもっと大きくなります。

エージェントのログが誤解を招く、ほかの3つのパターン

数え方

  1. 2026年10月1日から11月3日(UTC)の間で、usageオブジェクトを持つアシスタントエントリを読みます。合成のプレースホルダーメッセージは除外します。
  2. 各エントリをmessage.idとrequestIdの組でキー化します。どちらもなければ、ファイルとエントリIDでキー化します。
  3. 各キーについて、その行全体にわたるすべてのusageフィールドの最大値を残します。同じファイルに記録されるサブエージェント(サイドチェーン)のメッセージも含めます。
  4. Anthropicの定価でトークンを評価します(2026年11月3日に確認)。たとえばOpus 5.5は100万トークンあたり入力$4、キャッシュ読み取り$0.20、出力$20、Sonnet 5.5は$2、$0.10、$10です。キャッシュ書き込みは、ログに記録された5分と1時間の内訳を使います。Haiku 5.5は、100,000トークンを超えるプロンプトにはより高い料金を使い、入力側のトークンからメッセージごとに推定しています。

この数字から分からないこと

どう活かすか

  1. 合計する前に重複を排除する。 ログ行を足し合わせているダッシュボードは、おそらく過大計上しています。キーが何かを確認してください。
  2. メッセージごとに、先頭行ではなく最大値を使う。
  3. 月に一度、プロバイダーまたはゲートウェイの請求と照合する。 台帳に必要なものは、LLMトークン追跡とAIオブザーバビリティを参照してください。
  4. ゼロを信用しない。 価格が無料の場合でも、トークンは追跡してください。

この結果が使われる使用量のビューについては、10月のClaude Code: トークン、キャッシュ、定価換算の価値と、Claude Codeのトークン使用量を確認して減らす方法を参照してください。

よくある質問

Claude Codeのトークンを正しく数えるにはどうすればよいですか?

トランスクリプトファイルのアシスタントエントリを読み、メッセージIDとリクエストIDの組でキー化し、そのキーを共有する行にわたって各usageフィールドの最大値を残します。全行を合計すると、10月の使用量は2.5倍高く計上されました。

Claude Codeのログで同じメッセージが何度も表示されるのはなぜですか?

私たちのトランスクリプトでは、同じメッセージIDとリクエストIDが複数の行に現れ(ユニークなメッセージ70,592件に対して175,884行)、後の行ほど出力数が大きくなっていました。このパターンは、返信がストリーミング中にログへ記録されていることと整合しますが、原因はAnthropicに確認していません。

メッセージごとに先頭行を残すだけで十分ですか?

先頭行は部分的なスナップショットなので、出力トークンを過少に数えます。私たちは全体で出力トークンの14%、あるモデルでは最大100%を取りこぼしましたが、私たちの構成ではドルへの影響は約0.6%にとどまりました。

定価換算の価値は、実際に支払った額と同じですか?

いいえ。同じトークンをAnthropicが公表しているAPI価格で評価したコストです。サブスクリプションやゲートウェイの割引によって実際の支払額は変わり、ログにはドル額が含まれていません。

関連記事


この方法を自社の環境にも適用しますか? プロバイダーの請求書、ゲートウェイログ、主要なワークフローをお持ちください。コスト要因と削減策を整理します。 無料監査を予約 →

finopsllm.com に戻る