0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Max 5x は本当に元が取れているのか? jsonl 実測データで検証する

0
Last updated at Posted at 2026-05-28

この記事でわかること: ~/.claude/projects/ 配下の jsonl ファイル 139 個を解析し、Claude Max 5x(月額 $100)の利用実態を API 換算コストで定量化した。16日間の実測値は API 換算 $2,894 相当(月換算 $5,425)で、Max 料金の約 55 倍の価値に相当する。計算方法・モデル別内訳・セッション設計の工夫まで、数字ごとに根拠を示す。


Reddit の r/ClaudeAI で「Max 5x 使用データ:月 $159 vs API 換算 $6.6k」という投稿を見かけた(現時点では元スレッドを参照できないため、数値はメール通知の冒頭から確認したものだ)。~/.claude/projects/*.jsonl を解析して実際のトークン使用量を計算し、API 換算コストと比較した内容だった。

「同じことを自分でもやってみよう」と思い立ち、手元の jsonl ファイルを解析したのがこの記事の出発点だ。計算自体はシンプルだが、途中で Claude が Opus 4.7 の単価を間違えるというミスがあり、その修正を経て正しい数字にたどり着いた。その過程も含めて記録する。

jsonl ファイルから何がわかるか

Claude Code は各セッションの会話履歴を以下のパスに保存する。

~/.claude/projects/<project-id>/<session-uuid>.jsonl

jsonl ファイルのアシスタント側レスポンスには usage フィールドが含まれている。

{
  "type": "assistant",
  "message": {
    "model": "claude-opus-4-7",
    "usage": {
      "input_tokens": 6,
      "cache_creation_input_tokens": 18145,
      "cache_read_input_tokens": 52341,
      "output_tokens": 978
    }
  }
}

4種類のトークンカウントがある。

フィールド 意味
input_tokens 通常の入力トークン
cache_creation_input_tokens キャッシュを新規作成したトークン
cache_read_input_tokens キャッシュから読み込んだトークン
output_tokens 出力トークン

各種別に公式単価を掛けて合計すれば、「API で同じだけ使ったらいくらか」が計算できる。不確かな推定は入らない。

計算式と API 単価――最初の計算は間違っていた

「計算方法が怪しいのでは?」という疑問に先に答えておく。実はこの計算、最初から正しくはなかった。

最初に使った単価はこれだ。

モデル 入力 キャッシュ作成 キャッシュ読み込み 出力
Claude Opus 4.7 $15/MTok $18.75/MTok $1.50/MTok $75/MTok
Claude Sonnet 4.6 $3/MTok $3.75/MTok $0.30/MTok $15/MTok

Opus 4.7 と Sonnet 4.6 は Claude の知識カットオフ(2025年8月)以降にリリースされたモデルのため、Claude は実際の単価を把握していなかった。そのため旧 Opus 4 の単価(input $15/MTok)をそのまま流用した。この状態で計算した結果が $7,159(月換算 $13,423、Max の約134倍) だった。

ユーザーから「API 単価が高すぎる」と指摘を受け、Anthropic の pricing ページを確認してもらったところ、実際の単価は以下だった。

モデル 入力 キャッシュ作成 キャッシュ読み込み 出力
Claude Opus 4.7 $5/MTok $6.25/MTok $0.50/MTok $25/MTok
Claude Sonnet 4.6 $3/MTok $3.75/MTok $0.30/MTok $15/MTok

Opus 4.7 の入力単価が $15 → $5、出力が $75 → $25 と、3分の1だった。Sonnet 4.6 は元から正しかった。正しい単価で再計算した結果が次の数字だ。

MTok は 100万トークン単位。各 API 呼び出しのコスト(Opus 4.7 の場合):

コスト = (input × $5 + cache_creation × $6.25 + cache_read × $0.50 + output × $25) / 1,000,000

実測結果: 16日間で $2,894

~/.claude/projects/<プロジェクト>/ 配下の 139 個のセッションファイルを解析した結果は次の通りだ。

計測期間: 2026年5月7日〜5月22日(16日間)
API 換算総コスト: $2,894
月換算: 約 $5,425(16日 → 30日換算)
Max 月額 $100 に対する倍率: 約 55倍

最初に出した $7,159(月換算 約134倍)は Opus の単価を3倍高く設定していたための誤りだ。正しい数字は $2,894(月換算 約55倍)。それでも十分に元は取れている。

「自分はそんなに使っていないから関係ない」と感じる人もいるだろう。この倍率が出たのは、私の用途がコード生成・記事執筆・エージェント開発を日常的に組み合わせているからだ。Opus 4.7 を長いコンテキストで呼び出す機会が多く、1セッションあたりのトークン消費が重い。

Sonnet を中心に使い、1日数セッション程度なら API 換算コストは $500〜$1,000/月程度に収まるはずだ。それでも Max $100 の 5〜10倍の価値になる。

なぜ Opus 4.7 がコストの 74% を占めるのか

全コストの 74% を Opus 4.7 が占めていた。

「Opus を使わなければ安くなるのでは?」という疑問は正しい。ただ、Opus が多く使われるには理由がある。

1回あたりの平均出力トークン数を比較すると、Opus が 978 tok、Sonnet が 349 tok と 2.4倍の差があった。呼び出し回数は Sonnet の方が多いのに、コストは Opus が 74% を占めるのはこのためだ。長い推論や複雑な設計タスクでは Opus の出力が自然に膨らむ。

出力規模の分布を見るとさらにはっきりする。

出力規模 Opus Sonnet
〜200 tok(短い) 25% 66%
201〜1k tok(中程度) 43% 27%
1k〜5k tok(長い) 30% 7%

Sonnet は 2/3 が 200 tok 以下に収まるが、Opus は 1/4 しかない。日本語で 200 tok というと大体 300〜400文字程度の返答だ。「はい/いいえ+一言」「コード数行」「簡単な確認」がこの範囲に入る。

私の使い分けの指針はシンプルだ。

  • Opus を使う場面: 新規設計・アーキテクチャ検討・複雑なコードレビュー・記事の構成立案
  • Sonnet を使う場面: 定型コミット・ファイル編集・簡単な質問・繰り返しタスク

コスト意識を保つために、Opus の使用前には確認を入れている。「この判断には Opus の推論が本当に必要か」をその都度問う習慣がコスト効率を安定させる。

Opus コストの 52% はキャッシュ読み込み

ここが意外な数字だった。Opus の API 換算コストの 52% が cache_read_input_tokens によるものだ。

キャッシュ読み込みの単価は入力の 1/10 だが、長いセッションではキャッシュ読み込み量が急増する。1万トークンのコンテキストを 20 回の API 呼び出しで参照し続けると、キャッシュ読み込みだけで 20 万トークンになる計算だ。

実際に高コストセッションを調べると、書籍や記事の執筆系が上位に固まっていた。

コスト セッション内容
$252 Zenn Book Vol.3 構成見直し
$127 引き継ぎを受けての作業継続
$112 クロスポスト作業
$98 記事の構成検討
$69 Zenn Book Vol.2 章番号修正

Vol.3 構成見直しの $252 は1セッションで全体の9%を占める。1セッションで長時間作業したことで、コンテキストを毎回読み込むキャッシュ読み込みコストが積み上がった結果だ。

セッション設計との関係でいうと、「1タスク完結で短く保つ」ほどキャッシュ読み込みの累積を抑えられる。長大なコンテキストを抱えたまま複数タスクをこなす運用は、想定以上にコストが膨らむ。

自分はどちらのタイプか確認する方法: jsonl を解析したとき、総コストに占める cache_read の割合が 40% を超えているなら「長セッション・Opus 多用型」だ。Sonnet 中心で短いセッションが多い人は cache_read 比率が 20% 前後に収まるはずで、全体コストも相対的に小さくなる。Opus の呼び出し回数が少ないのに API 換算コストが高い場合は、この cache_read の積み上がりを疑ってみるとよい。

$100/月でいくらまで使えるか

「$100 でいくら使えるか」という試算の出し方を示す。

Sonnet 4.6 中心・1セッションあたり平均 50 回の API 呼び出し・1回あたり 350 出力トークン・キャッシュ読み込みなしで計算すると(入力 1,000 tok / 呼び出しと仮定):

1呼び出しあたりコスト ≒ (1000 × $3 + 350 × $15) / 1,000,000
                     = ($3,000 + $5,250) / 1,000,000
                     ≒ $0.00825

1セッション(50回)≒ $0.41。$100 では約 240 セッション分に相当する。1日8セッション使っても30日間持つ計算だ。

ただし Opus を混ぜると状況は変わる。Opus の出力トークン単価は Sonnet の 1.67倍($25 vs $15)で、長いコンテキストをキャッシュから読み込む機会が増えるほどコストは跳ね上がる。

「$100/月でいくらまで使える」という問いへの正直な答えは「Sonnet 中心なら相当余裕があるが、Opus を日常的に使い始めると API 換算コストが急速に膨らむ」だ。Max の使用量上限が実際のコスト管理としても機能している。

本セッションのコスト内訳

参考として、この分析を行ったセッション自体のコストも記録しておく。

  • モデル: Sonnet 100%
  • API 呼び出し回数: 97回
  • API 換算コスト: $3.72(約577円)

メール確認とデータ分析は Opus 不要だった。日常的なタスク処理を Sonnet で完結させると、1セッションあたり数百円の水準に収まる。これが Max $100 の範囲内で何十セッションも動かせることの実感だ。

Claude Max のコスト効率を自分で検証する

Max の「元が取れるか」問題に対する私の現時点の結論は次の通りだ。

  • コード生成・設計・執筆を日常的に組み合わせる用途: $100 は割安。API 換算で 10〜55倍の価値
  • Sonnet 中心・軽めの用途: API 換算でも 5〜10倍程度。Max の制限を使い切らない可能性もある
  • 使い切るかどうか不安な人: まず1ヶ月試して、jsonl 解析で実態を把握してから継続判断するのが確実

「元を取るためにOpusを控えよう」「キャッシュを使いすぎないようにしよう」という発想は逆だ。Max は定額なので、API 換算コストが大きいほど $100 の価値を最大化できている。Opus を使わずに月を終えるのが一番もったいない。

意識すべきは「コストの節約」ではなく「レート制限のマネジメント」だ。

  • Opus は必要な場面に集中させる: 複雑な設計・レビュー・執筆に使い、Sonnet で十分なタスクは Sonnet で。節約のためではなく、レート制限を頻繁に踏まないための使い分けだ
  • キャッシュ読み込みは積極的に活用する: cache_read の単価は入力の 1/10。長いコンテキストを継続させてキャッシュに乗せる運用は効率的だ
  • 不要なセッション分割を避ける: 新規セッションを開くたびに cache_creation コストが発生する。コンテキストが生きている間は同じセッションを続ける方が合理的だ

なお、計算の過程で Claude が Opus 4.7 の単価を間違えた点は正直に書いておきたい。知識カットオフ後のモデル価格を「たぶんこの程度だろう」と推測で計算したのが原因だ。私が「高すぎる」と気づかなければ、$7,159 という誤った数字のまま記事にしていた。計算ツールを使う際は、単価の前提を自分で確認する習慣を持つことをすすめる。

jsonl の解析自体は Python で数十行あれば書ける。モデルごとのトークン集計とコスト計算を組めば、自分の利用パターンが可視化される。「感覚で高い・安い」と判断するより、数字で見た方が判断材料として確かだ。

以下は最小構成のスケルトンだ。単価を変数で持たせているので、モデルが増えたときも差し替えやすい。

import json
import glob
import os

# モデルごとの単価($/MTok)。公式ページで最新値に差し替えること
PRICES = {
    "claude-opus-4-7":   {"input": 5.0, "cache_creation": 6.25, "cache_read": 0.50, "output": 25.0},
    "claude-sonnet-4-6": {"input": 3.0, "cache_creation": 3.75, "cache_read": 0.30, "output": 15.0},
}

totals = {}  # モデル名 → {"tokens": {...}, "cost": 0.0}

for path in glob.glob(os.path.expanduser("~/.claude/projects/**/*.jsonl"), recursive=True):
    for line in open(path):
        obj = json.loads(line)
        if obj.get("type") != "assistant":
            continue
        msg = obj.get("message", {})
        model = msg.get("model", "unknown")
        usage = msg.get("usage", {})
        if model not in PRICES:
            continue  # 未定義モデルはスキップ(必要なら PRICES に追加)
        p = PRICES[model]
        cost = (
            usage.get("input_tokens", 0)               * p["input"]
            + usage.get("cache_creation_input_tokens", 0) * p["cache_creation"]
            + usage.get("cache_read_input_tokens", 0)     * p["cache_read"]
            + usage.get("output_tokens", 0)               * p["output"]
        ) / 1_000_000
        totals.setdefault(model, {"cost": 0.0})
        totals[model]["cost"] += cost

for model, data in sorted(totals.items()):
    print(f"{model}: ${data['cost']:.2f}")
print(f"Total: ${sum(d['cost'] for d in totals.values()):.2f}")

Claude の料金については 公式の料金ページ で最新の単価を確認してほしい。記事の数値は2026年5月時点のものだ。


Amazon でも Anthropic の書籍・AI活用本が増えている。コスト試算や LLM 活用を体系的に学びたい場合は参考にしてほしい。

Claude・生成AI関連書籍(Amazon)

この記事は はてなブログ からのクロスポストです。


はてなブログ版: https://saitoko.hatenablog.com/entry/2026/05/22/000000

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?