3. 服务水平参数基础:Fill Rate vs Cycle Service Level、缺货概率与安全库存公式推导

在供应链计划系统中,服务水平参数是连接需求波动、库存策略与客户满意度的核心杠杆。本章将系统梳理两种最常用的服务水平度量——订单满足率(Fill Rate)与周期服务水平(Cycle Service Level, CSL),推导缺货概率与安全库存的数学关系,并对比两者在仿真场景中的适用差异。

3.1 两种服务水平的定义与核心差异

维度 订单满足率(Fill Rate) 周期服务水平(CSL)
定义 从库存立即满足的订单需求量占总需求量的百分比 在一个补货周期内不发生缺货的概率
关注点 缺货的数量影响 缺货的频率影响
计算公式 FR = 1 − (期望缺货量 / 周期期望需求量) CSL = P(周期内总需求 ≤ 再订货点)
典型应用 零售、分销、高价值单品 制造补货、BOM 物料、连续补货
对安全库存的敏感度 高——少量增加安全库存可显著提升 FR 中——CSL 提升需要更大幅度的安全库存增加
关键认知:Fill Rate 直接衡量客户体验(缺了多少货),CSL 衡量库存策略的稳健性(多久缺一次货)。在仿真系统中,两者不可互换,必须根据业务目标选择主导指标。

3.2 缺货概率与周期服务水平的关系

缺货概率(Stockout Probability)是 CSL 的互补概率:

缺货概率 = 1 − CSL

假设补货提前期 L 内的总需求服从正态分布 N(μL, σL),再订货点 ROP = μL + SS,则:

CSL = Φ( SS / σL )
缺货概率 = 1 − Φ( SS / σL )

其中 Φ(·) 为标准正态累积分布函数。下表给出常见 CSL 目标对应的安全因子 z:

CSL 目标 缺货概率 安全因子 z 说明
90.0% 10.0% 1.28 低缺货容忍度
95.0% 5.0% 1.64 常见商业标准
97.5% 2.5% 1.96 关键物料
99.0% 1.0% 2.33 高值/战略品
99.9% 0.1% 3.09 生命攸关/合规物料
仿真调试提示:当 CSL 目标超过 97.5% 后,安全库存呈非线性陡增。在数据传输调试中,需注意安全库存字段的精度与溢出边界。

3.3 安全库存公式推导(基于 CSL)

安全库存(Safety Stock, SS)的核心公式推导分三步:

  1. 设定 CSL 目标:确定期望的周期服务水平,例如 CSL = 95%。
  2. 查表或计算安全因子 z:z = Φ−1(CSL)。
  3. 乘以提前期需求标准差:SS = z × σL。

其中 σL 的计算取决于需求与提前期的独立性:

若需求与提前期独立:
σL = √( L × σd² + μd² × σLT² )

若仅需求波动(提前期固定):
σL = σd × √L

符号说明:

  • μd:单位时间平均需求
  • σd:单位时间需求标准差
  • L:平均提前期
  • σLT:提前期标准差
常见错误:直接使用 σd × √L 而忽略提前期波动,会导致安全库存低估 20%~40%。在仿真数据调试中,务必校验 σLT 字段是否被正确传入安全库存计算模块。

3.4 基于 Fill Rate 的安全库存公式

Fill Rate 导向的安全库存计算需要引入期望缺货量(Expected Shortage per Cycle, ESC):

FR = 1 − ESC / (Q × D)

其中:
ESC = σL × [ f(z) − z × (1 − Φ(z)) ]
f(z) = 标准正态概率密度函数
Φ(z) = 标准正态累积分布函数
Q = 订货批量
D = 周期期望需求量

给定 FR 目标,需通过迭代求解 z,再计算 SS = z × σL。下表对比两种方法的安全库存结果:

服务水平目标 CSL 法 SS(σL 倍数) Fill Rate 法 SS(σL 倍数) 差异说明
95% 1.64 1.28 ~ 1.45 FR 法通常更低,因考虑批量缓冲
97.5% 1.96 1.65 ~ 1.80 差距随目标升高而缩小
99% 2.33 2.05 ~ 2.20 高目标下两者趋近

3.5 服务水平参数选择决策流程

服务水平参数选择决策流程 业务目标输入 是否关注 缺货数量? 选择 Fill Rate 选择 CSL 计算 ESC → 迭代求解 z SS = z × σL 查表 z = Φ−1(CSL) SS = z × σL 输出安全库存至计划系统

3.6 数据传输调试中的关键字段映射

在供应链计划系统的数据接口中,服务水平参数通常以以下字段传递:

字段名 数据类型 取值范围 调试要点
SERVICE_LEVEL_TYPE VARCHAR(10) 'CSL' / 'FILL_RATE' 枚举值必须大写,否则解析失败
SERVICE_LEVEL_TARGET DECIMAL(5,4) 0.5000 ~ 0.9999 注意精度:0.95 应传 0.9500
SAFETY_FACTOR_Z DECIMAL(6,4) 0.0000 ~ 4.0000 由系统计算或外部传入,需校验非负
DEMAND_STD_DEV_LT DECIMAL(12,4) ≥ 0 提前期需求标准差,单位与需求一致
SAFETY_STOCK DECIMAL(12,2) ≥ 0 最终输出,四舍五入到两位小数
仿真调试案例:某项目将 CSL=95% 误传为 0.95(缺少两位小数填充),导致下游安全库存计算模块解析为 0.9500 但四舍五入逻辑触发边界错误,最终安全库存偏差 +12%。修复方案:在数据管道中增加 FORMAT(SERVICE_LEVEL_TARGET, '0.0000') 强制格式化。

3.7 本章小结

  • Fill Rate 与 CSL 是两种本质不同的服务水平度量,分别对应缺货数量与缺货频率。
  • 安全库存公式的核心是 SS = z × σL,但 z 的求解路径因服务水平类型而异。
  • CSL 法直接查标准正态分位数;Fill Rate 法需通过 ESC 迭代求解。
  • 提前期波动(σLT)不可忽略,否则安全库存严重低估。
  • 数据传输调试中,字段精度、枚举值大小写、四舍五入边界是三大高频故障点。