実際の欠品率が安全在庫の理論通りにならないのはなぜ?(その1)

2022年8月28日

Photo by Алекс Арцибашев on Unsplash

安全在庫理論は単純明快で実運用でも幅広く使われていますが、うまくいかない場合も多いようです。

例えば、このような経験はないでしょうか?

欠品率5%になるように安全係数を設定したのに、実際の欠品率は1%以下だ

逆に

欠品率5%になるように安全係数を設定したのに、実際の欠品率は10%以上だ

このようになる理由はいくつか考えられますが、欠品率の定義が違うことが往々にしてあります。

どういうことでしょうか?

 

【スポンサーリンク】

安全在庫理論における欠品率

まず安全在庫理論における欠品率の定義から見ていきましょう。

安全在庫理論では需要は正規分布に従うことを仮定します。

ある期間の需要の平均が100で、標準偏差が30だったとすると、需要は下図のように分布すると仮定しています。

 

このとき、需要が130以上になる確率は何%でしょうか?

それを調べるには標準正規分布表を見ます。

 

標準正規分布表は、平均+標準偏差×tの数値以上になる確率を示しています。

このtは安全係数とも呼ばれます。

安全在庫の計算に必要な安全係数の二通りの求め方をわかりやすく解説!

 

この表にはtの小数点第一位までを縦軸に、小数点第二位と第三位を横軸に書いています。

130ということは、平均100よりも標準偏差30だけ大きいということです。

ですので標準偏差の1倍、つまりt=1.000のときの確率を調べれば、130以上になる確率がわかります。

上表のように0.1587になりました。

従って、需要が130以上になる確率は15.87%ということになります。

これは、在庫が130しかなければ15.87%の確率で欠品するということです。

違う言い方をすれば、欠品率が15.87%になるような安全在庫は130ということです。

 

では欠品率が10%になるような安全在庫はいくつでしょうか?

それには確率が10%になるようなtの値(安全係数)を検索します。

標準正規分布表を見ると10%ちょうどはないので、それに近い値を検索します。

すると、下図のようにt=1.29で10%になります。

 

つまり、平均100から30×1.29≒39だけ多く在庫を持っておけば、欠品率10%の安全在庫になります。

これが安全在庫理論における欠品率の考え方です。

 

実運用でよく使う欠品率

これに対して、私たちがよく使う欠品率は次のようなものではないでしょうか?

  • 欠品になった日数/総日数
  • (総オーダー数―すべてのSKUが満たされたオーダー数)/総オーダー数

 

欠品になった日数/総日数

まず1)について見ていきましょう。

これはSKUごとに計算する指標です。

欠品率、つまり安全係数はSKUごとに設定しますので、その意味では理にかなった指標といえます。

一ヶ月ごとにデータを取るのであれば、30日稼働日の中で欠品になった日が1日であれば欠品率は3.3%になります。

 

(総オーダー数―すべてのSKUが満たされたオーダー数)/総オーダー数

こちらはすべてのSKUについて併せて考えます。

扱っているSKU数が100で、オーダーが一ヶ月で1万オーダーあったとします。

この1オーダーの中で、どれか1つのSKUでも欠品になったら、そのオーダーはNGです。

NGオーダー数=総オーダー数―すべてのSKUが満たされたオーダー数

このNGオーダー数の総オーダー数に対する割合が、この場合の欠品率です。

感覚的にわかるように、この2)の欠品率は1)の欠品率よりも大きな値になります

 

欠品率の違いをシミュレーション

安全在庫理論で使う欠品率と、よく使う欠品率2つ、合計3つの欠品率を見てきました。

よく使う欠品率2つが全く異なる値になることは容易に想像がつきますが、安全在庫理論で使う欠品率欠品になった日数/総日数で定義される欠品率がどのくらい異なる値になるのかは容易には想像できません。

そこで具体例を使って、これをシミュレーションしてみましょう。

シミュレーションには【サンプル付き】最低発注ロットを考慮した在庫シミュレーションの作り方 by Excel VBAで作ったソフトを使います。

【サンプル付き】最低発注ロットを考慮した在庫シミュレーションの作り方 by Excel VBA

 

あるSKUについて1月1日から8月31日までの需要は下図の通りです。

 

週に1回の定期発注、発注してから納品されるまでのリードタイムが5日最低発注数量が100のとき、欠品率が5%になるように安全在庫を設定した場合のシミュレーションをしてみましょう。

条件設定画面には下記のように入力します。

 

また、1月1日から2月14日までの需要データから平均と標準偏差を計算して、それを使って2月15日から8月31日までの安全在庫を計算するものとします。

結果は次のようになりました。

 

よく使われる欠品率

この期間に1日だけ欠品していることがわかります。

よく使われる欠品率では

欠品になった日数/総日数

=1/198

=0.5%

となります。

条件設定した欠品率5%よりも大幅に小さな値になっています

 

安全在庫理論における欠品率

では安全在庫理論における欠品率はどうなるでしょうか?

下図は欠品した日の前後における発注量や在庫量の推移を抜粋したものです。

 

4月11日に7800個が発注されています。

これで4月12日から23日までの12日間の需要を賄わないといけません

なぜでしょうか?

発注間隔が7日ですので、次の発注日は4月18日です。

そしてこの日に発注する数量は23日まで納品されません(リードタイムが5日だから)。

ですので、4月11日の発注量で4月23日までの需要を賄う必要があるのです。

 

そしてこの発注量は次のように計算されています。

適正発注量=在庫補充目標量-現在庫量

=安全在庫+需要予測在庫-現在庫量

=√(N+M)*標準偏差*安全係数+(N+M)*1日あたりの売上平均―現在庫量

N:発注してから在庫が補充されるまでのリードタイム(日)

M:発注間隔(日)

適正在庫にするための計算式【リードタイムや発注サイクルが長い場合】

このように、安全在庫を基に計算されています。

そしてこの安全在庫はリードタイム(5日)や発注間隔(7日)を考慮しながら欠品率が5%になるように調整されています。

ですので、

安全在庫理論における欠品率=毎回の発注量が次の12日間の需要を賄うことに失敗する確率

ということができます。

 

今回のシミュレーションでは、198日の間にこの12日間のサイクルが198÷12=16.5含まれています。

そしてこのうち失敗だったサイクルは1回だけです。

つまり、失敗した確率は1÷16.5=6%です。

これは安全係数を計算する前提で使った欠品率5%とほぼ一致していますね。

 

まとめ

  • 安全在庫を計算する前提である欠品率は、発注サイクルごとに計算される発注量が、発注サイクル+リードタイムの期間の需要を賄うことに失敗する確率
  • この欠品率は失敗回数÷(総日数÷サイクル数)で計算されるため、失敗回数÷総日数で計算されるよく使われる欠品率は小さくなる
  • (総オーダー数―すべてのSKUが満たされたオーダー数)/総オーダー数で計算される欠品率は、複数のSKUのうちいずれかが欠品になれば失敗オーダーとカウントされるため、失敗回数÷総日数で計算される欠品率より大きくなる