はじめに
こんにちは。
GadgetStreemでは現在、ガジェット価格の上昇圧力を一つの数字で確認できる独自指数、
GPI(Gadget Pressure Index/ガジェット価格圧力指数)

を開発しています。
これまで、
- USD/JPY
- DRAM関連ベンチマーク
- NAND関連ベンチマーク
- 世界のサプライチェーン圧力
と、GPIを構成する市場データを一つずつ調査・実装してきました。
前回のVol.9では、ニューヨーク連銀が公開する
GSCPI(Global Supply Chain Pressure Index)
をGadgetStreem Intelligenceへ取り込みました。
GSCPIは世界のサプライチェーン全体の圧力を見るうえでは非常に興味深い指標です。
しかし、
GSCPIは海上運賃そのものではありません
輸送費だけでなく、製造業の供給制約なども組み込まれているため、GPIで当初設定した
海上運賃:10%
へそのまま割り当てることはしませんでした。
そこで今回、
もっと直接的に「海上輸送の価格」を測れる無料データはないのか?
を調査しました。
そして、かなり有力な候補へたどり着きました。
見つけたのはBLSのDeep Sea Freight PPI
今回採用候補として選定した系列IDは、
PCU483111483111P
です。
正式名称は、
Producer Price Index by Industry: Deep Sea Freight Transportation: Primary Services
BLSの分類では483111が「Deep sea freight transportation」、そのうち483111Pが「Primary services」に対応しています。
つまり、Vol.9で扱ったGSCPIよりも、
海上貨物輸送サービスの価格
へかなり直接的に近づいたデータです!
PPIとは?
PPIは、
Producer Price Index(生産者物価指数)
です。
今回の系列では、海上貨物輸送事業者が提供するPrimary Servicesの価格変化を指数として追跡します。
系列は、
- 月次
- 季節調整なし
- 1988年6月=100
として公開されています。2026年6月の観測値も公開されており、系列自体は1988年までさかのぼれます。
例えば、
1988年6月 = 100
を基準として、
2026年6月 = 469.292
のように、長期的な価格水準の変化を確認できます。
GSCPIより海上運賃に近い
Vol.9で取得したGSCPIは、
海上輸送
+
航空貨物
+
製造業の納期
+
供給制約
↓
世界サプライチェーン圧力
を見る指標でした。
一方、今回のBLS系列は、
Deep Sea Freight Transportation
↓
Primary Services
↓
Producer Price Index
です。
そのため、
海上輸送サービスの価格圧力
というGPIが本来測りたいテーマへ、かなり近くなっています。
GadgetStreem Intelligenceでも、内部名称を
deep_sea_freight_price_benchmark
としました。
では、これを海上運賃10%にすればよいのでは?
ここまで読むと、
「海上運賃データが見つかったなら10%を割り当てればいいのでは?」
と思うかもしれません。
実際、これまで検討してきた無料データの中ではかなり有力です。
しかし、答えはまだ、
NO
です。
理由は、このBLS系列も、
GPIで最初に想定していた海上運賃指数とは完全には一致しない
からです。
本当に欲しかったのは「世界のコンテナSpot Rate」
GPIを最初に設計したとき、海上運賃10%で想定していたのは、より具体的には、
世界主要航路
+
コンテナ輸送
+
Spot Rate
+
週次
に近いデータでした。
例えば、
アジアから欧米へコンテナを運ぶ価格が今週どのくらい上がったか
を捉えるイメージです。
しかし今回のBLS系列は、
米国
Deep Sea Freight Transportation
Primary Services
月次PPI
です。
GSIの正式なFreight Source Policyでも、
- 候補頻度:月次
- 対象:米国Deep Sea Freight Primary Services
- 世界の週次コンテナSpot Rateをカバー:false
と明記しています。
ここに、まだ大きな違いがあります。
「海上貨物輸送」と「コンテナSpot Rate」は同じではない
Deep Sea Freight Transportationは、言葉だけを見ると非常に近く見えます。
しかし、
Deep Sea Freight
と、
Global Container Spot Rate
は同じ概念ではありません。
GPIで特に知りたいのは、スマートフォン、PC、周辺機器、部品などの国際物流へ影響しやすいコンテナ輸送価格です。
一方BLS系列は、米国のDeep Sea Freight Transportationという、より広い産業サービスの生産者価格を測っています。BLSの分類でも483111はDeep sea freight transportation全体を示します。
そのため、
かなり近い。しかし完全一致ではない
という評価になりました。
更新頻度も違う
もう一つ大きな違いがあります。
GPIは週次更新を想定しています。
しかしBLS系列は、
Monthly
です。
例えば、
6月:469.292
7月:次回公表まで未確定
という期間が存在します。
この間、実際のコンテナ市場では、
- 紅海情勢
- 港湾混雑
- 船腹不足
- 燃料費
- 需要急増
などで運賃が大きく変化している可能性があります。
しかし、BLS月次指数だけでは毎週その変化を捉えられません。
月次データを勝手に週次化しない
ここでも、これまでと同じルールを適用します。
例えば、
6月:460
7月:480
だったからといって、
第1週:465
第2週:470
第3週:475
第4週:480
と直線で補間することはしません。
それは実際には存在しない市場値を作ることになるからです。
Freight Source Policyでも、
月次値を線形補間して架空の週次変動を生成しない
ことを明示しています。
GPIでは、
新しい月次値が出る
↓
その値を保持
↓
次の公式観測まで持ち越す
という方法を基本とします。
利用権という点ではかなり強い
一方、BLSには大きなメリットがあります。
これまでDRAMやNANDで苦労してきた、
利用権
です。
BLSはPublic Data APIを公式に提供しています。
Version 1では、系列IDや年を指定して時系列データを取得できます。
またBLSの利用条件では、取得後のデータの二次利用をBLSが制御するものではないとしつつ、取得日と出典を明記し、取得後の分析についてBLSが品質や最新性を保証するものではないことを明示するよう求めています。
これはGSIが初期データソースへ求めてきた、
- 無料取得
- 公式API
- 過去データ
- 商用分析への利用可能性
- 出典明記
- 自動取得
という条件との相性が非常に良いものです。
BLS Deep Sea Freight Collectorを実装
そこでGadgetStreem Intelligenceへ、
BLS Deep Sea Freight Collector
を実装しました。
内部では、
source:bls_ppi
indicator:
deep_sea_freight_price_benchmark
series_id:
PCU483111483111P
として管理します。
CollectorはBLS Public Data APIから対象系列を取得し、
BLS Public Data API
↓
PCU483111483111P
↓
年・月・値を検証
↓
月次データへ正規化
↓
Revision確認
↓
PostgreSQLへ保存
という処理を行います。
実際のBLS APIでもHTTP 200を確認
今回も、Fixtureだけでテストを通したわけではありません。
実際のBLS Public Data APIへ接続しました。
ログでは、
POST
https://api.bls.gov/publicAPI/v1/timeseries/data/
HTTP/1.1 200 OK
を確認しています。
実データ114観測を取得
現在までの実データ収集では、
selected:114
まで取得できています。
既に保存されていた54観測に対して、追加で60観測を取得した実行では、
selected:114
inserted:60
unchanged:54
revised:0
status:success
となりました。
つまり、
既存54観測
+
新規60観測
=
114観測
まで拡張できたことになります。
2回目は114件すべて変更なし
同じ範囲でもう一度Collectorを実行しました。
結果は、
selected:114
inserted:0
revised:0
unchanged:114
status:success
です。
つまり、
1回目
60件追加
2回目
114件すべて変更なし
となりました。
今回も、
冪等性
を実データで確認できています。
Collectorを何度実行しても、同じ観測値が重複して増殖することはありません。
Revisionにも対応
BLSのPPIは、後日訂正される可能性があります。
実際、BLSのPPIリリースでも、後から入った報告や回答者による訂正により、過去月の数字がRevisionされる場合があることが説明されています。
そのため今回のCollectorも、
同じ値
↓
unchanged
違う値
↓
Revision追加
として管理します。
過去値を無言で上書きしません。
データそのものはかなり良い
今回の候補を整理すると、
| 項目 | 評価 |
|---|---|
| 公式データ | ○ |
| 公式API | ○ |
| 無料取得 | ○ |
| 過去データ | ○ |
| Revision追跡 | ○ |
| 海上輸送価格との関係 | かなり高い |
| 月次更新 | △ |
| 世界全体 | × |
| コンテナSpot Rate | × |
| 週次 | × |
となります。
これまでの無料候補の中では、
海上運賃10%へ最も近い一歩
です。
それでも正式採用はしなかった
GSIのFreight Source Policyでは、今回の判断を次のように固定しています。
Direct freight candidate selected:true
Candidate frequency:monthly
Candidate scope:
U.S. deep-sea freight primary services
Weekly global container-route coverage:
false
Freight weight assigned:
false
Freight production ready:
false
Methodology amendment accepted:
false
Effective decision:
NO_GO
Public numeric release authorized:
false
つまり、
候補は見つかった。Collectorも動いた。でも、まだ10%にはしない。
という状態です。
10%をドル円などへ再配分もしない
ここでも重要なルールがあります。
海上運賃10%を使えないからといって、
ドル円 30% → 35%
DRAM 25% → 30%
のように、残りの指標へ勝手に分配することはしません。
GPIの固定枠は、
USD/JPY 30%
DRAM 25%
NAND 20%
GPU 15%
Freight 10%
のままです。
欠けたウェイトは、
欠けたまま
として扱います。
後続のMethodologyレビューでも、この固定スロット契約を維持し、欠損ウェイトを再配分しないことが明示されています。
なぜそこまで厳しくするのか
仮にFreight 10%をBLSへ割り当てたとします。
公開ページには、
海上運賃:10%
と表示されます。
しかし内部では、
米国
Deep Sea Freight Primary Services
月次PPI
を使っています。
読者が想像する、
世界のコンテナ運賃
とは完全には一致しません。
これを説明せずに公開すれば、
ラベルと実際のデータの意味が違う
という問題になります。
GPIはまだ知名度のない独自指数です。
だからこそ、最初からこの部分を曖昧にしない方針です。
技術的にREADYでも、GovernanceではBLOCKED
さらに現在のLive Validationでも、興味深い結果が出ています。
実データについては、
Completeness:PASS
Continuity:PASS
Revision Integrity:PASS
Value Validity:PASS
となっています。
つまり、
データそのものは正常に取得・保存できている
状態です。
一方で、
Governance Readiness:BLOCKED
GPI Eligible:false
Overall Status:BLOCKED
となっています。
これがGSIの現在の設計思想をかなり象徴しています。
技術的に動く
≠
GPIへ使ってよい
ということです。
Collector実装だけで終わらせず、公開ゲートも作った
今回のIssueではCollectorだけを追加していません。
さらに、
Freight Source Policy
を追加しました。
このPolicyでは、
- データ取得
- 対象範囲
- Frequency
- Historical Coverage
- Carry Forward
- Revision
- Methodology
- Human Review
- Production Activation
- Public Release
といった条件を機械的に判定します。
条件が足りなければ、
NO_GO
になります。
今回のbaselineも、意図どおり
valid NO_GO
となりました。
302テストを通過
Direct Freight Source Resolutionでは、
- Repository Health
- Render Policy
- Operations Policy
- Public API Policy
- Staging Release Policy
- Data / Methodology Policy
- Memory Source Policy
- GPU Source Policy
- Freight Source Policy
- Ruff format / lint
- PostgreSQL Integration Test
などを検証しています。
この段階でのAPIテストは、
302 passed
まで通過しました。
そのうえで、判定はあえて
NO_GO
です。
テストが落ちたから公開できないのではありません。
テストは通った。しかしMethodologyの条件を満たしていないから公開しない。
という状態です。
Issueはmainへマージ済み
このDirect Freight Source Resolutionは、その後Pull Requestを経てmainへ入りました。
後続Issue #36のBase Commitでは、
d58497e
feat: add direct freight source resolution gates (#44)
として確認できます。
つまり今回の記事で紹介している内容は、設計案ではなく、現在のGadgetStreem Intelligence本体へ組み込まれています。
では、このデータは無駄なのか?
もちろん無駄ではありません。
むしろ、かなり重要です。
現在は、
deep_sea_freight_price_benchmark
としてShadow運用・Methodology検証に利用できます。
このデータを使って、
- 12か月変化率
- 過去分布
- 0〜100スコア
- GSCPIとの比較
- ガジェット価格との時間差
- 物流ショック時の動き
などを検証できます。
現在のGSI Methodology Candidateでも、この系列は、
Deep-sea freight transportation price-pressure proxy
として、Freight枠の候補になっています。
ただし、それはまだCandidateです。
GSCPIとの役割分担も明確になった
Vol.9と今回で、ようやく物流系データの役割がかなり整理できました。
GSCPI
↓
世界のSupply Chain全体
↓
Supply Chain Benchmark
一方、
BLS Deep Sea Freight PPI
↓
海上貨物輸送サービスの価格
↓
Freight Price Benchmark
です。
そして最終的に理想としているのは、
Global Container Spot Rate
↓
主要航路
↓
週次
↓
Production Ocean Freight Source
です。
この3つを混同しないことが重要だと考えています。
無料データだけでもかなり進んできた
GPIを作り始めた当初、
「公式・無料・商用利用可能なデータだけでどこまで作れるのか?」
はかなり大きな不安でした。
しかし、現在では、
USD/JPY
→ Federal Reserve
DRAM関連
→ BLS Semiconductor Benchmark
NAND関連
→ BLS Storage Device Benchmark
Supply Chain
→ New York Fed GSCPI
Freight
→ BLS Deep Sea Freight Benchmark
まで、実際のCollectorが動き始めています。
BLSは公式Public Data APIも提供しており、GSI側では安定した時系列取得経路として利用できています。
ただし、
無料で取れるから、そのままProductionに使う
という方針ではありません。
現在地
Vol.10終了時点を整理すると、
USD/JPY
Collector:実装済み
意味の一致:高い
DRAM
正式候補:保留
無料Benchmark:稼働中
NAND
正式候補:保留
無料Benchmark:稼働中
Supply Chain
GSCPI:稼働中
benchmark_only
Freight
BLS Deep Sea Freight:稼働中
Production Candidate
10%:未割り当て
GPU
正式ソース:検証継続中
GPI公開
NO_GO
GPIはまだ公開できません。
しかし、最初のころとは大きく違います。
「どのデータを使えばいいか分からない」という状態から、
候補データを実際に収集し、どこが足りないのか数値とルールで判断できる状態
へ進んでいます。
次のVol.11で紹介すること
次回のGPI開発日誌 Vol.11では、
GPU需給をどう数値化するのか
を取り上げます。
GPIの初期設計では、
GPU需給:15%
と設定しました。
しかしGPUには、ドル円のような
今日のGPU需給指数 = ○○
という公式な単一市場データが存在するわけではありません。
そこで実際のGSI開発では、
- GPU小売価格
- 複数販売店
- SEC EDGAR
- Steam Hardware Survey
- メーカー関連データ
など、複数の候補を検討してきました。
しかし、
公開APIがない
商用利用条件が合わない
GPU価格そのものではない
四半期データしかない
日本市場を直接表していない
など、DRAMやNAND以上に難しい問題があります。
次回は、
「GPU需給15%」という、そもそも直接観測しにくい概念をどう扱うのか
を紹介します。
まとめ
Vol.9ではGSCPIを取得し、
世界の供給網圧力を見るベンチマーク
を作りました。
今回のVol.10では、より直接的な海上輸送価格データとして、
BLS Producer Price Index
Deep Sea Freight Transportation: Primary Services
PCU483111483111P
を選定しました。BLSの分類上もDeep Sea Freight TransportationのPrimary Servicesに対応する月次PPIです。
GSIでは、
- 公式Public Data APIへ接続
- 実データを取得
- 114観測まで拡張
- Revision対応
- 2回目は114件すべて
unchanged - Freight Source Policyを追加
- 302テストを通過
mainへマージ
まで進みました。
しかし、
月次
米国
Deep Sea Freight
Primary Services
という系列であり、
週次
世界
主要コンテナ航路
Spot Rate
とは異なります。
そのため現在も、
海上運賃10%:未割り当て
Production Ready:false
Public Release:NO_GO
です。
GadgetStreem Intelligenceでは、
「かなり近い」だけでは正式採用しない
というルールを守ります。
開発速度だけを考えれば、もうGPIの数字を出すことはできます。
しかし私たちが作りたいのは、
数字だけがそれらしく見える指数
ではありません。
なぜその数字になったのか、どのデータを使い、どこに限界があるのか説明できる指数
を目指しています。
次回はいよいよ、GPIの中でも特に難しいGPU需給15%へ進みます。
※GPIは現在開発中の実験的な市場分析指標です。
BLSPCU483111483111Pは米国のDeep Sea Freight Transportation: Primary Servicesに関する月次PPIであり、世界の主要コンテナ航路を対象とする週次Spot Rate Indexそのものではありません。
現時点ではGPIの海上運賃10%へ正式ウェイトを割り当てておらず、公開数値のリリースも承認していません。
また、GPIは個別製品の将来価格や購入利益を保証するものではなく、投資判断を目的とした金融指標でもありません。



コメント