需要だけでなくリードタイムも変動する場合の安全在庫はどうやって計算するの?

2023年10月16日

Photo by Mick Haupt on Unsplash

毎日きっかり10個売れるアンパンに安全在庫は不要です。

その日の開店前に10個のアンパンを作っておけば、閉店までに過不足なく売り切れるためです。

しかし学校の給食向けでもない限り、こんなに需要が一定であるパン屋はほぼないと言ってよいでしょう。

 

そこで普通は次のような式で安全在庫を計算します。

安全在庫=√(リードタイム)×需要の標準偏差×安全係数

 

リードタイムに平方根が付くところがミソです。

なぜこのような式になるのかについては下記の記事をご覧下さい。

安全在庫式のリードタイムに平方根が付くのはなぜ?【誰もが一度は疑問に思う】

 

ところが、この式で計算しても安全在庫が足りないことがあります。

そのような時にはリードタイムが変動していないかチェックしてみて下さい。

リードタイムとは発注してから商品を入荷計上するまでの日数(時間)です。

発注先で欠品があれば入荷は遅れますし、在庫があってもトラックが手配できなければ遅れます。

海外へ発注する場合には船便はしょっちゅう遅れますし、通関でも遅れることがあります。

休日を挟むために遅れることもあります。

このようにリードタイムは調べてみると驚くほど変動していることがわかります。

リードタイムが予定より延びれば欠品になる可能性が高まることは明らかで、この変動を無視して安全在庫を計算するのは時として無謀です。

 

そこで今回はリードタイムが変動する場合の安全在庫の計算式を紹介し、具体例をExcelで計算してみます。

尚、本記事は下記のサイトを参考にさせていただきました。

Understanding safety stock and mastering its equations | APICS

 

リードタイムが変動する場合の安全在庫の計算式

まず最初に記号を定義しておきます。

需要とリードタイムについて、平均標準偏差をそれぞれ次のように定義します。

需要

平均=μD、標準偏差=σD

リードタイム

平均=μL、標準偏差=σL

 

するとリードタイムが変動する場合の安全在庫は次のように計算できます。

安全在庫=μD×σL×安全係数

 

需要が変動する場合の安全在庫の計算式は

安全在庫=√μL×σD×安全係数

なのでμLとμDを取り替えて、σDとσLも取り替えた形になっています。

但し、平方根を計算するためのルートは付いていません。

 

需要が変動する場合の安全在庫の計算式にルートが付く理由については安全在庫式のリードタイムに平方根が付くのはなぜ?【誰もが一度は疑問に思う】を参照していただくとして、リードタイムが変動する場合にはなぜ不要なのでしょうか?

それはリードタイムが1日延びると1日分の需要だけ多くの安全在庫が必要になるためです。

リードタイムの変動が大きくなれば、1日分の需要×大きくなった日数分だけ多くの安全在庫が必要になるのです。

そこにルートは付きません。

 

リードタイムと需要が変動する場合の安全在庫の計算式

さてこれでリードタイムが変動する場合の安全在庫の計算式がわかりましたが、この式では需要が変動しないことを前提にしています。

そのような前提が現実的でないのは、本記事の冒頭で述べた通りです。

通常は両方変動しますが、その場合の安全在庫の計算式は次のようになります。

安全在庫=√(μL×σD2+μD2×σL2)×安全係数

 

つまり、2つの変動分の平方和の平方根になります。

リードタイムの標準偏差σLがゼロの場合は、需要のみが変動する場合の式に等しくなります。

この式が成り立つためには需要の変動とリードタイムの変動が独立であるという前提条件がありますが、通常これらは独立と見做して問題はないでしょう。

 

Excelで具体例を検証する

それではこの式を使って、リードタイムが変動すると安全在庫がどのくらい増えるのかを検証してみましょう。

次の表はある商品の4ヶ月間の毎日の需要とリードタイム日数をまとめています。

この商品は1週間に1度のサイクルで定期発注しており、発注から納品までのリードタイムに発注サイクルである7日を加えた値をリードタイムとして記載していることに注意して下さい。

 

 

この表の見方ですが、例えば1/7に発注した商品は13日後の1/20に納品されたということです。

リードタイムが916日の間でばらついていることがわかります。

この実績にリードタイムの変動を考慮した安全在庫の計算式を適用すると次のようになります。

 

安全在庫は5,233になりました。

この安全在庫はリードタイムが標準偏差2で変動することを見越しての数量です。

それではこの変動を考慮しなかった場合の安全在庫は何個になるのでしょうか?

σLをゼロにすればよいだけなので、次のようになります。

 

安全在庫は3,762になりました。

実に28%も少ないことになり、欠品が多くなるのも頷けます。

安全在庫の計算式に沿って在庫量を決めているのに欠品が多くなるという場合には、リードタイムの変動をチェックしてみましょう。

 

Pythonだともっと簡単に計算できる

このようにExcelで計算するには結構複雑な式を入力する必要がありますが、Pythonだとinventorizeライブラリーを使うことでたったの1~2行で計算できてしまいます。

詳細はこちらをご覧下さい。

【発注点の求め方】日/アイテム/在庫拠点別の出荷データからPythonで求める方法を実演