轻易云
注册体验

安全库存计算方法:在服务水平与需求波动之间找到平衡

· 系统管理员· 智能补货· 12 次浏览· 约 2 分钟读完
安全库存补货模型销量预测

安全库存到底在防什么

安全库存(Safety Stock)防的不是"卖得不好",而是不确定性:需求比预测多卖了,或者供应商比约定晚到了。只要未来是确定的,理论上不需要任何安全库存。因此安全库存的计算本质上是一个统计学问题:在给定的波动水平下,要存多少货才能把缺货概率压到可接受的范围。

经典公式:只考虑需求波动

最常用、也最应该先掌握的形式是:

安全库存 SS = z × σ_d × √L
  • z:服务水平系数(标准正态分布的分位数)
  • σ_d:日需求量的标准差
  • L:补货提前期(天)

对应地,再订货点为:ROP = d̄ × L + SS,其中 是日均需求。直觉上很好理解:平均需求决定"底仓",波动决定"保险"。

z 值与服务水平的对应

服务水平指"一个补货周期内不缺货的概率"。常用对应关系:

服务水平z 值适用场景
90%1.28长尾低值品,允许偶尔缺货
95%1.645常规主力品的常用起点
97.5%1.96重要品、缺货成本较高
99%2.33战略品、缺货代价极高

注意:z 值不是线性的。从 95% 提到 99%,z 从 1.645 涨到 2.33,安全库存增加约 42%。服务水平每往上走一格,占用的资金都在加速上涨——这就是为什么服务水平应该按 SKU 分级,而不是一刀切。

交期也波动时:组合公式

当供应商交期本身不稳定(标准差 σ_L),需要同时考虑两种波动:

SS = z × √(L̄ × σ_d² + d̄² × σ_L²)

其中 是平均提前期。这个公式在实操中很有价值:很多企业只盯销量波动,却忽略了"供应商动不动晚到 3 天"才是缺货主因。把交期波动量化后,往往能发现与其加库存,不如先治理供应商交期

一个完整计算示例

假设某 SKU:日均需求 40 件,日需求标准差 12 件,平均提前期 7 天,交期标准差 1.5 天,目标服务水平 95%(z = 1.645):

ts
const z = 1.645;
const avgDemand = 40; // d̄
const stdDemand = 12; // σ_d
const avgLead = 7; // L̄(天)
const stdLead = 1.5; // σ_L(天)

const variance = avgLead * stdDemand ** 2 + avgDemand ** 2 * stdLead ** 2;
const safetyStock = Math.ceil(z * Math.sqrt(variance));
// = ceil(1.645 × √(7×144 + 1600×2.25))
// = ceil(1.645 × √4608) ≈ ceil(111.7) = 112 件

const reorderPoint = Math.ceil(avgDemand * avgLead) + safetyStock;
// = 280 + 112 = 392 件

结论:该 SKU 安全库存 112 件,库存(可用 + 在途)跌到 392 件时就该触发补货。

落地时的三条纪律

  1. 用日粒度数据算波动:周/月汇总会把波动"平均掉",σ 被系统性低估,安全库存必然偏小。
  2. 先清洗异常再算标准差:促销爆量、断货期的零销量都会污染 σ_d;断货日的真实需求是"被截断"的,直接当零处理会低估需求。
  3. 定期复盘实际服务水平:公式给出的是理论值,每季度用"实际缺货次数 / 补货周期数"校准一次,偏差大就回头检查波动假设是否仍然成立。

安全库存不是算一次就结束的参数,而是一个需要持续维护的经营决策。把它脚本化、参数化,每次补货运算都能回到具体的 σ 与 z,才是可持续的做法。

本文为原创内容,转载请注明出处:/insights/replenishment/safety-stock-calculation-guide

评论