xellstorm
ZH
開啟應用程式

哪個再訂購點能在成本與缺貨之間取得平衡?

實作範例 · 庫存政策 · 更新於 2026年10月

在這個有 12 個月不確定需求的庫存模型中,把再訂購點從 180 件提高到 250 件,平均每年多花 345,一年中至少缺貨一次的機率則從 28.0% 降到 5.1%。蒙地卡羅模擬在同樣的需求下逐一策略衡量這兩者:最佳的再訂購點,是多出的持有成本抵得上所避免之缺貨的那一個。

再訂購點 180 件時,這個策略平均每年成本為 2,133(以 Excel 檔案的貨幣單位計,檔案沒有指明幣別)。降到 120 件,每年只省 28,缺貨卻變得很可能(70.0%)。每次訂購 600 件而不是 400 件,成本與較高的再訂購點相當,缺貨機率仍有 21.6%。

模型

Excel 檔案是一份一般的逐月庫存計畫,放在一張工作表 Plan,用 MIN、IF 這類一般公式,沒有增益集函數。策略與成本列在最上方:

Excel 檔案中的策略與成本(工作表 Plan),以及在 xellstorm 中設定的需求
再訂購點 B1180 件
訂購量 B2400 件
持有成本 B3每月底每剩一件 0.5
缺貨損失成本 B4每件未滿足的需求 8
訂購成本 B5每筆訂單 150
期初庫存 B6400 件
每月需求 B10:M10負二項分配,n = 8、p = 0.05:平均值 152 件,標準差 55.1(在 xellstorm 中設定,不在 Excel 檔案裡)

往下,12 個月各占一欄(B 至 M),逐欄追蹤庫存:需求、期初庫存、到貨與可用件數、售出與損失件數、銷售後剩餘庫存與期末庫存、當月下單量,以及當月成本。每個月底,剩餘庫存若低於再訂購點,就發出一筆訂購量的訂單,下個月初到貨。庫存滿足不了的需求就流失,不會延後補交。每月成本包括:剩餘庫存的持有成本、每件未售出的缺貨損失成本,以及下單時的訂購成本。

三個儲存格彙總全年:總成本(B21)、填充率(B22,全年需求由庫存滿足的比例),以及發生缺貨損失的月數(B23)。這裡的缺貨是指某個月需求高於可用庫存,有部分銷售流失;有缺貨的年度,就是至少有一個這種月份的年度。

下載的檔案有這份計畫,需求列放的是固定的預留值。需求分配、三個輸出、缺貨目標與三個替代策略,都在 xellstorm 裡設定,隨範例一起載入,放在 Excel 檔案旁邊;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 個模擬月(5,000 年,每年 12 個月)平均 152.0 件,標準差 55.1,與公式相符。各月彼此獨立:沒有趨勢,也沒有季節性。需求若會漂移,xellstorm 另有範圍的時間序列輸入,例如隨機漫步或均值回歸序列。

相同需求下的四種策略

範例拿基準策略(再訂購點 180、訂購量 400)與三個情境比較,每個情境只改一個儲存格:再訂購點 120、再訂購點 250,以及每次訂購 600 件。每個情境都和基準用同樣 5,000 年的需求,這種做法叫共同亂數,所以策略之間的差異來自策略本身,不是抽到的運氣。

相同 5,000 個模擬年需求下的四種策略(每年成本)
策略平均成本P90 成本填充率缺貨年度
基準策略2,1332,37799.4%28.0%
再訂購點 1202,1052,68897.4%70.0%
再訂購點 2502,4782,66899.9%5.1%
訂購量 6002,4652,72799.5%21.6%
各策略發生缺貨年度的機率5,000 個模擬年度中,至少有一個月發生缺貨損失的比例:基準策略 28%、再訂購點 120 為 70%、再訂購點 250 為 5.1%、訂購量 600 為 21.6%。基準策略28%再訂購點 12070%再訂購點 2505.1%訂購量 60021.6%
至少有一個月發生缺貨損失的模擬年度所占比例。基準策略在 180 件時再訂購,每次訂購 400 件。

P90 是有 90% 的模擬年度不超過的年成本,填充率則是各年度的平均。填充率看起來都很高,從 97.4% 到 99.9%,缺貨年度的機率卻從 5.1% 到 70.0%。填充率以件數計算,缺貨月通常只損失全年需求的一小部分;缺貨機率算的是至少有一次讓顧客買不到貨的年度。哪一個更重要要看業務,所以兩個都要看。

成本花在哪裡

每年的成本有三部分:持有每月底剩下的庫存、下訂單,以及庫存用完時流失的銷售。

各策略的年成本去向平均年成本拆分為持有、訂購與缺貨損失:基準策略:持有 1,364、訂購 671、缺貨損失 97、合計 2,133;再訂購點 120:持有 1,071、訂購 635、缺貨損失 398、合計 2,105;再訂購點 250:持有 1,762、訂購 703、缺貨損失 14、合計 2,478;訂購量 600:持有 1,926、訂購 468、缺貨損失 71、合計 2,465。持有訂購缺貨損失基準策略2,133再訂購點 1202,105再訂購點 2502,478訂購量 6002,465
每個模擬年度的平均成本:持有每月底剩餘的庫存、下訂單,以及庫存用完時損失的需求。

再訂購點高,手邊就留更多庫存。在 250 時,持有成本每年增加 397,缺貨損失卻只減少 84,所以單靠每件 8 的缺貨損失成本,抵不了這筆開銷:高再訂購點划不划算,要看缺貨除此之外還有多大代價。

加大訂購量的作用不同。每次訂購 600 件,全年平均要下 3.1 次訂單,而不是 4.5 次,訂購成本省下 203,持有成本卻增加 562。訂單變少,庫存剛好略高於再訂購點、又沒有貨在路上的月份也變少,但每個這樣的月份承受的風險和先前差不多:決定有多少庫存得獨自撐過一個月的,是再訂購點,不是訂購量。

多花的成本換來什麼

模型已對每一件流失的需求計價 8。若缺貨的代價比這更高,例如趕工運送、罰款,或顧客轉向他處,就把各策略多花的成本,除以它所避免的缺貨月數,看避免一個缺貨月要花多少:

所以答案取決於 Excel 檔案裡沒有的一個數字:缺貨月在缺貨損失之外的代價。這項代價若介於 37 與 1,291 之間,基準再訂購點 180 是四種策略中總成本最低的;高於 1,291,則是再訂購點 250;只有低於 37,才輪到再訂購點 120。加大訂購量從來不是最佳選擇。

安全庫存:高於平均月需求的再訂購點

月底沒下訂單時,剩下的庫存得獨自撐過整個下個月:最早的到貨在下下個月初。所以再訂購點要涵蓋一個月的需求,高於平均月需求 152 件的部分就是安全庫存:基準再訂購點 180 時為 28 件,即 0.51 個月需求標準差;250 時為 98 件(1.78 個標準差)。再訂購點 120 比平均月需求低 32 件,缺貨因此很容易發生。

教科書公式是安全庫存 = z × σ,σ 為訂單所需涵蓋期間(這裡是一個月)內需求的標準差,z 則依願意接受的、一個補貨週期內缺貨的機率,從常態分配表查出。模擬直接衡量後果:在偏態又不會為負的需求下,一年缺貨的頻率、填充率與成本。

相同需求,逐年比較

每個策略面對的需求都相同,所以各年度可以一年一年比。再訂購點 120 在 59.5% 的年度比基準便宜,差額中位數為節省 150。但在 30% 的年度成本較高,最多高出 2,989:這些年度它流失的銷售都比基準多,每件 8。

再訂購點 120 的成本減去基準策略的成本,逐年比較5,000 個模擬年度中,再訂購點 120 與基準策略在相同需求下的年成本差異直方圖。差異中位數 −150;120 在 30% 的年度成本較高,最多高出 2,989。01,0002,0003,000中位數 −150120 時成本較高
每根長條統計模擬年度數,依再訂購點 120 的年度成本比基準策略多(右)或少(左)多少來分組,需求相同。醒目標示的是 120 成本較高的年度;成本相同的年度在線旁邊的一般長條。

成本分配的右側拖得很長,所以三個再訂購點中平均成本最低的,P90 反而最高:2,688,基準為 2,377,再訂購點 250 為 2,668。以 P90 衡量,平均成本最低的策略在三者中反而最貴。

同樣的配對,也讓填充率很容易比較。再訂購點 250 在 5,000 年的每一年,填充率都至少和基準一樣高,其中 23.7% 的年度更高;再訂購點 120 的填充率從未高於基準。加大訂購量就沒那麼明確:它在 7.2% 的年度拉低了填充率,因為庫存會在其他月份偏低,有時恰好在需求高的月份之前。

親自試試

  1. 在 xellstorm 開啟模型。需求範圍、三個輸出、目標(發生缺貨損失的月數大於零)與三個情境(在應用程式中名為 Reorder at 120、Reorder at 250 與 Bigger orders,即「再訂購點 120」、「再訂購點 250」與「較大訂購量」)都已設好;不必安裝,也不必註冊,Excel 檔案直接在瀏覽器計算。
  2. 執行看看。先跑基準,再用相同的亂數與相同的試驗次數跑各個情境。用範例的亂數種子(1)與 5,000 次試驗,就會得到本頁的數字。
  3. 在 Results 步驟選擇 Total cost、Fill rate 或 Months with lost sales。Scenarios 面板會把各策略的 S 曲線畫在同一組座標軸上,表格列出平均值、P10、P90、目標的機率(針對發生缺貨損失的月數)、與基準的差異,以及各情境高於或低於基準的試驗所占比例。Trial by trial 面板則能逐次試驗,把某個情境的成本與基準的成本對照。
  4. 在 Distributions 步驟改某個情境的再訂購點,再執行一次。要一次看一整段範圍的再訂購點,就用 Optimize 步驟:選擇 Sweep,把再訂購點儲存格(Plan!B1)設為決策,再加入 Total cost 的平均值,以及發生缺貨損失的月數大於零的機率作為統計量。

只用 Excel 也做得到嗎?

部分做得到。Excel 有計算負二項機率的 NEGBINOM.DIST,卻沒有可用來抽樣的反函數,所以每個月的需求都得變通,例如用 RAND() 搭配累積機率查詢表,或在 n 為整數時,加總 n 個幾何分配的抽樣值。要在相同的需求上比較各策略,還得先把這些亂數固定下來(例如貼成值),再切換再訂購點。Excel 蒙地卡羅模擬說明一般的做法,也說明交給工具執行後有哪些不同。

常見問題

什麼是再訂購點?

再訂購點是觸發新訂單的庫存水準:庫存降到它以下,就要再訂購。它要涵蓋訂單到貨前預期的需求,再加上應付高於平均需求的緩衝,也就是安全庫存。在這個模型中,庫存只在每月底檢查,訂單於下個月初到貨,所以沒下訂單時剩下的庫存得撐過整整一個月:再訂購點要涵蓋一個月的需求。

填充率與缺貨機率有何差別?

填充率是一段期間內由庫存滿足的需求比例;缺貨機率則是庫存至少用完一次的期間所占比例。兩者說的可能不同:在這個模型中,基準策略的填充率為 99.4%,發生缺貨月的年度機率仍有 28.0%。

為什麼不直接選平均成本最低的策略?

平均成本只計入 Excel 檔案裡的成本,看不出不利的年度有多糟。這裡平均成本最低的再訂購點 120,缺貨年度的機率為 70.0%,在三個再訂購點中 P90 成本最高。除了平均值,請一併查看 P90(請參閱 P50、P80 與 P90)與缺貨機率。

什麼是共同亂數?

共同亂數,就是所有情境都用同一組亂數,這裡是相同的 5,000 年每月需求。情境之間的差異因此來自情境本身,可以逐次試驗比較,不會被各次執行不同的運氣模糊。xellstorm 每個情境都這樣執行。

訂購量本身該如何選擇?

訂購量和再訂購點一樣,是需求不確定下的決策。像這種循環補貨的策略,可以把各種訂購量當成情境比較,或在 Optimize 步驟掃描,兩個決策儲存格(例如再訂購點與訂購量)還能一起掃描。銷售季前的單次訂購,請參閱 需求不確定時該訂購多少件。

相關內容

xellstorm 是在瀏覽器中執行的 Excel 模型蒙地卡羅模擬工具:免裝增益集,Excel 檔案也不會離開您的電腦。