Eun-kyu Baek·

グローバル在庫は十分なのに、なぜ欠品が起きるのか — マルチ倉庫時代の在庫・需要予測

数字だけを見ればそうです。しかし同じ時点で、このブランドのダッシュボードはまったく別の現実を示していました。

global-inventory-stockouts-demand-forecasting image 1

「グローバル全体で在庫が46,000個あれば、十分じゃないですか?」

数字だけを見ればそうです。しかし同じ時点で、このブランドのダッシュボードはまったく別の現実を示していました。

グローバル総在庫:46,200 unit
広告に使える在庫:31.2%(Available基準)
倉庫別在庫日数(DOS):6日〜86日のばらつき

ある海外倉庫ではベストセラー商品の在庫が86日分も滞留している一方、別の倉庫では6日後に欠品する見込みでした。合計では「十分」なのに、実際には過剰在庫と欠品が同時に起きていたのです。

国内の単一倉庫から自社ECサイトだけを運営していた頃は、「現在庫 vs 安全在庫」という一つの物差しで足りていました。しかし海外拠点を一つ、また一つと増やし、運賃削減のために航空便から海上輸送へ切り替え、マーケットプレイスのチャネルが増えた瞬間、在庫管理の難易度は線形ではなく掛け算で跳ね上がります。

本記事では、グローバルに複数の倉庫を運営するあるD2Cブランドの実際のコンサルティング事例をもとに、単純な安全在庫の公式を超える3段階の在庫・需要予測モデル、① ADIによる需要診断、② DDMRPに基づくNFP・バッファー発注、③ DAFによる動的調整を整理します。

前回の記事「『在庫があといくつあるか』はわかるのに、『いつ発注すべきか』はわからないブランドへ」で取り上げた安全在庫・ROP・ABC分析が在庫管理の基本だとすれば、本記事はマルチ倉庫・長いリードタイム・変動の大きい需要という条件が加わったときの応用編です。


なぜ標準的な安全在庫の公式だけでは足りなくなるのか

安全在庫の公式(Z × σ × √リードタイム)は、ある暗黙の前提の上に成り立っています。需要が安定していて、比較的一定であるという前提です。この前提が崩れた瞬間、公式の信頼性も一緒に崩れます。

前提が崩れる代表的なケース:

  • 毎日は売れない商品。月に数回、一度に数十個ずつ売れるような商品では、「日次出荷の標準偏差」という概念そのものが歪んでしまいます。

  • プロモーション時のスパイクが大きい商品。平常時の需要で計算したバッファーは、一度のプロモーションで無力化されます。

  • リードタイムが数週間単位の海上輸送。リードタイムが長くなるほど√リードタイムの項が大きくなって安全在庫が膨らみ、その間に「輸送中在庫」という新たな変数が生まれます。

  • 倉庫が複数ある。全社合計ベースの安全在庫は意味を失い、倉庫単位に分けた瞬間に「どの倉庫にどれだけ配分するか」という新たな問題が生じます。

もう一つ重要な気づきがあります。商品の特性によって、参考にすべき在庫運営の方法論そのものが異なるという点です。

区分消耗品型商品(例:化粧品・食品)耐久財型商品(例:電子機器・デバイス)
賞味・使用期限あり — 消化のプレッシャーがあるなし — 長期保管が可能
単価・回転低単価・高回転高単価・低回転
需要パターンおおむね安定(Smooth)変動型・間欠型が混在し、プロモーション時のスパイクが大きい
付属品・パーツ比重は小さいノズル・フィルター・アダプターなど間欠需要品が多い
輸送航空便の比重が高い海上輸送への切り替えに適する — パイプラインバッファーを活用

耐久財型の商品を扱うブランドが、消耗品型のベンチマーク(高回転を前提とした在庫指標)をそのまま使うと、判断を誤ります。この事例でも同業界のデータはほとんどなく、むしろ電子機器(スマートフォン・タブレット)の在庫運営の方法論を参考にするほうが正確でした。

そのため最初のステップは発注量の計算ではなく、自社SKUの需要がどんな性質を持っているかを診断することです。


ステップ1. 需要診断 — ADI × CV²でSKUを4つのタイプに分類する

需要予測の研究分野で広く使われているSyntetos–Boylan分類は、SKUの需要を2つの軸で診断します。

ADI  = 観測期間 ÷ 需要発生回数          → 「どれくらいの頻度で売れるか」
CV² = (需要量の標準偏差 ÷ 平均)²      → 「売れるときの数量は一定か」

境界値:ADI 1.32 / CV² 0.49(Syntetos, Boylan & Croston, 2005)

この2軸で4象限を描くと、すべてのSKUが4つのタイプのいずれかに分類されます。

タイプ特性対応戦略
Smooth安定して一定 — ベストセラーの主力商品標準的な安全在庫の公式がうまく機能する唯一の領域
Erratic頻繁に売れるが、数量の変動が大きい変動性バッファーを重く — Redの安全分を厚くする
Lumpyまれに、まとまって売れる — 限定品・ギフトセット統計的バッファーよりも、プロモーション・シーズン計画(DAF)中心で対応
Intermittent間欠的に少量 — 付属品・パーツ予測モデルの対象から外し、別途シンプルなルールで管理

この分類が重要な理由は一つです。タイプが違えば、同じ公式を使ってはいけないからです。Smooth SKUに合う安全在庫の公式をLumpy SKUに当てはめると、平常時には過剰在庫を、イベント時には欠品を生み出してしまいます。逆にIntermittentの付属品まで精緻な予測モデルに入れると、ノイズが増えるだけです。思い切って除外したほうが精度は上がります。

この分類は手作業ではやりません

ADI・CV²の計算に必要なのは、SKUごとの需要の時系列、つまりすでに蓄積されている出荷履歴です。Laplaceは、RPAで収集した入荷予定・実入荷・発注(PO)データからSKUごとのADI・CV²を自動算出し、4タイプに自動でタグ付けします。しきい値(1.32 / 0.49)、集計期間(週次/月次)、SKUごとの手動オーバーライドは管理画面から直接設定できます。学術的な標準値からスタートし、自社ブランドのデータに合わせて調整していく仕組みです。


ステップ2. 発注モデル — 現在庫ではなくNFPで判断する

マルチ倉庫・長いリードタイムの環境では、「現在庫」は発注判断の基準として不適切です。倉庫にある在庫の一部はすでに注文に引き当てられており、海の上には数週間後に到着する在庫が浮かんでいるからです。そこでDDMRP(Demand Driven MRP)の方法論では、NFP(Net Flow Position)という合成指標で判断します。

NFP = 現在庫(On-Hand)+ 未入荷オーダー(On-Order)− 確定需要(Qualified Demand)

言い換えると、「いま倉庫にあるもの + 届く途中のもの − すでに出荷が確定しているもの」です。このNFPをSKUごとのバッファーゾーンに当てはめて、発注の要否を判定します。

Green  ── NFPがこのゾーン → 発注不要(正常)
Yellow ── NFPがこのゾーン → 発注を実行(Top of Greenまで補充)
Red    ── NFPがこのゾーン → 緊急対応(expedite — 航空便への切り替え、倉庫間移送など)

発注量 = Top of Green(TOG)− NFP

実際の判定はこうなります

需要タイプの異なる3つのSKUの、同じ日のスナップショットです。

SKU(タイプ)現在庫未入荷確定需要NFP判定発注
SKU A(Smooth)1,1802,4009202,660🟢 Green—
SKU B(Lumpy)420300230490🟡 Yellow+390
SKU C(Erratic)310024070🔴 Red+570

注目すべき点:現在庫だけを見るとSKU B(420個)のほうがSKU C(310個)より余裕があるように見えますが、未入荷と確定需要まで反映したNFPで見ると、どちらも発注対象であり、Cは緊急状態です。「倉庫に何個あるか」と「実質的なポジションはどこか」は別の問いであり、発注は後者で判断すべきです。

バッファーのサイズを決める入力

Red・Yellow・Greenの各ゾーンのサイズは恣意的に決めるものではなく、3つのデータ入力と1つのポリシー入力によって決まります。

データ入力(自動収集・算定):

  1. 発注区分 — 同じ出荷でも性質が異なります。在庫補充(Replenishment)なのか、実際に納期のある注文(Order)なのかをAIが自動で分類し、国内/グローバル・B2B/B2Cといった区分までタグ付けします。Orderには許容納期があるため欠品防止バッファーに直接反映され、ユーザーは管理画面で区分を自分で再設定することもできます。

  2. 供給信頼度 — 仕入先が約束をどれだけ守っているかを数値化します。

数量充足率 = Σ 実入荷数量 ÷ Σ 入荷予定数量
納期遵守率 = 期日どおりの入荷件数 ÷ 全件数
供給信頼度 = 数量充足率 × 納期遵守率   (OTIFの考え方・0〜1)

信頼度0.9の仕入先と0.6の仕入先で、安全分(Red)が同じであるはずがありません。信頼度が低いほどRedを厚く。この調整が自動で行われます。

  1. リードタイム — 実際の発注→出荷→入荷の履歴から、区間別(輸送・通関・その他)に実測します。データのない区間は業界標準の所要時間からスタートし、履歴が蓄積されるにつれて推定値が実測値に置き換わっていきます。

ポリシー入力(ユーザー設定):

  1. バッファープロファイル — 変動性ファクター(需要・供給の変動が大きいほどRedを拡大、ADIタイプ別に差をつける)とリードタイムファクター(リードタイムが長いほどGreenを拡大)です。前回の記事のZ値と同じく、これはデータではなく「欠品コストと在庫コストのどちらをより警戒するか」という経営判断であり、ブランド自身が設定するダイヤルです。

ステップ3. DAFによる動的調整 — バッファーは固定値ではない

ここまでのバッファーは過去データに基づくものです。問題は、プロモーションやシーズン、新規チャネルのオープンといった将来すでにわかっている変化は、過去データには存在しないという点です。DDMRPはこれをDAF(Demand Adjustment Factor)で解決します。

調整後ADU = 基準ADU(平均日次需要)× DAF

例)プロモーション期間にDAF 1.8を適用
→ 該当期間のバッファーが一時的に1.8倍に引き上げ
→ リードタイムから逆算し、プロモーションの「前」に海上輸送で先行在庫を確保

ポイントは最後の行です。海上輸送に切り替えてリードタイムが数週間になったブランドにとって、プロモーション対応は「直前に航空便でかき集める」ことではなく、「数週間前からバッファーを積み増して船に載せておく」ことであるべきです。DAFは、その逆算をシステムに任せるための仕組みです。

同じ文脈で、パイプライン(輸送中)在庫の位置づけも変わります。航空便から海上輸送に切り替えると運賃は削減できますが、リードタイムが長くなり、海の上に浮かぶ在庫が常に存在するようになります。これを「まだない在庫」として扱えば過剰発注に、「すでにある在庫」として扱えば欠品につながります。正解はOn-OrderとしてNFPの計算に正確に反映することです。タダのバッファーでも無視してよいものでもなく、管理すべき対象なのです。


ダッシュボードではこう見える — 3つの運用画面

どれほど精緻なモデルでも、毎日見る画面がなければ実際の運用には使われません。この事例で実際に構築された3つの画面を紹介します。

① 倉庫別DOS比較 — 「合計」が覆い隠す偏りを可視化する

冒頭で紹介した画面です。同じベストセラーSKUの在庫日数を倉庫別に見ると:

ハブ倉庫(国内):22日  → 健全(基準:14〜45日)
海外拠点A:86日  → 過剰 — 資金が滞留
海外拠点B:6日  → 欠品間近

この画面の価値は、3つの意思決定が一つの画面で同時に導き出せる点にあります。① 過剰拠点での在庫消化キャンペーン、② ハブから欠品間近の拠点への緊急移送、③ 次回発注における拠点別比率の再配分です。合計値だけを見ていた頃には、どれも見えていなかった意思決定です。

② 在庫ステータスの分解 — Available / Committed / QC Hold

総在庫46,200個の実態をステータス別に分解すると:

ステータス意味数量比率
Available広告・販売に実際に使える在庫14,42031.2%
Committed注文・倉庫間移動に引き当てられた在庫24,88053.8%
QC Hold入荷検品待ち6,90014.9%

広告予算を投下できる在庫は、全体のわずか31%でした。特にQC Holdの14.9%は通常水準(約7%)の2倍です。特定拠点の入荷検品のボトルネックが、他拠点の欠品危機を深刻化させるという連鎖が、この画面で明らかになりました。「在庫がある」と「使える在庫がある」は別の話なのです。

③ 欠品リスクの推移 — 在庫データを広告運用につなげる

販売スピード × 利用可能在庫 × リードタイムを合成したリスク指標(0〜100)を、倉庫×SKU単位で追跡します。ある拠点の主力SKUのリスクが7日間で14 → 86に急上昇したとき、運用チームは一つの画面から3つのアクションを一括で実行しました。

  1. 該当SKUの広告日予算を30%削減(リスクのしきい値を超えると広告のペーシングを減速)

  2. ハブから該当拠点への緊急航空移送

  3. Available在庫を優先表示する並び替え

これがこのモデルの到達点です。在庫分析が物流チームのレポートで終わらず、広告・移送・発注という実行と同じ画面で同期されること。欠品状態のまま投下する広告費はそのまま消えていくお金ですが、在庫システムと広告システムが分断された組織では、このムダが毎回、事後になってから発見されます。


まとめ — ステップ別の要約

ステップ問い方法アウトプット
1. 需要診断このSKUの需要はどんな性質かADI × CV²による自動分類(Syntetos–Boylan)SKUの4タイプへのタグ付け、予測対象の確定
2. 発注モデルいつ、どれだけ発注するかNFP = OH + OO − QD、RGYバッファー判定SKUごとの発注タイミング・数量
3. 動的調整プロモーション・シーズンをどう反映するかDAFでADUを先行反映、パイプライン在庫も含めるイベント前の先回りしたバッファー引き上げ
運用画面毎日何を見るか倉庫別DOS・ステータス分解・欠品リスク広告・移送・発注の同期実行

一言でまとめると、診断(ADI)なしに計算せず、計算(NFP)は現在庫ではなくポジションで行い、実行は広告と同じ画面で行うこと。


自社ブランドに適用するには

このモデルの原料は特別なデータではありません。発注(PO)、入荷予定、実入荷、出荷履歴。ほとんどのブランドのフルフィルメント・WMSにすでに蓄積されているデータです。LaplaceはこれらのデータをRPAで自動収集・標準化し、上記の診断・計算・画面を実際に運用できる形で構築します。

Step 1. 出荷履歴に基づくADI・CV²の自動分類 → まずは自社SKUのうちSmoothが何%かを確認します。Smoothの比率が低ければ、標準的な安全在庫の公式に頼ってきたこれまでの発注がなぜずれ続けていたのかが、この段階で説明できます。

Step 2. 発注区分・供給信頼度・リードタイム実測データの整備。特に供給信頼度は、ほとんどのブランドが一度も数値化したことのない指標です。

Step 3. バッファープロファイル(変動性・リードタイムファクター)をポリシーとして確定 — ADIタイプ別に差をつけて適用

Step 4. NFP・RGY判定を週次の発注ルーティンに組み込み、DAFでプロモーションカレンダーと連動

Step 5. 倉庫別DOS・在庫ステータス・欠品リスクの画面を広告運用と連携

マルチ倉庫、海外進出、海上輸送への切り替え。このうち一つでも当てはまるなら、「現在庫 vs 安全在庫」というフレームはすでに限界に来ている可能性が高いでしょう。在庫は十分なのに欠品が起きているなら、問題は在庫量ではなく在庫を読み解くフレームにあります。

Laplaceと一緒に、まずは自社ブランドの需要タイプの診断から始めてみませんか。


方法論の参考文献:需要タイプ分類におけるADI・CV²のしきい値(1.32/0.49)はSyntetos, Boylan & Croston(2005)「On the categorization of demand patterns」に基づいており、発注モデルはDDMRP(Demand Driven MRP)方法論のNFP・バッファーゾーンの概念に従っています。