まず愚痴から:Amazonの在庫補充サジェストは、本物の需要予測の代わりにはならない。昨年のピークシーズン、それは私に売れ筋SKUを8,000個仕入れろと言った。私は6,000個仕入れた——そして売れたのは2,300個だった。残りはFBA倉庫に4か月眠り、保管料だけでも痛かった。あの日、私は学んだ:在庫計画ではプラットフォームより自分を、勘よりモデルを信じろ、ということだ。

2025年、カタログは40から200 SKUに、1日の注文は300から1,500に増えた。勘でExcelで在庫を計画した結果は、予想通りの結末だった:在庫切れ率12%、人気商品が21日間在庫切れになり、Best Sellerバッジを競合に奪われるのを指をくわえて見ていた。21日間で約9,000件の注文を失った。その計算はもう済ませた。今でも痛い。

そこで2026年第1四半期、歯を食いしばって本物の予測モデルを回した——時系列と機械学習の真っ向勝負だ。結論は意外かもしれない。

時系列 vs 機械学習:まず需要予測の比較表

時系列(移動平均/指数平滑/Prophet) 機械学習(XGBoostなど)
データの食欲 1–2年分の販売履歴で動く 2–3年分+外部特徴量(価格、プロモ、祝日、トラフィック)が必要
特徴量エンジニアリング ほぼ不要、箱出しで動く 自分で作る:プロモフラグ、価格変動、カテゴリイベント、全部
実測WAPE 18% 12%
導入コスト Excelで半日 3週間のチューニング(私の深夜時間)
メンテナンス ほぼゼロ 大型プロモごとに再学習、さもないと精度が崖から転落

WAPE = 実売に対する予測誤差の割合。低いほど良い。同じ120 SKU、2年分の履歴、同じテスト期間で両方回した。フェアな勝負だ。

表は横に読め:まず「データの食欲」の行——これが門だ。ここを通れないと他は意味がない。次に「実測WAPE」——これがリターン。次に導入・維持コスト——これが代金。門×代金 vs リターン:この計算をすれば選択は自ずと決まる。

機械学習が6ポイント差で勝った。すごい——でも喜ぶ前に完全な計算をしよう:3週間のチューニングと特徴量作り、大型プロモごとの再学習(さもないと精度は株のように滑り落ちる)、そしてロングテールSKUではMLの精度改善は2ポイント未満——純粋な演技だった。

だから実際の構成はこうだ:上位20 SKU(売上の70%)はXGBoostで、週次更新。残り100は移動平均+15%の安全在庫——10分の作業だ。浮いた時間は仕入先の支払条件交渉に回した——30日から45日に。解放されたキャッシュフローは、その2ポイントの精度より価値がある。

満杯の棚が並ぶ倉庫の通路、ハンディ端末で棚卸カウントをする作業員

機械学習に触れてはいけない時

直感に反する判断をしよう:SKUが約100未満、または1日の注文が約500未満なら、機械学習は蚊を撃つのに大砲だ。

なぜか?MLはデータを餌にする獣だ。餌を切らせば勘よりひどい。年間400個売れるロングテールSKUがあった——XGBoostは「1,200個」と自信満々に予測した。たまたまの小さなスパイクをパターンと勘違いしたのだ。こういうSKUには正直な移動平均が勝つ:売れる分だけ仕入れ、15%の安全在庫を足して、終わり。

時系列すら役に立たないカテゴリがあと2つ:新商品(履歴なし——モデルは盲目)と強い季節商品(ハロウィン衣装は9月にしか目覚めず、毎年のカーブは違う)。これらにはモデルをスキップ。カテゴリのリズムを見て、安全在庫は厚めに、最初の小ロットで試す。

自虐ネタをひとつ。2026年3月、新商品を出した——履歴ゼロ。XGBoostはそれでもカテゴリ平均から「初回発注:4,000個」と自信満々に言った。信じずに1,500個発注した。売れたのは900個、残り600個はまだ捌けていない。モデルを信じていたら4,000個でキャッシュフローがぺしゃんこだった。新商品フェーズでのモデルの自信は純粋な演技だ。最初の小ロット、2週間の売れ行きを見て、再発注——どんなモデルより勝つ。

一言:データはモデルの餌だ。餌をやれない獣は飼うな。

悪い需要予測が年間で本当にいくらかかるか

在庫切れ:1日の在庫切れ = 日販数 × 単品あたり利益。21日間切れたSKUは1日430個、1個あたり約$4の利益——21日で$36,000の利益が消えた。Best Sellerの順位を失って這い上がるのに必要な広告費は別だ。

過剰在庫:FBAの長期保管料+凍結した現金。余った3,700個は4か月眠った。保管料は小さい方だ。大きい方:単価$6 × 3,700個 = $22,000の現金がその場で凍結——ピーク商戦の新商品仕入れに必要だった金だ。

その3,700個の末路は?30%の値下げと2か月のクリアランス。利益はほぼゼロに、動かすための広告費も上乗せ。これが悪い予測のフルコストチェーンだ:在庫切れは注文を失い、過剰在庫は現金を凍結し、クリアランスは利益を殺す。三つの切り傷、どれも深い。

だから予測精度の1ポイントは本物の金だ。WAPEは18%から12%へ、在庫切れ率は12%から7%へ——1四半期で救った注文が、その3週間のモデル作業代を十分おつり付きで払った。

スケールの話をひとつ:よく「MLは元が取れるのか」と聞かれる。うちの場合、20 SKUが売上の70%を担うから計算が成り立った。売上が200 SKUに平たく分散して明確な頭がなければ、チューニングコストが精度ゲインを食い尽くす。集中こそが大砲を撃つ価値を作る。

落とし穴:モデルの言うことを全部信じるな

三つの罠、全部自分で踏んだ。

第一に、デモの精度を信じるな。標本内フィットの数字は張り子の虎だ——未来の実データに出会うまでは華やかだ。標本外テストの結果だけ見ろ。他は全部演技だ。

第二に、Prime Dayのような異常値は別フラグで立てろ。2025年、あるSKUがPrime Dayに通常日販の20倍売れた。それを無印でモデルに食わせると、毎日がクリスマスだと思い込む——天井まで在庫が積み上がる。

第三に、モデルの出力はすべて人間が通す。XGBoostが「5,000個仕入れろ」と言っても、私は3,500個に切る——仕入先のリードタイムが45日から30日に縮んだことをモデルは知らないからだ。モデルはデータを理解する、現場は理解しない。最終判断はやはり自分だ。

第四に、モデルに食わせる前にデータを掃除しろ。最初のランは返品とキャンセル注文を「売上」に混ぜていた——モデルは現実より8%高い需要を学習し、予測は全部重くなった。今は毎週のラン前に返品とキャンセルを除去する。Garbage in, garbage out——予測ほどこれが真実になる場所はない。

自分で試した、効く。頭のSKUは機械学習、ロングテールは移動平均、異常値は別フラグ、出力は全部人間が承認——この4つのルールは$36,000の授業料がかかった。予測モデルは魔法じゃない。ただ、眠らずに一晩中数字を回せる同僚だ。そしてどんなに優秀な同僚でも、船の舵を取るのはやっぱり船長だ。

Ah K(Eコマース販売者、5年)著

英語版からの翻訳。内容に相違がある場合は英語版を優先します。