4. 静态阈值配置(一):基于历史平均消耗量的固定安全库存天数设定
静态阈值是缺料预警体系中最基础、最易实施的配置方式。本章聚焦于固定安全库存天数的设定方法,即根据物料的历史平均日消耗量,将安全库存量表达为“可维持供应X天”的形式。这种方法适用于消耗模式相对稳定、提前期波动较小的物料。
4.1 核心概念与计算公式
固定安全库存天数法的核心逻辑是:安全库存量 = 历史平均日消耗量 × 固定安全库存天数。其中,历史平均日消耗量通常取过去N天的移动平均值,固定安全库存天数则由计划员根据物料的重要度、供应风险和服务水平要求来设定。
| 参数 | 符号 | 说明 | 典型取值 |
|---|---|---|---|
| 历史平均日消耗量 | ADU | 过去N天(如30/60/90天)的总消耗量 ÷ N | 按物料品类取30天或90天 |
| 固定安全库存天数 | SSD | 计划员设定的固定天数,代表安全库存可覆盖的供应中断天数 | A类:7~14天;B类:3~7天;C类:1~3天 |
| 安全库存量 | SS | SS = ADU × SSD | 计算结果向上取整 |
| 预警触发点 | ROP | ROP = 提前期消耗量 + SS | 提前期消耗量 = ADU × 提前期天数 |
实践建议:对于首次配置静态阈值的物料,建议先采用30天历史数据计算ADU,并设置保守的SSD值(如3~5天),运行2~4周后再根据预警准确率逐步调整。
4.2 配置步骤与参数决策树
固定安全库存天数的配置需要经过以下五个步骤,每一步都涉及关键参数的选择:
- 确定历史数据窗口:选择计算ADU的时间范围。窗口过短(如7天)易受随机波动影响;窗口过长(如180天)则对近期趋势变化反应迟钝。
- 计算ADU:排除异常值(如促销、停产导致的突增/突降)后,计算日均消耗量。
- 设定SSD:根据物料ABC分类、供应提前期稳定性、缺料后果严重度三个维度综合赋值。
- 计算SS与ROP:代入公式得到安全库存量和再订货点。
- 校验与微调:将计算结果与历史缺料记录对比,确认预警阈值是否合理。
参数决策矩阵(示例):
| 物料类别 | 供应稳定性 | 缺料后果 | 建议SSD(天) | 数据窗口(天) |
|---|---|---|---|---|
| A类 | 低(供应商交期波动>20%) | 产线停线 | 10~14 | 90 |
| A类 | 高(供应商交期波动<10%) | 产线停线 | 5~7 | 60 |
| B类 | 中 | 影响排产 | 3~5 | 30 |
| C类 | 高 | 可替代 | 1~3 | 30 |
4.3 静态阈值配置流程(SVG)
下图展示了从历史数据采集到预警阈值生效的完整配置流程,其中固定安全库存天数(SSD)是计划员唯一需要手动输入的核心参数:
4.4 配置示例与代码实现
以下是一个基于Python的静态阈值配置示例,演示如何从历史消耗数据中计算ADU,并根据设定的SSD生成安全库存量和预警阈值:
import pandas as pd
import numpy as np
# 示例:某物料过去30天的日消耗量(单位:件)
daily_consumption = [120, 115, 130, 125, 118, 122, 128, 135, 110, 105,
125, 130, 120, 115, 128, 132, 118, 122, 126, 130,
124, 119, 127, 133, 121, 116, 129, 131, 123, 117]
# 参数配置
N = 30 # 历史数据窗口(天)
SSD = 7 # 固定安全库存天数(计划员设定)
lead_time = 5 # 供应商提前期(天)
# 计算ADU(排除异常值:采用中位数或截尾均值)
series = pd.Series(daily_consumption)
# 使用IQR方法剔除异常值
Q1 = series.quantile(0.25)
Q3 = series.quantile(0.75)
IQR = Q3 - Q1
filtered = series[(series >= Q1 - 1.5*IQR) & (series <= Q3 + 1.5*IQR)]
ADU = round(filtered.mean(), 1)
# 计算安全库存量和再订货点
SS = round(ADU * SSD) # 安全库存量
ROP = round(ADU * lead_time) + SS # 预警触发点(再订货点)
print(f"历史平均日消耗量 (ADU): {ADU} 件/天")
print(f"固定安全库存天数 (SSD): {SSD} 天")
print(f"安全库存量 (SS): {SS} 件")
print(f"预警触发点 (ROP): {ROP} 件")
print(f"当前库存低于 {ROP} 件时触发缺料预警")
注意事项:
- ADU计算必须排除异常值,否则会导致安全库存量虚高或虚低。建议使用IQR或3σ方法进行数据清洗。
- SSD的设定不宜过大,否则会造成库存积压;也不宜过小,否则无法有效应对供应波动。建议从保守值开始,逐步调优。
- 对于季节性明显的物料,固定安全库存天数法可能不适用,应考虑动态阈值或季节性分解方法。
4.5 静态阈值与动态阈值的适用场景对比
固定安全库存天数法属于静态阈值配置,与动态阈值方法相比,各有优劣。下表帮助您快速判断何时选择静态方案:
| 对比维度 | 静态阈值(固定SSD) | 动态阈值(自适应SSD) |
|---|---|---|
| 消耗模式 | 稳定、低波动 | 波动大、有趋势或季节性 |
| 配置复杂度 | 低,计划员手动设定即可 | 高,需算法模型支持 |
| 维护成本 | 低,定期复核即可 | 高,需持续监控模型效果 |
| 响应速度 | 慢,需人工调整SSD | 快,系统自动调整 |
| 适用物料 | C类、部分B类 | A类、关键B类 |
过渡策略:对于初次实施缺料预警的企业,建议先对所有物料采用静态阈值配置(固定SSD),运行1~2个季度积累数据后,再对A类物料逐步切换为动态阈值方案。