安全在庫は「リードタイム中の需要のばらつき」に安全係数を掛けた量
安全在庫は、発注してから入庫するまでの期間(リードタイム)に需要が平均より多く出ても欠品しないように、平均需要の上乗せとして持つ在庫です。もっとも広く使われる式は次の1行です。
SS = z × σd × √L
| 記号 | 意味 | 単位 | 数値例 |
|---|---|---|---|
| SS | 安全在庫 | 個 | 求める値 |
| z | 安全係数(目標サービス率に対応する標準正規分布の値) | 無次元 | 1.645(95%) |
| σd | 1日あたり需要の標準偏差 | 個/日 | 30 |
| L | 補充リードタイム | 日 | 9 |
数値例は、平均需要100個/日、標準偏差30個/日、リードタイム9日、目標サイクルサービス率95%の購買部品です。
SS = 1.645 × 30 × √9 = 1.645 × 30 × 3 = 148.0 個
運用では端数を切り上げて149個とします。σd×√L の90個は「9日間の需要合計の標準偏差」で、9日間の平均需要900個に対して±90個程度のばらつきがあることを意味します。
この式には4つの前提があります。①日々の需要が正規分布に従う、②日々の需要が互いに独立で平均とばらつきが一定、③リードタイムが一定、④在庫を常時監視していて発注点を割った瞬間に発注できる。どれかが外れると、計算上の95%は実績の95%になりません。
安全係数zはサービス率から決まり、95%から99%で1.4倍になる
z は「リードタイム中の需要が平均+zσ を超えない確率」が目標サービス率になる値です。表の値は Python の statistics.NormalDist().inv_cdf(p) で計算しました。
| 目標サイクルサービス率 | z | 数値例の安全在庫(σd=30、L=9) |
|---|---|---|
| 90% | 1.282 | 115.3個 |
| 95% | 1.645 | 148.0個 |
| 97.5% | 1.960 | 176.4個 |
| 99% | 2.326 | 209.4個 |
| 99.5% | 2.576 | 231.8個 |
95%から99%に上げると安全在庫は1.41倍になります。サービス率を上げるほど在庫の増え方が急になるので、全品目一律に99%を置くのではなく、ABC区分ごとに目標を分けるのが通例です。
ここでのサービス率は「発注サイクルのうち欠品しなかったサイクルの割合(サイクルサービス率)」です。受注数量のうち即納できた割合(フィルレート)とは別物で、同じ95%でも必要な在庫が変わります。違いはサイクルサービス率とフィルレートの違いと換算で計算しています。
単位をそろえる:月次の標準偏差を日次に直すときの落とし穴
ERP から取り出せる需要データは月次集計のことが多く、ここで換算を誤る例が目立ちます。月20稼働日で、月間需要の標準偏差が150個だったとします。
- 正しい換算:σd = 150 ÷ √20 = 33.5個/日 → SS = 1.645 × 33.5 × 3 = 165.5個
- 誤った換算:σd = 150 ÷ 20 = 7.5個/日 → SS = 1.645 × 7.5 × 3 = 37.0個
平均は日数で割りますが、標準偏差は日数の平方根で割ります。分散が日数に比例するためです。誤った換算では安全在庫が4.5分の1になり、欠品が頻発します。
週次データで σ が70個/週(週5稼働日)、リードタイムが9日なら、リードタイムを週に直して 9÷5=1.8週とし、SS = 1.645 × 70 × √1.8 = 154.5個です。σ と L の時間単位を必ずそろえてから掛けます。
ただし、月次から日次への換算そのものが前提②(日々の需要の独立)に依存しています。月末に出荷が集中する、特定顧客がまとめて発注するといった相関があると、日次の標準偏差は √20 で割った値より大きくなります。換算に頼るより、リードタイムと同じ長さの期間で直接ばらつきを測るほうが安全です。
前提が崩れる4つの場面と、使うべき式
| 崩れる前提 | 起きやすい在庫 | 崩れたときの影響 | 対処 |
|---|---|---|---|
| 需要が正規分布 | 保守部品、低回転のC品目 | 変動係数0.8のガンマ分布では、95%狙いの在庫で実績が92.9%に落ちる | ポアソン・ガンマ・経験分布を使う |
| リードタイムが一定 | 海外調達品、外注加工品 | 需要のばらつきより納期遅れの影響が大きくなる | リードタイムのばらつきを加えた式 |
| 需要が定常 | 立上げ・終息期の製品、季節品 | 過去の標準偏差にトレンドや季節変動が混入し過大になる | 予測誤差の標準偏差を使う |
| 常時監視 | 週次・月次でまとめて発注する品目 | 次の発注機会までの期間を守れず欠品する | √L を √(L+R) に置き換える(R は発注間隔) |
4つ目は見落とされがちです。週1回(R=5稼働日)しか発注しない品目で L=9日なら、SS = 1.645 × 30 × √14 = 184.6個になり、常時監視の148個より25%多く必要です。
計算した安全在庫を過去データで確かめる
式で出した値は、そのまま品目マスタに登録する前に、過去12か月程度の需要実績に当てはめて検証します。手順は単純で、過去の各発注サイクルについて「リードタイム中の実需要が、平均需要×L+SS を超えたか」を数え、超えなかったサイクルの割合を目標サービス率と比べます。
95%を狙って85%しか出ない場合、原因はほぼ上の表の4つのどれかです。リードタイム実績を発注データと入庫データから突き合わせ、需要の分布を度数分布で描くと、どの前提が外れているかが見えます。
よくある質問
安全係数1.65と1.645はどちらを使えばよいですか
95%に対応する正確な値は1.6449です。1.65に丸めても数値例では148.0個が148.5個になる程度で、実務上の差はわずかです。σ やリードタイムの推定誤差のほうがはるかに大きいため、丸め方より入力データの点検を優先してください。
リードタイムは発注から何までを数えますか
発注を決めてから、入庫して引当可能になるまでです。発注処理の待ち、輸送、受入検査、品質保留の解除までを含めます。受入検査に2日かかるなら、仕入先の納期が7日でも L は9日です。
安全在庫がマイナスや極端に大きな値になるのはなぜですか
マイナスになるのは z を負の値(50%未満のサービス率)にしたときだけです。極端に大きい場合は、σ にトレンドを含む出荷実績の標準偏差を使っているか、σ の時間単位と L の時間単位がずれていることが大半です。
この記事に出てくる用語
安全在庫の式は、どこで嘘をつくか
需要が正規分布でないとき、リードタイムがばらつくとき。教科書の式と現場の欠品率がずれる理由 全17本
- リードタイムがばらつくときの安全在庫の式と、遅延が偏るときの補正
- サイクル在庫・輸送中在庫・季節在庫:在庫を6つの機能で分けて計算する
- 発注点の計算:リードタイム需要+安全在庫と、発注残・引当の扱い
- 定量発注と定期発注の違い:安全在庫が1.33倍になる理由と選び方の5基準
週刊 在庫KPI
業種別の在庫KPIベンチマークの更新と、その週の新着記事5本を毎週月曜にお届けします。無料・いつでも解除できます。