
安全庫存是為了「補貨還沒到、需求又突然變多」而多留的一份緩衝量。最常用的統計公式是 安全庫存 = Z × σ × √L:Z 是你想要的不缺貨機率對應的係數,σ 是每天用量的標準差,L 是補貨前置天數。算出安全庫存之後,再加上前置期間的平均用量,就是該下單的那條線,也就是再訂購點。
我們在規劃營運系統的庫存功能時,一定會請客戶把每個料號的安全庫存列出來。最常拿到的答案是一整欄都填「兩週」,或乾脆空白,理由是「我們都看經驗」。經驗在品項少的時候管用,品項一多、供應商一換、旺季一來,同一套經驗就開始一邊斷貨、一邊壓著賣不掉的貨。
這篇用同一個料號,把三種常見算法從頭算一遍,附上 Excel 欄位與公式,再整理最常見的設定錯誤,以及什麼時候該把這件事交給系統。如果你要的是整套物料計畫(BOM 展開、每週淨需求),先看 MRP 物料需求規劃怎麼算;想挑整套庫存工具,看 庫存管理系統怎麼選。
安全庫存、再訂購點、最低庫存差在哪:先看這張表
先講結論:安全庫存是「不准動用的緩衝」,再訂購點是「該下單的那條線」,兩者常被混成同一個數字。下面這張表把採購和倉管最常講混的五個詞放在一起。
名詞 | 白話意思 | 怎麼算 | 拿來做什麼 |
|---|---|---|---|
安全庫存 | 補貨期間需求變多、交貨變慢時,用來撐住的緩衝量 | 固定天數、最大用量法或 Z × σ × √L | 決定緩衝要留多少 |
再訂購點(ROP) | 可用庫存掉到這個數字就該下單 | 日均用量 × 前置天數 + 安全庫存 | 觸發補貨提醒 |
最低庫存 | 很多公司拿來當「低於就叫貨」的數字,定義各家不一 | 常直接等於安全庫存或再訂購點 | 要先講清楚指的是哪一個 |
最高庫存 | 補貨後最多補到哪裡,避免囤貨 | 再訂購點 + 一次訂購量,或依倉位上限 | 限制資金與倉位 |
經濟訂購量(EOQ) | 一次訂多少,下單成本加保管成本最低 | √(2 × 年需求 × 每次下單成本 ÷ 每件年保管成本) | 決定每次訂多少 |
「最低庫存」是最容易出事的一個。有的公司把它當安全庫存,低於就算緊急;有的公司把它當再訂購點,低於才開始叫貨。兩種用法差了整整一個前置期間的用量,在系統裡設錯欄位,提醒就會晚一個交期才響。導入任何系統前,先在內部統一這幾個詞。
安全庫存要跟「可用量」比,不能跟帳上在庫比
再訂購點要拿來比的,是扣掉已被訂走、已被保留、品質待驗之後真正能出的量,再加上已下單還沒到的在途量。帳上有 500 件、其中 300 件已經被客戶訂走,你真正能用的只有 200 件。拿 500 件去跟再訂購點比,提醒永遠不會響。
可用量要每天重算這件事,我們做過同型的營運系統:在 影視器材租賃與檔期系統 裡,每一天的可租量都動態算成「總量 − 當日維修 − 報廢 − 已預訂 − 外調」,排單前先偵測檔期衝突。租賃和買賣的庫存邏輯不同,但「先算對可用量,再談警戒線」這個順序是一樣的。
安全庫存公式:三種算法,用同一個料號算一遍
簡單講,三種算法的差別在你手上有多少資料。只知道大概用量,用固定天數法;有最大值和平均值,用最大用量法;有每天的出貨紀錄和交期紀錄,用統計公式。下面全部用同一個料號試算,數字可以直接對照。
假設一家批發商的某款熱銷品,過去 90 天的資料整理如下:
項目 | 數字 | 從哪裡來 |
|---|---|---|
平均日需求 d̄ | 40 件 | 近 90 天出貨量 ÷ 90(沒出貨的日子算 0) |
日需求標準差 σd | 12 件 | 近 90 天每日出貨量的標準差 |
最大日需求 | 70 件 | 近 90 天出貨最多的那天 |
平均前置時間 L | 9 天 | 近半年每張採購單從下單到入庫的實際天數平均 |
前置時間標準差 σL | 2 天 | 同上,實際天數的標準差 |
最長前置時間 | 14 天 | 近半年最慢的那一次 |
目標服務水準 | 95% | 補貨期間不缺貨的機率,對應 Z = 1.645 |
固定天數法:安全庫存 = 日均用量 × 緩衝天數
最直覺的做法,就是決定「我要多留幾天的量」。抓 5 天的話,安全庫存 = 40 × 5 = 200 件。優點是誰都看得懂、Excel 一欄就能做;缺點是那個 5 天是拍腦袋來的,用量穩定的料和忽高忽低的料都留 5 天,前者囤太多、後者還是會斷。
庫存管理系統怎麼選 那篇用的「可能延誤天數 × 日均用量」也是這一類,差別是把緩衝天數綁在供應商實際延誤的天數上,比純憑感覺好一些。料號少、資料不齊的公司,從這裡開始完全合理。
最大用量法:用最壞情況減掉平常情況
這個算法把「最忙的那天遇上最慢的那次交貨」當成要防守的情境:安全庫存 =(最大日需求 × 最長前置時間)−(平均日需求 × 平均前置時間)。Shopify 的零售指南 列的就是這個公式。
代入數字:70 × 14 − 40 × 9 = 980 − 360 = 620 件。比固定天數法多了三倍。問題出在「最大需求」和「最長交期」同時發生的機率其實很低,這個算法等於每天都在為一年可能遇不到一次的情況備貨。它適合缺貨代價極高、單價又不高的料,例如產線一停就整條線停擺的小零件。
統計公式:安全庫存 = Z × σd × √L
有每天的出貨紀錄,就能用統計公式。它假設每天的需求大致呈常態分布,前置期間的需求波動會隨天數的平方根放大。代入數字:1.645 × 12 × √9 = 1.645 × 12 × 3 ≈ 59.2,無條件進位成 60 件。
這個版本只算了需求的波動,假設交期每次都準時 9 天。如果供應商的交期本身也會飄,就要用下面的完整版本。
需求和交期都會變:完整版公式
當需求和前置時間都有波動,公式改成 安全庫存 = Z × √(L × σd² + d̄² × σL²)。根號裡前半段是需求的波動,後半段是交期的波動乘上平均用量。這個推導在 Wikipedia 的 Safety stock 條目 有完整列出。
代入:9 × 12² = 1,296;40² × 2² = 6,400;加起來 7,696,開根號約 87.7,乘上 1.645 約 144.3,進位成 145 件。你會發現交期那一項(6,400)比需求那一項(1,296)大了快五倍。這個料號的問題主要出在供應商交期不穩,跟需求波動關係不大,要先處理的是供應商,多囤貨只是在幫供應商付錢。
算法 | 安全庫存 | 再訂購點(360 + 安全庫存) | 適合誰 |
|---|---|---|---|
固定天數法(5 天) | 200 件 | 560 件 | 資料不齊、料號少,先求有 |
最大用量法 | 620 件 | 980 件 | 缺貨代價極高、單價低的關鍵料 |
統計公式(只算需求波動) | 60 件 | 420 件 | 交期穩定、有每日出貨紀錄 |
統計公式(需求加交期波動) | 145 件 | 505 件 | 交期會飄的進口料、外包加工件 |
同一個料號,四種算法的安全庫存從 60 件到 620 件,差了十倍。所以「安全庫存設多少」這個問題,先要回答的是「我在防哪一種風險」。前置期間的平均用量 40 × 9 = 360 件在四種算法裡都一樣,差別全部出在緩衝。
服務水準怎麼選:Z 值對照與安全庫存要多付的錢
一句話:服務水準每往上加一點,安全庫存就多一截,而且越往上越貴。Z 值可以用 Excel 的 NORM.S.INV 函數 算,例如 =NORM.S.INV(0.95) 會得到 1.6449。下面用同一個料號(σd = 12、L = 9、σL = 2、d̄ = 40)換算不同服務水準:
服務水準 | Z 值 | 只算需求波動 | 需求加交期波動 | 白話意思 |
|---|---|---|---|---|
90% | 1.2816 | 47 件 | 113 件 | 十次補貨大約一次會短缺 |
95% | 1.6449 | 60 件 | 145 件 | 二十次大約一次 |
98% | 2.0537 | 74 件 | 181 件 | 五十次大約一次 |
99% | 2.3263 | 84 件 | 205 件 | 一百次大約一次 |
99.9% | 3.0902 | 112 件 | 272 件 | 一千次大約一次 |
從 95% 拉到 99%,完整版的安全庫存從 145 件變 205 件,多了 60 件。假設這款商品進價 250 元,就是多壓 15,000 元在倉庫裡,而且是永遠不動的那一層。從 99% 再拉到 99.9%,又要多 67 件。
這裡的服務水準指的是「每次補貨期間不缺貨的機率」,跟業務口中的「訂單滿足率」不同。95% 的補貨週期服務水準,實際的訂單滿足率通常更高,因為就算缺貨也多半只缺一點點。跟老闆或業務對數字時,先講清楚是哪一種,免得大家各說各話。
我們的看法是:中小企業不需要每個料號都追 99%。把服務水準當成預算分配,賺錢的主力品和會讓產線停擺的料給高一點,其他的給 90% 到 95% 就好,省下來的資金比多那幾個百分點值錢。
用 Excel 算安全庫存:欄位設計與公式
Excel 算安全庫存完全可行,關鍵在資料表要分開放。建議拆成三個工作表:「每日出貨」記每個料號每天出了多少(沒出貨也要填 0)、「採購交期」記每張採購單的下單日與入庫日、「安全庫存」做彙總計算。下面是「安全庫存」這張表的欄位與公式,假設資料從第 2 列開始:
欄位 | 內容 | 公式範例 |
|---|---|---|
A 料號 | 料號代碼 | 手動輸入或從主檔帶入 |
B 日均需求 | 近 90 天平均每天出貨量 | =AVERAGEIFS(每日出貨!C:C, 每日出貨!A:A, A2, 每日出貨!B:B, ">="&TODAY()-90) |
C 日需求標準差 | 近 90 天每日出貨的標準差 | 用樞紐或輔助欄整理成每天一筆後,=STDEV.S(該料號 90 天的出貨量) |
D 平均前置天數 | 實際下單到入庫天數的平均 | =AVERAGEIFS(採購交期!E:E, 採購交期!A:A, A2) |
E 前置天數標準差 | 實際天數的標準差 | =STDEV.S(IF(採購交期!A2:A500=A2, 採購交期!E2:E500)) |
F 服務水準 | 依 ABC 分類填 90% 到 98% | 手動輸入,例如 0.95 |
G Z 值 | 服務水準對應的係數 | =NORM.S.INV(F2) |
H 安全庫存 | 完整版公式,無條件進位 | =ROUNDUP(G2*SQRT(D2*C2^2+B2^2*E2^2),0) |
I 再訂購點 | 前置期間用量加安全庫存 | =ROUNDUP(B2*D2,0)+H2 |
J 可用量加在途 | 在庫 − 已訂走 + 已下單未到 | 從進銷存匯出後貼上 |
K 提醒 | 掉到再訂購點以下就標示 | =IF(J2<=I2,"該下單","") |
標準差用 STDEV.S,它是樣本標準差,適合拿近 90 天的資料去估整體波動。E 欄的陣列寫法在新版 Excel 直接按 Enter 就行,舊版要按 Ctrl+Shift+Enter。如果你的出貨資料是「一張出貨單一列」,要先彙總成「每個料號每天一列」,才能算日標準差。
安全庫存 = ROUNDUP(NORM.S.INV(服務水準) * SQRT(平均前置天數 * 日需求標準差^2 + 日均需求^2 * 前置天數標準差^2), 0)
再訂購點 = ROUNDUP(日均需求 * 平均前置天數, 0) + 安全庫存
建議訂購量 = MAX(0, 最高庫存 - 可用量加在途)交期資料最容易缺。很多公司的採購單只記下單日,入庫日在倉管那邊的另一本帳。要算前置天數標準差,這兩個日期得對得起來,建議在入庫單上直接記採購單號。採購端怎麼留這些紀錄,採購系統怎麼選 那篇有整理。
Excel 的進銷存本身要怎麼搭,進銷存自己做 比較了 Excel、Google Sheet 和 Airtable 幾種做法。想要這張欄位表的檔案,或想問自己的料號該用哪一種算法,可以直接 加 LINE 問我們,把現在的狀況丟過來就好。
安全庫存設錯的五個常見原因
先講結論:多數公司的安全庫存不準,問題很少出在公式,幾乎都出在餵進去的資料。下面五個是最常見的。
前置時間只抓平均,或直接用報價單上的天數
供應商報價單寫「交期 7 天」,實際入庫平均 9 天、最慢 14 天。用 7 天去算,再訂購點先少了兩天的用量;只用平均不算標準差,交期不穩的料就會一再斷貨。前面的試算已經看到,交期波動在完整版公式裡的影響可以比需求波動還大。前置時間要用實際入庫日去算,而且要包含進料檢驗、上架的天數。
所有料號用同一個服務水準,不分 ABC
全部料號都設 98%,等於把錢平均撒在每一個品項。比較好的做法是先做 ABC 分類(依金額或毛利排序),再配合需求穩定度分組,每組給不同的服務水準和算法:
分類 | 特徵 | 建議服務水準 | 建議算法 | 多久重算 |
|---|---|---|---|---|
A 類(前 70% 到 80% 金額) | 品項少、金額大、主力品 | 95% 到 98% | 統計公式完整版 | 每月 |
B 類(中間 15% 到 20%) | 品項中等、金額中等 | 93% 到 95% | 統計公式只算需求波動 | 每季 |
C 類(最後 5% 到 10%) | 品項多、金額小 | 90% 左右 | 固定天數或整箱批量 | 每半年 |
關鍵料(不分金額) | 缺了整條產線停 | 99% 以上 | 最大用量法或手動訂高 | 每月 |
C 類料的安全庫存,認真算其實不划算。一顆幾塊錢的螺絲,用整箱進貨、低於半箱就叫貨,比任何公式都省事。MRP 那篇 也提過同樣的建議:A 類和交期長的料先設,便宜的小料用批量處理。
季節性料號一整年用同一個值
冷氣零件夏天賣十倍、禮盒中秋前爆量,用全年平均算出來的安全庫存,旺季一定不夠、淡季一定太多。季節性料號至少要分旺季、淡季兩組參數,或改用「近 N 天」滾動重算,並把促銷、團購這種一次性大單從歷史資料裡排除,否則一次大單會把標準差拉高好幾個月。
用週資料算標準差,卻直接乘日數
如果你手上的資料是每週出貨量,算出來的是週標準差,前置時間也要用「週」當單位。最常見的錯誤是週標準差配上 9 天,安全庫存直接放大好幾倍。要換成日標準差,在需求每天大致獨立的前提下,可以用週標準差 ÷ √7 近似。另外,沒出貨的日子一定要記 0,只算有出貨的日子,平均會被高估、標準差會被低估。
算好之後從來不重算
安全庫存是根據過去的資料算出來的,供應商換了、產品進入衰退期、通路多了一個電商平台,參數就過期了。很多公司導入時認真算過一次,之後三年沒動,等到倉庫堆滿才發現當初的主力品早就不賣了。最低限度是每季把 A 類重算一次,並且每次換供應商就重算對應的料號。
Excel 撐不住的訊號:什麼時候該讓系統算安全庫存
一句話:當「算」不再是問題,「每天更新資料」變成問題,就該交給系統了。公式在 Excel 裡寫一次就好,但出貨、交期、在途、已訂走這些數字每天都在變,Excel 只有在有人去貼資料的那一刻才是對的。下面這張表可以對照自己現在在哪一格:
訊號 | 現場長什麼樣子 | 代表什麼 |
|---|---|---|
料號超過幾百個 | 重算一次要半天,所以半年才算一次 | 參數過期的速度比你重算快 |
補貨提醒靠人看 | 採購每天早上打開 Excel 篩「該下單」 | 採購休假那幾天沒人叫貨 |
可用量對不起來 | Excel 說還有,倉庫說被業務留給另一個客戶 | 沒有即時扣掉已訂走的量 |
多個倉庫或門市 | 總量夠,某個倉卻一直缺 | 安全庫存要每個倉分開算 |
多通路同時在賣 | 官網、蝦皮、門市各扣各的 | 同一份庫存被兩邊賣掉,見 超賣怎麼防 |
交期資料散在兩本帳 | 採購單在採購那邊,入庫日在倉管那邊 | 前置時間標準差根本算不出來 |
中了兩到三項,就值得評估系統化。更完整的 Excel 崩潰訊號與延命做法,可以看 用 Excel 自己寫進銷存撐得住嗎 和 中小企業該不該丟掉 Excel。
系統怎麼做安全庫存提醒:低於就通知、每晚重算、多倉分開
系統做安全庫存,做對的話只有三件事:每天自動重算參數、即時比對可用量、低於再訂購點就通知對的人。下面是一個常見的每日流程:
低於安全庫存自動提醒,而且提醒要有下一步
只寄一封「某料號低於安全庫存」的通知,採購還是得自己去查要訂多少、跟誰訂。好用的提醒會直接帶出建議訂購量(補到最高庫存,或依經濟訂購量與整箱批量湊整)、預設供應商與上次進價,採購按一下就轉成採購單。Odoo 18 的補貨規則 就是這個思路:預測庫存低於最小值時自動或手動產生補貨單,補到最大值,並可設定整數倍批量。
依近 N 天出貨自動重算
系統最大的價值是「每天都算」。每晚用近 90 天的出貨資料重算日均與標準差,季節性料號改用近 30 天或去年同期,促銷大單標記後排除。參數變動太大時(例如安全庫存一夜之間翻倍),系統應該先通知人確認,避免一張異常訂單把整個料號的參數拉歪。
多倉分開算,總倉和門市各有自己的線
總倉補門市、門市賣給客人,兩段的前置時間和需求波動完全不同。安全庫存要按「料號 × 倉庫」分開算,調撥中的數量算進收貨倉的在途,才不會出現總量夠、門市天天缺的狀況。倉庫層級的儲位與調撥細節,WMS 倉儲管理系統怎麼選 有更完整的拆解。
這三件事,我們在 影視器材租賃與檔期系統 裡處理過同一類問題:可租量每天動態重算,維修期一過自動把數量加回,庫存不足時業務可以直接把需求轉成外調項目。這是一套營運系統,不是 ERP,但「資料每天自動更新、不靠人去按完成」這個原則,放到安全庫存提醒上一樣適用。
ERP 內建模組、進銷存軟體還是客製
多數 ERP 與進銷存軟體都有安全庫存欄位,差別在它會不會自己算。很多套件只讓你手動填一個數字,到量提醒;能依歷史資料自動重算、能按倉庫分開、能吃實際交期的,通常在中高階方案。
做法 | 能做到什麼 | 常見限制 | 適合誰 |
|---|---|---|---|
進銷存軟體 | 填安全量、低於提醒 | 多半手動填數字,不會自動重算 | 單倉、料號幾百個以內 |
ERP 庫存模組 | 再訂購點、補貨建議、多倉 | 統計重算常要加購或另外設定 | 已經在用 ERP、流程標準 |
客製化或外掛模組 | 依你的分類、季節與通路規則重算 | 要先把料號、交期資料整理乾淨 | 多通路、多倉、規則特殊 |
挑套件可以先看 進銷存軟體怎麼選 與 台灣 ERP 廠商比較;依公司規模開短名單,看 ERP 推薦。已經有 ERP、只是安全庫存那塊不夠用,ERP 該換了嗎 那篇有講外掛模組這條路。製造業要把安全庫存接進生產,記得一併看 生產排程系統怎麼選 和 MES 與 ERP 怎麼串。
我們不建議一開始就為安全庫存客製整套系統。比較划算的順序是:先在 Excel 把 A 類料號算一次、確認資料抓得到,再決定要開套件的模組,還是只客製一個「每晚重算加提醒」的小模組接在現有系統旁邊。盤點不準的話,先把 盤點流程 顧好,否則公式再好也是在算錯的數字。
看到這裡,如果你也在想「我們的料號該怎麼分、哪一種算法適合」,我們很樂意 聽你聊聊現在的庫存狀況,或直接 加 LINE 把資料丟過來,一起看看從哪一塊開始最划算。
ℹ️我們做過這件事
恆遠是會寫程式的工程團隊,目前有 40+ 件企業客製案上線在用。庫存與可用量這一塊,我們做過 影視器材租賃與檔期系統:數百項器材、上千筆預訂,檔期大表數秒載入,可租量每天動態重算並自動偵測撞期。想看你的補貨規則放進系統會長什麼樣子,我們很樂意先聽你聊聊。
ℹ️我們怎麼看
我們判斷,接下來幾年中小企業的安全庫存會從「每個料號一個固定數字」變成「每天重算的參數」。公式幾十年沒變,變的是資料:出貨、交期、在途都已經在系統裡,每晚重算的成本趨近於零。所以我們規劃庫存功能時,會先把可用量與實際交期這兩份資料做對,公式放最後,能用套件內建的就用內建的。對老闆來說,判斷要不要動手很簡單:拿過去三個月,數一數有幾次斷貨,再看倉庫裡有多少貨超過半年沒動。兩邊都少,Excel 繼續用;兩邊都多,代表緩衝放錯地方,值得重新算一次。
安全庫存常見問題
Q安全庫存和再訂購點有什麼不同?
安全庫存是平常不動用的緩衝量,再訂購點是該下單的那條線。再訂購點 = 日均用量 × 前置天數 + 安全庫存,所以再訂購點一定比安全庫存高,差額就是補貨期間會用掉的平均量。
Q安全庫存的 Z 值怎麼查?
Z 值對應你要的不缺貨機率。90% 是 1.28、95% 是 1.645、98% 是 2.05、99% 是 2.33。Excel 可以直接用 =NORM.S.INV(0.95) 算出 1.6449。
Q沒有歷史資料,安全庫存要怎麼設?
新品或資料不足三個月的料號,先用固定天數法,例如抓 5 到 10 天的預估用量,或比照同類商品的參數。累積滿 60 到 90 天的每日出貨紀錄後,再改用統計公式重算。
Q安全庫存多久要重算一次?
A 類主力品建議每月重算,B 類每季,C 類每半年。換供應商、換運輸方式、進入旺季前,對應的料號都要重算。用系統的話可以每晚自動重算,人只看變動太大的料號。
Q安全庫存設太高會怎樣?
資金被壓在倉庫、倉位不夠、商品過期或過時的風險變高。服務水準從 95% 拉到 99%,安全庫存大約要增加四成,越往上越貴,所以只有主力品和關鍵料值得追高服務水準。
QERP 會自動幫我算安全庫存嗎?
看方案。很多 ERP 與進銷存軟體只提供安全庫存欄位與到量提醒,數字要自己填;能依歷史出貨與實際交期自動重算、按倉庫分開算的,通常在進階方案或需要另外設定。導入前可以在示範時直接請廠商用你的料號資料算一次。
AUTHOR
恆遠數位編輯團隊
想了解更多?看看我們的相關服務
需要網站系統架設或軟體開發?
無論是品牌官網、客製化系統還是應用程式,我們的團隊擁有豐富經驗,歡迎聯繫我們,讓專業為您的事業加分。






留言(0)
尚無留言,成為第一個留言的人吧!