Claudeでトンキロ法のCO2排出量を月次集計する手順 — 配送実績CSVから検算まで
配送実績CSVに排出原単位を掛けて、車種別のCO2排出量を月次で出す手順です。計算はコード実行ツールに任せ、原単位の出典と按分は人が確かめる分担を示します。
輸送のCO2排出量は、配送実績のCSVに車種別の排出原単位を掛ければ月次で出せます。掛け算と集計はClaudeのコード実行ツールに任せられます。任せられないのは、原単位の出典の選び方と、混載便の按分です。ここは人が確かめる作業として残ります。
荷主の環境担当や、運送会社の運行管理者が、表計算の手作業をやめて月次の算定を回すための手順です。式の考え方、CSVの列設計、API経由の実行例、手計算での検算、人が見るチェック項目の順に進めます。
トンキロ法の式と、Claudeに任せる範囲
トンキロ法は、貨物の重さと運んだ距離から排出量を出す方法です。経済産業省と国土交通省の共同ガイドラインは、物流のCO2排出量の算定方法として、燃料法、燃費法、改良トンキロ法、地域間マトリックス法、従来トンキロ法、料金法の6つを紹介しています。
このうち従来トンキロ法の式は、次のとおりです。
CO2排出量(t-CO2) = 輸送トンキロ × CO2排出原単位(g-CO2/トンキロ) × 1/1,000,000
輸送トンキロ = 輸送重量(t) × 輸送距離(km)ガイドラインのパンフレットでは、必要なデータとして輸送機関(トラック・鉄道・船舶・航空機)、車両の業態(営業用・自家用)、車種(軽貨物・小型貨物・普通貨物)の区分ごとの輸送重量と輸送距離が挙げられています。計算そのものは単純な掛け算と合計です。
Claudeが得意な部分と、人が持つ部分は次のように分かれます。
| 作業 | Claudeに任せる | 人が持つ |
|---|---|---|
| 重量(kg)をトンに換算し、距離を掛ける | Claudeに任せる○ | 人が持つ換算の前提(kgかtか)の確認 |
| 車種区分ごとに原単位を結合して掛ける | Claudeに任せる○ | 人が持つ原単位表の出典と年度の選択 |
| 月別・車種別・拠点別に合計する | Claudeに任せる○ | 人が持つ集計単位の決定 |
| 混載便の荷主別按分 | Claudeに任せる計算の下書きまで | 人が持つ按分の指標の決定と物流事業者との合意 |
| 外部開示の数字としての採否 | Claudeに任せるなし | 人が持つ算定範囲と手法の最終判断 |
表の左の列は、機械的にやり直せる作業です。右の列は、同じCSVでも担当者によって答えが変わる判断なので、人が決めて文書に残します。
3つの算定方法のどれを使うか
トンキロ法には従来型と改良型があり、データが取れるなら燃料法のほうが精度は上がります。パンフレットの記述に沿って整理すると、次のとおりです。
| 方法 | 必要なデータ | 向くケース |
|---|---|---|
| 燃料法 | 必要なデータ燃料使用量 | 向くケース自社便・貸切便・共同輸配送など |
| 改良トンキロ法 | 必要なデータ輸送重量・距離・積載率 | 向くケース燃料や燃費が取れない場合。積載率向上の効果を見たいとき。トラックのみ |
| 従来トンキロ法 | 必要なデータ車種別・モード別の輸送重量と距離 | 向くケース簡易に算定したいとき。物流事業者への委託分。トラック以外のモード |
配送実績に積載量・距離・車種の列があっても、積載率が記録されていなければ改良トンキロ法には進めません。この記事の例は、手元にあるデータで始めやすい従来トンキロ法を使います。積載率が取れる運用に変えたら、同じCSVの形から改良トンキロ法へ広げられます。
配送実績CSVの列を決める
Claudeに渡す前に、列と単位を決めます。説明用に、次の6行のCSVを使います。実際の配送記録の一部ではなく、手順を見せるための例です。
日付,便番号,車種区分,重量_kg,距離_km
2026-09-03,T01,営業用普通車,2500,120
2026-09-05,T02,営業用普通車,4000,80
2026-09-10,T03,営業用小型車,800,45
2026-09-12,T04,営業用普通車,6000,200
2026-09-18,T05,営業用小型車,500,30
2026-09-24,T06,営業用普通車,3000,150列の決め方で、後から数字がぶれやすい箇所が3つあります。
- 車種区分は、貨物の重さではなく車両の区分で付けます。パンフレットの注では、普通車は積載量3トン以上のものと書かれています。2.5tの荷を運んだ便でも、使った車両が普通車なら「営業用普通車」です。車両台帳から引くと間違いが減ります
- 距離は、実際に走った距離か、発着地点間の計画距離のどちらかに揃えます。パンフレットは、どちらも把握方法の候補に挙げています。月の途中で定義を変えると、前月との比較が成り立ちません
- 重量はkgで記録されていることが多いので、列名に単位を入れます。トンへの換算を忘れると、結果が1,000倍ずれます
原単位は別のCSVにして渡す
原単位は、実績CSVとは別のファイルにします。コード実行ツールのコンテナはインターネットに接続できないため、Claudeに「最新の原単位を調べて掛けて」と頼んでも、サンドボックスの中からは取りにいけません。人が選んだ表を、入力として渡します。
車種区分,原単位_g_CO2_per_tkm,出典,年度
営業用普通車,173,物流分野のCO2排出量に関する算定方法ガイドライン,自動車は平成14年度
営業用小型車,808,物流分野のCO2排出量に関する算定方法ガイドライン,自動車は平成14年度この2行の値は、パンフレットの従来トンキロ法CO2排出原単位の表(営業用普通車173、営業用小型車808、単位g-CO2/トンキロ)から写したものです。パンフレットの注には、自動車は平成14年度の値と書かれています。つまり、この数字は手順を示すための例であり、そのまま自社の開示に使う値ではありません。実際には、ガイドラインの現行版や、算定制度が指定する原単位表から値を選び、出典と年度の列を埋めます。
ステップ1: コード実行ツールにCSVを渡して集計させる
Claude.aiのチャットにファイルを添付して頼む方法もあります。月次で繰り返す場合や、基幹システムの出力から自動で回したい場合は、APIでコード実行ツールを呼びます。同じ集計をチャットで行うときの依頼の書き方は、荷待ち時間の集計をClaudeで進める手順やClaude CSV分析の使い方で扱っています。
APIでは、Files APIで2つのCSVをアップロードし、container_uploadブロックで会話に参照させます。コード実行ツールは、CSV、Excel、JSONなどのファイルを扱えます。Pythonの環境にはpandas、numpy、openpyxlなどが入っています。
import anthropic
client = anthropic.Anthropic()
jisseki = client.beta.files.upload(file=open("jisseki_202609.csv", "rb"))
gentan = client.beta.files.upload(file=open("gentan.csv", "rb"))
response = client.messages.create(
model="claude-opus-5-5",
max_tokens=4096,
messages=[{
"role": "user",
"content": [
{"type": "text", "text": PROMPT},
{"type": "container_upload", "file_id": jisseki.id},
{"type": "container_upload", "file_id": gentan.id},
],
}],
tools=[{"type": "code_execution_20250825", "name": "code_execution"}],
)client.beta.files.uploadの呼び方はSDKの版で変わることがあります。手元の版のFiles APIの説明に合わせて書き換えてください。PROMPTには、次のような依頼文を入れます。
添付の jisseki_202609.csv は9月の配送実績、gentan.csv は排出原単位表です。
従来トンキロ法で、CO2排出量を計算してください。
- 輸送トンキロ = 重量_kg ÷ 1000 × 距離_km
- CO2排出量(g) = 輸送トンキロ × 原単位(g-CO2/トンキロ)
- 車種区分で原単位表と結合し、結合できなかった行があれば一覧で示す
出力は次の3点にしてください。
1. 明細: 元の列 + 輸送トンキロ + CO2排出量(g)
2. 車種区分別の輸送トンキロ・排出量(t-CO2)・便数
3. 全体の合計(t-CO2)
原単位は添付の表だけを使い、他の数値を持ち込まないでください。
計算に使ったコードと、結合前後の行数も示してください。最後の2行が運用上の要点です。「添付の表だけを使う」と書くと、Claudeが記憶にある係数で補うのを防げます。コードと行数を出させるのは、次のステップで検算するためです。
生成されたExcelを受け取るときの注意
集計結果をExcelで受け取る場合、Claudeがファイルを作っても、コード実行ツールが返すのは$OUTPUT_DIRの直下に置かれたファイルだけです。それ以外の場所に書いたファイルは、コンテナには残っても応答には含まれません。依頼文に「ファイルは$OUTPUT_DIRにコピーして、lsで確認して」と添えます。詳しくはコード実行ツールでファイルが消える理由にあります。
ステップ2: 手計算で検算する
Claudeの出力は、そのまま信用せず、先に手元で答えの目安を作っておきます。上の6行なら、暗算に近い規模で確かめられます。
| 便 | 車種区分 | 輸送トンキロ | 排出量(g-CO2) |
|---|---|---|---|
| T01 | 車種区分営業用普通車 | 輸送トンキロ2.5 × 120 = 300 | 排出量(g-CO2)300 × 173 = 51,900 |
| T02 | 車種区分営業用普通車 | 輸送トンキロ4.0 × 80 = 320 | 排出量(g-CO2)320 × 173 = 55,360 |
| T03 | 車種区分営業用小型車 | 輸送トンキロ0.8 × 45 = 36 | 排出量(g-CO2)36 × 808 = 29,088 |
| T04 | 車種区分営業用普通車 | 輸送トンキロ6.0 × 200 = 1,200 | 排出量(g-CO2)1,200 × 173 = 207,600 |
| T05 | 車種区分営業用小型車 | 輸送トンキロ0.5 × 30 = 15 | 排出量(g-CO2)15 × 808 = 12,120 |
| T06 | 車種区分営業用普通車 | 輸送トンキロ3.0 × 150 = 450 | 排出量(g-CO2)450 × 173 = 77,850 |
輸送トンキロの合計は2,321、排出量の合計は433,918gで、約0.434 t-CO2です。車種区分別では、普通車が2,270トンキロで392,710g、小型車が51トンキロで41,208gになります。
Claudeの出力がこの数字と一致するか、次の順に見ます。
- 結合前後の行数が同じか(6行が6行のままか)。減っていれば、車種区分の表記ゆれで結合に失敗した行があります
- 明細の1行を選び、手で掛け算して一致するか
- 合計が、車種区分別の小計の和と一致するか
- 単位が、g、kg、tのどれで出ているか。表の見出しと数字の桁が合っているか
実データでは、全件の手計算はできません。件数の多い月は、大きい便を数行と、小さい便を数行抜き出して、同じ手順で確かめます。
落とし穴
車種区分の表記ゆれで、排出量が静かに欠ける
「営業用普通車」と「営業用 普通車」のように表記が割れると、原単位が結合できず、その行の排出量が空になります。合計は空を飛ばして足されるので、エラーが出ないまま数字だけが小さくなります。結合できなかった行を一覧で出す指示と、行数の確認が必要です。
人が確かめる項目
計算が合っていても、算定として正しいとは限りません。次の項目は、Claudeの出力ではなく、人が文書で確認します。
原単位の出典と年度
どの表の、どの年度の値を使ったかは、列として残しておきます。パンフレットの表は、自動車が平成14年度、鉄道・内航船舶・国内航空が平成15年度の値でした。年度の違う値が、同じ表に混ざることもあります。開示や取引先への報告に使うなら、提出先が指定する原単位表に合わせます。
算定範囲とサプライチェーン排出量での位置づけ
環境省のサプライチェーン排出量の案内では、排出量はScope1、Scope2、Scope3の合計で、Scope3は15のカテゴリに分類されると説明されています。算定の流れは、方法の理解、目標の設定、対象範囲の確認、カテゴリへの分類、各カテゴリの算定の順です。輸送の排出量を出す前に、自社のどの物流が算定対象に入るのかを、この順序の中で決めます。委託した輸送と自社で走らせた輸送では、分類が分かれる場合があります。
混載便の按分
燃料法や燃費法では、複数の荷主が同じ車両に混載しているとき、荷主間で排出量を按分する必要があります。パンフレットによると、按分は荷主単独では行えず、荷主から提供された輸送トンキロのデータをもとに物流事業者が行います。当面の標準手法は輸送トンキロによる按分です。荷主は、按分された結果の燃料使用量またはCO2排出量を物流事業者から受け取ります。
Claudeに按分の計算を任せるなら、指標(トンキロ、重量、料金のどれか)を人が先に決めて、依頼文に書きます。指標が違えば、同じ荷主でも数字が変わります。
積載率が取れるなら、改良トンキロ法へ
改良トンキロ法の式は、輸送トンキロ × 燃料使用原単位(リットル/トンキロ) × 単位発熱量 × 排出係数 × 44/12です。燃料使用原単位は、燃料の種類、最大積載量、積載率によって表から引きます。積載率が10%未満の場合は、10%の値を使うとパンフレットに書かれています。積載率を上げる取り組みの効果を数字で見たいときは、従来トンキロ法では反映されません。
月次で回す運用
月次に回すときの手順は、次のとおりです。
月次の算定を回す流れ
- 1
実績CSVを書き出す
基幹システムから、前月分の日付・便番号・車種区分・重量・距離を書き出します。列名と単位は毎月同じにします。
- 2
原単位表を固定する
年度の途中で表を差し替えないようにします。変えるときは、変更理由と日付をCSVの出典列に残します。
- 3
Claudeに集計させる
同じ依頼文を使います。依頼文を毎月書き直すと、定義が少しずつずれます。
- 4
検算と按分を確認する
行数、サンプル行の手計算、小計と合計の整合を見ます。按分が要る分は、物流事業者の結果を受け取って照合します。
費用と保存期間
コード実行ツールは、ウェブ検索またはWeb Fetchと併用しない場合、実行時間で課金されます。最低実行時間は5分で、組織ごとに月1,550時間の無料枠があり、超過分は1コンテナあたり1時間0.05ドルです。ファイルをリクエストに含めると、ツールが呼ばれなくても実行時間が課金される点にも注意が必要です。月1回の集計なら、無料枠に収まる規模です。条件の詳細はコード実行ツールが無料になる条件にまとめています。
コンテナは作成から30日で失効します。月をまたいで前月のコンテナを使い回す設計にはせず、毎月、実績CSVと原単位表をアップロードし直します。Files APIに作られたファイルは、削除するまで残ります。物流の実績は取引先を特定できる場合があるので、不要になった入力ファイルは削除の対象にします。
中長期計画の文案づくりとの違い
特定荷主の中長期計画の下書きは、文章を整える作業です。排出量の算定は数値を出す作業で、必要な入力も確認する項目も違います。計画書の文案は特定荷主の中長期計画をClaudeで下書きする手順にあります。この記事の出典と年度の列は、算定した数字の出どころを後から説明するときに使えます。