P paper2skillsPlaybook
AI 路线图 →

母婴产品效期管理与临期品KPI — 保质期预警/临期库存占比/过期销毁成本管控

Skill-Expiry-Date-Aging-Baby-Products-KPI · 04-供应链

causalexperimentpricing供应链与补货定价与利润风控与合规WF-A 智能补货WF-D 选品扫描WF-F 动态定价WF-K 全域风险防御
年化 ROI5-8万元
实现难度⭐⭐☆☆☆
业务视角
适用角色供应链负责人 · 采购负责人 · CEO / 运营 VP
适用平台Amazon FBA · 海外仓 · 多国仓位(美/欧/日)
什么情况下用库存周转率低,资金压在海外仓出不来;SKU 断货紧急空运,物流成本吃掉毛利;多仓库存分布不均
成功是什么样的库存周转天数从 90 天降到 60 天,断货率 <3%,海外仓综合成本降低 15-25%
业务痛点
库存周转天数太长资金压死了断货了只能空运救急成本爆了多市场库存分配不均

1. 解决的问题

母婴运营面临"奶粉/辅食临期库存蚕食利润"——180天三级预警+FIFO执行率100%,临期品占比从8%降至3%,过期损失归零

2. 核心算法逻辑

效期管理 是母婴品类供应链中独有且不可忽视的KPI维度。陈凤霞书中特设母婴专项,核心逻辑:

3. 业务应用场景

场景A:A2配方奶粉FBA库存效期预警 - 业务问题:FBA仓有批次奶粉效期即将到期,亚马逊会自动封存不可售,但卖家不知道有多少 - 数据要求:FBA库存报告(含batch/lot号) + 各批次生产日期/到期日 - 预期产出: - 临期批次(<105天):8批次,共320件,货值约2.4万元 - 预计FBA自动封存:48天后发生 - 处置方案:申请FBA移除(成本$0.5/件),再通过折扣渠道清售 - 业务价值:提前处置避免完全过期损失2.4万元,实际回收约1.5万元(扣移除和打折)

**场景B:婴儿辅食多仓效期差异管理(FIFO保障)** - **业务问题**:国内保税仓+3个海外仓都有同款辅食,但各仓批次混乱,FIFO执行不到位 - **数据要求**:各仓各SKU各批次库存量 + 效期 - **预期产出**:FIFO违规率12%(每8单就有1单不是最早批次发货),临期品占比8%(超标) - **业务价值**:FIFO系统化后,临期品占比降至3%,过期损失减少75%,年化节省约8万元

4. 输入数据要求

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

5. 输出结果

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

6. 业务价值 / ROI

  • ROI预估:系统化效期预警后,临期品占比从8%降至3% → 年化减少折扣损失约5-8万元;过期销毁率从1%降至0.2% → 减少直接损失约4-6万元;合规角度:防止过期品流入消费者手中引发的召回/赔偿风险(潜在损失数十万)
  • 实施难度:⭐⭐☆☆☆(需要WMS记录批次效期,大多数WMS支持)
  • 优先级评分:⭐⭐⭐⭐⭐(母婴类目独有必须项:奶粉/辅食效期关系婴儿安全,是平台和法规红线;陈凤霞书专设章节)
  • 评估依据:一次奶粉过期事件在Amazon可导致账号暂停+公关危机,损失远超效期管理成本

7. 代码模板

代码块数量:2 · 路径:未检测到

"""
母婴产品效期管理与临期品 KPI 体系
功能:效期分层预警 / 临期占比计算 / FIFO执行率 / 过期损失追踪 / 处置建议
输入:库存数据(含批次效期)
输出:效期KPI报告 + 预警清单 + 处置行动计划
"""
import numpy as np
import pandas as pd
from datetime import datetime, timedelta
import warnings
warnings.filterwarnings('ignore')


def generate_expiry_inventory(n_batches=80, seed=42):
    """生成含效期的库存批次数据"""
    np.random.seed(seed)
    today = datetime.now()
    
    products = {
        'A2配方奶粉900g': {'shelf_life_days': 730, 'unit_price': 280, 'fba_min_days': 105},
        '有机辅食米糊': {'shelf_life_days': 365, 'unit_price': 65, 'fba_min_days': 90},
        '婴儿洗护套装': {'shelf_life_days': 1095, 'unit_price': 120, 'fba_min_days': 60},
        '益生菌滴剂': {'shelf_life_days': 540, 'unit_price': 180, 'fba_min_days': 120},
        '婴儿湿巾(80片)': {'shelf_life_days': 730, 'unit_price': 25, 'fba_min_days': 45},
    }
    
    warehouses = ['US-FBA', 'DE-FBA', 'CN-保税仓', 'US-海外仓']
    records = []
    
    for i in range(n_batches):
        product = np.random.choice(list(products.keys()))
        info = products[product]
        shelf_life = info['shelf_life_days']
        
        # 随机生产日期(有些批次快过期)
        days_since_production = np.random.choice(
            [np.random.randint(10, 200),       # 新鲜批次(70%)
             np.random.randint(200, 550),       # 中期批次(20%)
             np.random.randint(550, shelf_life + 30)],  # 临期/过期(10%)
            p=[0.70, 0.20, 0.10]
        )
        
        production_date = today - timedelta(days=days_since_production)
        expiry_date = production_date + timedelta(days=shelf_life)
        days_to_expiry = (expiry_date - today).days
        remaining_life_pct = days_to_expiry / shelf_life * 100
        
        # 效期状态
        if days_to_expiry < 0:
            status = '过期'
        elif days_to_expiry <= shelf_life / 3:  # 剩余不足1/3
            status = '临期'
        else:
            status = '正常'
        
        # FBA可上架状态
        fba_min = info['fba_min_days']
        fba_sellable = days_to_expiry >= fba_min
        
        qty = np.random.randint(20, 500)

8. 论文来源

  • 2311.12045