安全库存算错了3年,我才发现公式少了两个变量

算安全库存这件事,我前3年都是用教科书公式的:

安全库存 = Z × σd × √L

Z是服务水平对应的Z值,σd是需求标准差,L是提前期。

算出来的结果呢?有些SKU库存总是不够,频繁缺货;有些SKU库存积了一堆,半年都消化不完。

后来我仔细研究了一下,发现问题出在两个被忽略的变量上。

被忽略的变量一:供应波动

教科书公式只考虑了需求波动(σd),但供应也是波动的

供应商说提前期7天,但实际上:

  • 7天准时交付的概率只有60%
  • 8-10天交付的概率30%
  • 超过10天的概率10%

有一次供应商设备故障,提前期变成了21天。我的安全库存只按7天算的,直接断货2周。

正确的安全库存公式应该同时考虑需求波动和供应波动:

安全库存 = Z × √(L × σd² + d² × σL²)

其中σL是提前期的标准差,d是日均需求量。

这个公式意味着:不仅要考虑需求的不确定性,还要考虑供应的不确定性,而且两者是叠加的。

算一笔账:

参数
日均需求d100个
需求标准差σd25个
名义提前期L7天
提前期标准差σL3天
目标服务水平95%(Z=1.65)

只考虑需求波动: 安全库存 = 1.65 × 25 × √7 = 109个

同时考虑需求和供应波动: 安全库存 = 1.65 × √(7 × 25² + 100² × 3²) = 1.65 × √(4375 + 90000) = 1.65 × 308 = 508个

差了将近5倍! 这就是为什么按教科书公式算出来的安全库存总是不够——你忽略了供应波动这个大头。

被忽略的变量二:需求相关性

教科书公式假设每天的需求是独立的(互不影响),但实际业务中,需求往往有相关性。

举个例子:一个做建材的客户,他不是每天随机买一点,而是隔一段时间集中采购一批。这种需求模式叫"批量需求"。

批量需求的特点是:有需求的时候需求量很大,没有需求的时候为零。 这种模式下,用标准差来衡量需求波动会被严重低估。

还有一种情况更常见:季节性。 夏天的饮料需求是冬天的3倍。如果你用全年的需求标准差来算安全库存,夏天一定不够、冬天一定太多。

怎么处理:

  1. 批量需求:用Croston方法或SBA方法替代传统的标准差计算,专门处理间歇性需求
  2. 季节性需求:按季节分别计算安全库存,或者用季节因子调整预测后再算标准差
  3. 促销需求:促销期间的安全库存要单独计算,不能用常规需求的标准差

实操改良方案

我把安全库存的计算流程改成了4步:

第1步:计算需求安全库存(考虑需求波动和相关性)

  • 稳定需求:用标准公式
  • 季节性需求:用去季节化后的标准差
  • 间歇性需求:用Croston方法

第2步:计算供应安全库存(考虑提前期波动)

  • 统计供应商历史交付数据
  • 计算提前期标准差σL
  • 用公式 Z × d × σL 算出供应安全库存

第3步:合并 总安全库存 = 需求安全库存 + 供应安全库存

(注意:这里用的是相加而不是开根号,因为需求波动和供应波动往往是相关的——旺季的时候需求大,供应商也忙,提前期也更长。)

第4步:设置上下限

  • 安全库存上限:不超过3个月的平均用量(防止呆滞)
  • 安全库存下限:不低于1周的用量(防止断货)

改良前后对比

指标改良前改良后变化
库存总额2200万1580万-28%
缺货率4.5%1.8%-60%
呆滞库存占比22%9%-59%
库存周转率3.8次/年5.6次/年+47%

库存降了28%,缺货率反而降了60%。 这就是"算对安全库存"的力量。

核心认知

安全库存不是"多备一点"这么简单。它是一个数学问题,但课本上的公式省略了两个重要的现实变量:供应波动和需求相关性。

你忽略的变量不会因为被忽略就不存在。 它们只是在暗处偷偷影响你的库存水平——让你该多的不多,不该多的特别多。

把供应波动和需求相关性纳入计算,安全库存才能从"拍脑袋"变成"有依据"。

算对了,库存就是你的缓冲;算错了,库存就是你的负担。

觉得有用?

关注公众号「甲方乙方供应链」

获取更多供应链干货

点击关注 →