私たちは、導入チュートリアルを公開しました。このチュートリアルでは、予測需要、需要の不確実性、リードタイム、およびその他の要素に基づいて再発注点を計算するために使用される式を提供しています。

この「古典的な」安全在庫計算には、需要に関するいくつかの重要な仮定があります。私たちはすでにリードタイムの変動を扱う方法について投稿しています。さらに、古典的な式にはもう1つの暗黙の仮定があります: バイヤーは独立していると仮定されています

最近、教室に大量の商品を頻繁に販売する会社からの問い合わせを受けました。ほとんどの販売は単品注文ですが、時折、教室全体の20〜30個の商品をまとめて注文することがあります。以下のグラフは、断続的な大量購入による販売パターンを示しています。

免責事項: 数字は簡単のためにでっち上げられており、一部の結果は大まかに近似されています

これらの12ヶ月間で、2つのパターンが見られます:

  • 平均して月間13注文の単品注文。
  • 平均して30以上の注文の断続的な大量販売。

平均月間販売数は23注文ですが、大量注文の要素を除くと、平均購入数は月間13注文に減少します。

では、この状況での「適切な」安全在庫は何でしょうか?典型的な設定で古典的な安全在庫計算を考慮すると、再発注点はおおよそ30個に設定されます: 月間平均23注文に、需要の不確実性をカバーする安全在庫が加わったものです。30個の大量購入は、わずか数個の商品が不足する可能性が非常に高いです。

しかし、古典的な安全在庫計算は最適ではありません: ここでは、個々の購入に対応するために必要なアイテムの約2倍の数を保管することになりますが、安全在庫は大量購入をカバーするには十分ではありません。

大量購入に対応するためには、安全在庫計算を改善する必要があります。簡単のために、大量購入パターンを後で安全在庫計算に再統合する「単一の要素」としてモデル化することにします。

販売の「大量性」を反映するために、販売される各商品の**「最大の」購入数**を考慮することができます。ただし、この値は統計的な意味で頑健ではありません。単一の非常に大きな過去の購入が結果を完全に歪める可能性があるためです。

代わりに、すべての注文が最小数量から最大数量まで順に並べられた上記の図で示されるように、大量注文数量の分布の分位数を考慮するべきです。

この安全在庫分析では、分位数値には自然なフィットがあります。それは、古典的な安全在庫計算で定義されるように、ストックアウトが発生しない確率であるサービスレベルと等しくするべきです。

確率_Q_ に関連する大量購入数量を y``Q と呼びましょう(この図では y``Q = 30)。技術的には、y``Q は分位数_Q_での売上関数の逆累積分布です。リオーダーポイントの計算は次のようになります:

R = D + MAX(σL * cdf(P); y``Q``)

ここで、σL * cdf(P) は需要の不確実性に基づいて計算された_安全在庫_です。

Excelで y``Q を計算するのは少し手間がかかります。逆累積分布のPERCENTILE関数に相当するものがないため、ヒストグラムスキームまたはVBAマクロに頼る必要があります。

以下にExcelの_ICMD_ユーザー定義関数を貼り付けます。この関数は、売上注文がExcelの範囲にリストされ、昇順でソートされていることを前提として、y``Qの計算を行います。

’ 逆累積分布
Function ICMD(r As Range, q As Double)
    ’ 合計を計算する
    Dim s As Double
    For Each c In r
        s = s + c.Value
    Next
    ’ 閾値を見つける
    Dim a As Double
    For Each d In r
        a = a + d.Value
        If a >= (q * s) Then
            ICMD = d.Value
            Exit For
        End If
    Next
End Function

この改良された式をサンプルデータに適用すると、リオーダーポイント R = 13(需要予測)+ 30(大量数量)= 43 となり、在庫をできるだけ低く保ちながら、大量購入に対応するのに十分な高い確率で対応できます。

特定のビジネス制約もありますか?お知らせください。Salescastを調整して、ビジネスにより適したものにすることができます。


リーダーコメント(1)

私の取引でも同様の問題があります。非常に興味深い記事です。 8年前 | Martin