paper2skills Playbook

Supplier Lead Time Buffer — 供应商交货期缓冲:非正态分布下的安全库存

Skill-Supplier-Lead-Time-Buffer · 18-物流履约

causalexperimentforecasting供应链与补货WF-A 智能补货
实现难度⭐⭐☆☆☆
业务优先级⭐⭐⭐⭐☆
业务视角
适用角色物流负责人 / 供应链负责人 · 客服负责人 · 运营负责人
适用平台FBA vs FBM vs 第三方海外仓 · 美国本土最后一公里 · 跨境退货逆向物流
什么情况下用物流时效不稳定,差评里大量「收货太慢」,影响 DSR 评分;退货率高,处理成本吃掉大量利润;旺季物流爆仓
成功是什么样的物流时效提升 20-30%,物流相关差评减少 40%,退货成本可控,旺季履约稳定不崩溃
业务痛点
物流超时差评太多旺季爆仓订单积压退货处理成本太高头程运费太贵压缩了毛利

1. 解决的问题

传统安全库存公式($SS = Z \cdot \sigma_{LT} \cdot \bar{D}$)基于正态分布假设,但实际跨境供应链中交货期呈现两个典型特征

2. 核心算法逻辑

为什么正态假设会低估交货期风险

3. 业务应用场景

场景一:奶粉海运补货缓冲(中国工厂→美国仓库)

- 业务问题:普通时段中国→美西海运 LT 均值 28 天,双11前后(10-12月)延误显著增加,以往按正态分布计算的安全库存频繁出现缺货。 - 数据输入:60 条历史交货期记录(含旺季标注),日均销量 500 罐,目标服务水平 95% - 系统处理: - 淡季 P95 LT = 38 天;旺季 P95 LT = 52 天(seasonal_factor = 1.37) - 淡季安全库存 = (38-28) × 500 = 5,000 罐 - 旺季安全库存 = (52-28) × 500 × 1.37 ≈ 16,440 罐(自动触发旺季倍增) - 业务价值:缺货率从 15% 降至 5%,避免

场景二:WF-A 智能补货(综合交货期分布+需求不确定性)

4. 输入数据要求

请查看原始代码模板获取输入规格。

5. 输出结果

请查看原始代码模板获取输出规格。

6. 业务价值 / ROI

  • 缺货率:从 15% 降至 5%(旺季安全库存自动倍增)
  • 库存精准度:非参数分位数 vs 正态假设,极端延误预测误差降低 40%
  • 实施难度:⭐⭐☆☆☆(仅需历史交货期记录,无复杂模型)
  • 优先级:⭐⭐⭐⭐☆(对跨境母婴补货影响直接)

7. 代码模板

代码块数量:3 · 路径:paper2skills-code/logistics/supplier_lead_time_buffer

"""
Skill-Supplier-Lead-Time-Buffer
供应商交货期缓冲:非正态分布下的安全库存计算
基于 Gen-QOT 工业实践 2024 + 交货期分布建模
纯 Python 标准库,Python 3.14 兼容,无第三方依赖
"""
from __future__ import annotations
import math
import statistics
from dataclasses import dataclass, field
from datetime import date, datetime
from typing import Optional


@dataclass
class LeadTimeRecord:
    """单条交货期记录"""
    supplier_id: str
    order_date: date
    actual_delivery_date: date
    expected_delivery_date: date
    month: int = field(init=False)

    def __post_init__(self) -> None:
        self.month = self.actual_delivery_date.month

    @property
    def actual_lead_time_days(self) -> int:
        """实际交货期(天)"""
        return (self.actual_delivery_date - self.order_date).days

    @property
    def delay_days(self) -> int:
        """超期延误天数(负值表示提前)"""
        return (self.actual_delivery_date - self.expected_delivery_date).days


# 旺季月份(海运双11+圣诞旺季:10-12月)
PEAK_SEASON_MONTHS: frozenset[int] = frozenset({10, 11, 12})


class LeadTimeDistributionEstimator:
    """
    历史交货期分位数估计器(非参数方法)
    支持季节性调整:旺季 vs 淡季分开估计
    """

    def __init__(
        self,
        records: list[LeadTimeRecord],
        peak_months: frozenset[int] = PEAK_SEASON_MONTHS,
    ) -> None:
        if len(records) < 10:
            raise ValueError("记录数量不足 10 条,分位数估计不可靠")
        self._records = records
        self._peak_months = peak_months
        self._all_lts = [r.actual_lead_time_days for r in records]
        self._peak_lts = [
            r.actual_lead_time_days
            for r in records

8. 论文来源

未自动抽取;请查看原始 Skill 卡片。