コストと欠品のバランスをとる発注点はどれか?
需要が不確かな12か月分の在庫モデルでは、発注点を180個から250個に上げると、年間コストは平均で345増え、欠品が1回以上起きる年の確率は28.0%から5.1%に下がります。モンテカルロシミュレーションなら、同じ需要のもとで、この両方を方針ごとに測れます。最適な発注点とは、増える保管コストが、防げる欠品に見合う発注点です。
発注点180個の方針の年間コストは平均2,133です(Excelファイルの通貨単位。通貨は特定されていません)。120個に下げても節約できるのは年28だけで、欠品が起きやすくなります(70.0%)。1回の発注量を400個から600個に増やすと、コストは高いほうの発注点とほぼ同じですが、欠品の確率はなお21.6%残ります。
モデル
Excelファイルは、シートPlan1枚の月次在庫計画です。MINやIFなどの通常の数式だけで、アドインの関数は使っていません。方針とコストは先頭にあります。
発注点B1 | 180個 |
|---|---|
発注量B2 | 400個 |
保管コストB3 | 月末に残った1個あたり0.5 |
販売機会損失コストB4 | 満たせなかった需要1個あたり8 |
発注コストB5 | 1回の発注あたり150 |
期首在庫B6 | 400個 |
月次需要B10:M10 | 負の二項分布、n = 8、p = 0.05:平均152個、標準偏差55.1(Excelファイルではなくxellstormで設定) |
その下に、12か月それぞれの列(B〜M列)があり、在庫の動きを追います。需要、期首在庫、入荷数と利用可能数、販売数と失われた数、販売後の在庫と期末在庫、発注、その月のコストです。毎月末に、残った在庫が発注点を下回っていれば、発注量どおりの注文が出て、翌月の初めに届きます。在庫で満たせない需要は、バックオーダーにならず失われます。1か月のコストは、残った在庫にかかる保管コスト、売れなかった1個ごとの販売機会損失コスト、発注したときの発注コストからなります。
年の合計を求めるセルは3つです。Total cost(総コスト、B21)、年間需要のうち在庫で満たした割合であるfill rate(充足率、B22)、months with lost sales(販売機会損失が出た月数、B23)です。ここでの欠品とは、需要が利用可能な在庫を上回って一部の販売が失われる月、欠品のある年とは、そうした月が1か月以上ある年です。
ダウンロードできるファイルには、需要の行に固定の仮の需要を入れた計画が入っています。需要分布、3つの出力、欠品の目標、3つの代替方針はxellstorm側にあり、サンプルを開くと読み込まれます。Excelファイル自体は、ふつうに作ったままです。
需要:毎月、負の二項分布に従う個数
各月の需要(Plan!B10:M10)は、n = 8、p = 0.05の負の二項分布から、月ごとに独立に引きます。パラメーター化はscipy方式(n回目の成功までの失敗の回数)です。平均はn(1 − p)/p = 月152個、標準偏差は√(n(1 − p))/p = 55.1です。在庫品の需要は個数であり、ポアソン分布の個数よりばらつきが大きいことがよくあります。ここでは、平均が同じポアソン分布なら標準偏差は12.3にしかなりません。負の二項分布は、その余分なばらつきを織り込め、正規分布と違って需要がマイナスにならず、高い側に裾が長くなります。
シミュレーションした60,000か月(12か月の年を5,000年分)の平均は152.0個、標準偏差は55.1で、数式の値と一致します。各月は独立で、トレンドも季節性もありません。需要が推移していく場合は、ランダムウォークや平均回帰する系列など、範囲に使える時系列入力もxellstormにあります。
4つの方針を同じ需要で比べる
この例では、基準方針(発注点180個、発注量400個)を、1つのセルだけを変えた3つのシナリオ(発注点120個、発注点250個、発注量600個)と比較します。どのシナリオも、基準と同じ5,000年分の需要で実行します。この手法を同じ乱数といい、方針どうしの違いは乱数の運ではなく方針そのものから生じます。
| 方針 | 平均コスト | P90コスト | 充足率 | 欠品のある年 |
|---|---|---|---|---|
| 基準方針 | 2,133 | 2,377 | 99.4% | 28.0% |
| 発注点120 | 2,105 | 2,688 | 97.4% | 70.0% |
| 発注点250 | 2,478 | 2,668 | 99.9% | 5.1% |
| 発注量600 | 2,465 | 2,727 | 99.5% | 21.6% |
P90は、シミュレーション年の90%がそれ以下に収まる年間コスト、充足率は全年の平均です。充足率はどれも高く見えます(97.4%〜99.9%)が、欠品のある年の確率は5.1%から70.0%まで開いています。充足率は個数で数え、欠品の月が失うのは通常、年間需要のごく一部だけです。欠品の確率は、客を1回以上断った年を数えます。どちらが重要かは事業によるので、両方を見てください。
コストの内訳
各年のコストは、毎月末に残る在庫の保管、発注、在庫切れで失う販売の3つからなります。
発注点を高くすると、手元の在庫が増えます。250では、保管コストが年397増えるのに対し、販売機会損失の減少は84にすぎないため、1個あたり8の販売機会損失コストだけでは元が取れません。発注点を高くする根拠は、欠品がそれ以外にもたらすコストです。
発注量を増やした場合は、効き方が違います。1回600個の発注では、年間の発注回数は4.5回ではなく平均3.1回で、発注コストは203減りますが、保管コストが562増えます。発注が減ると、在庫が発注点のすぐ上にあるのに入荷予定がない月は減りますが、そうした月1つ1つの危うさは以前とほぼ同じです。1か月をそのまま持ちこたえる在庫の量を決めるのは、発注量ではなく発注点です。
追加コストで何が得られるか
モデルはすでに、失った需要1個ごとに8を計上しています。欠品がそれ以上のコスト(たとえば特急配送、違約金、他社に流れる顧客)を生む場合は、各方針の追加コストを、それで避けられる欠品月の数で割ると、欠品月を1回避けるコストがわかります。
- 発注点250は、年345余計にかかり、欠品月を年平均0.27か月避けられます(0.32か月から0.05か月へ)。欠品月1回が、販売機会損失に加えて1,291を超えるコストになるなら、元が取れます。
- 発注点120は、年28(1.3%)節約できますが、欠品月が年0.75か月増えます。欠品月1回が、販売機会損失に加えて37未満のコストである場合に限り、元が取れます。
- 発注量600は、年333余計にかかり、欠品月を年0.09か月避けられます。避けた欠品月1回あたり3,816です。ほぼ同じ追加コストで、発注点を高くしたほうは0.27か月避けられます。
つまり、答えはExcelファイルにない1つの数字、欠品月が販売機会損失以外にもたらすコストで決まります。欠品月が、販売機会損失に加えて37から1,291のコストなら、基準の発注点180が4つの方針で総コストが最も低くなります。1,291を超えるなら発注点250、37を下回る場合に限って発注点120です。発注量を増やす方針が最良になることはありません。
安全在庫:発注点のうち平均的な月を上回る分
発注のない月の末には、残った在庫が翌月の1か月分を単独で賄わなければなりません。最も早い入荷は翌々月の初めだからです。そのため発注点は1か月分の需要を賄う必要があり、平均的な月の需要152個を上回る部分が安全在庫です。基準の発注点180では28個(月次需要の標準偏差の0.51倍)、250では98個(標準偏差の1.78倍)です。発注点120は平均的な月より32個低く、そのため欠品が起きやすくなります。
教科書の式は、安全在庫 = z × σです。σは発注が賄うべき期間(ここでは1か月)の需要の標準偏差で、zは、1回の補充サイクルで在庫が尽きる確率として許容する値から、正規分布表で求めます。シミュレーションは、結果を直接測ります。欠品が起きる年の頻度、充足率、コストを、偏っていてマイナスにならない需要のもとで求めます。
同じ需要で、年ごとに比べる
どの方針も同じ需要を見ているので、年を1つずつ比べられます。発注点120は、59.5%の年で基準より安く、差の中央値は150の節約です。しかし30%の年ではコストが高く、最大で2,989高くなります。そうした年はどれも、1個あたり8で、基準より多くの販売を失っています。
この右に長い裾があるため、平均コストが最も低い方針は、3つの発注点の中でP90が最も高くなります。2,688で、基準は2,377、発注点250は2,668です。P90で測ると、平均で最も安い方針が、3つのうち最も高くつきます。
この対応づけで、充足率も比べやすくなります。発注点250は、5,000年のどの年でも基準以上の充足率で、23.7%の年では基準を上回ります。発注点120が基準を上回る年はありません。発注量を増やす方針はそこまで明確ではなく、7.2%の年で充足率が下がります。他の月で在庫が少なくなり、ときには需要の多い月の直前になるためです。
試してみる
- xellstormでモデルを開きます。需要の範囲、3つの出力、目標(販売機会損失のある月数が0を超える)、「Reorder at 120」「Reorder at 250」「Bigger orders」という3つのシナリオは設定済みです。インストールも登録も不要で、Excelファイルはブラウザー内で計算します。
- 実行します。最初に基準を、次に各シナリオを、同じ乱数・同じ試行回数で実行します。サンプルのシード(1)と5,000回の試行なら、このページと同じ数値が出ます。
- 「Results」ステップで、「Total cost」「Fill rate」「Months with lost sales」のいずれかを選びます。「Scenarios」パネルは各方針のS字カーブを同じ軸に描き、表には、平均、P10、P90、目標(販売機会損失のある月数)の確率、基準との差、各シナリオが基準より高い・低い試行の割合が出ます。「Trial by trial」パネルでは、シナリオのコストを基準のコストと試行ごとに比べられます。
- 「Distributions」ステップでシナリオの発注点を変えて、再実行します。発注点の全範囲を一度に見るには、「Optimize」ステップで「Sweep」を選び、発注点のセル(
Plan!B1)を決定変数にして、Total costの平均と、販売機会損失のある月数が0を超える確率を統計量に加えます。
普通のExcelでもできますか?
一部はできます。Excelには負の二項分布の確率を求めるNEGBINOM.DISTはありますが、そこから乱数を引く逆関数がないため、各月の需要には回避策が必要です。累積確率の参照表とRAND()を組み合わせる方法や、nが整数なら、n個の幾何分布の乱数の和を使う方法があります。同じ需要で方針を比べるには、発注点を切り替える前に、その乱数を値として貼り付けるなどして固定する必要もあります。Excelでのモンテカルロシミュレーションで一般的な方法と、ツールにモデルを実行させると何が変わるかを紹介しています。
よくある質問
発注点とは?
発注点とは、新たな発注の引き金になる在庫水準で、在庫がこれを下回ったら追加で発注します。発注品が届くまでに見込まれる需要に加えて、平均を上回る需要に備えるバッファー、つまり安全在庫を賄う必要があります。このモデルでは、在庫の確認は毎月末だけで、発注品は翌月の初めに届きます。発注しなかったときの残り在庫は1か月丸ごともたせる必要があるので、発注点は1か月分の需要を賄います。
充足率と欠品の確率はどう違いますか?
充足率は、ある期間の需要のうち在庫で満たした割合です。欠品の確率は、在庫が1回以上尽きる期間の割合です。両者が食い違うことがあります。このモデルでは、基準方針の充足率は99.4%ですが、欠品月のある年の確率は28.0%あります。
平均コストが最も低い方針を選べばよいのでは?
平均コストに含まれるのはExcelファイルにあるコストだけで、悪い年がどれほど悪いかはわかりません。ここで平均コストが最も低い発注点120は、欠品のある年の確率が70.0%で、3つの発注点の中でP90コストが最も高くなります。平均とあわせて、P90(P50、P80、P90を参照)と欠品の確率を確認してください。
「同じ乱数」とは?
同じ乱数とは、すべてのシナリオを同じ乱数で実行することで、ここでは同じ5,000年分の月次需要です。シナリオどうしの違いはシナリオ自体から生じ、実行ごとの運の違いにぼかされることなく、試行ごとに比べられます。xellstormはすべてのシナリオをこの方法で実行します。
発注量そのものはどう選びますか?
発注量は、発注点と同じく、需要が不確かな中での意思決定です。この例のように繰り返す方針では、数量をシナリオとして比べるか、「Optimize」ステップでスイープします。そこでは、発注点と発注量のように2つの決定変数を同時にスイープすることもできます。販売シーズンの前に1回だけ発注する場合は、需要が不確実なとき何個発注すべきかをご覧ください。
関連ページ
- 発注量
需要が不確実なとき、何個発注すべきか?
需要は平均1,000個(標準偏差200)、1個あたりの価格10、原価4、処分価格1の場合、臨界比による発注量は1,086.1個、モンテカルロ探索では1,090個になります。 - ガイド
P50・P80・P90の意味と、予算を組む水準の選び方
P80は、シミュレーション結果の80%がそれ以下に収まるコストです。建築プロジェクトのコスト項目6つのP80を足し合わせると2,843になりますが、実際に合計のP80を求めると2,756です(USD千)。 - ガイド
Excelでモンテカルロシミュレーション:アドインあり・なしの3つの方法
Excelモデルでモンテカルロシミュレーションを実行する3つの方法:RAND()とデータテーブル、アドイン、アドイン不要のブラウザーツール。PERT分布の数式付き。
xellstormは、Excelモデル向けのブラウザー型モンテカルロシミュレーションツールです。アドインは不要で、Excelファイルがパソコンの外に出ることはありません。