P paper2skillsPlaybook
AI 路线图 →

Inventory Demand Sensing — 库存需求感知:实时信号融合驱动智能补货

Skill-Inventory-Demand-Sensing · 18-物流履约

causalexperimentforecastingrecommendationdata_collectionpricing广告与投放供应链与补货推荐与搜索数据采集与治理定价与利润WF-A 智能补货WF-B 广告优化WF-D 选品扫描WF-F 动态定价
年化 ROI¥25-65 万
实现难度⭐⭐⭐☆☆
业务视角
适用角色物流负责人 / 供应链负责人 · 客服负责人 · 运营负责人
适用平台FBA vs FBM vs 第三方海外仓 · 美国本土最后一公里 · 跨境退货逆向物流
什么情况下用物流时效不稳定,差评里大量「收货太慢」,影响 DSR 评分;退货率高,处理成本吃掉大量利润;旺季物流爆仓
成功是什么样的物流时效提升 20-30%,物流相关差评减少 40%,退货成本可控,旺季履约稳定不崩溃
业务痛点
物流超时差评太多旺季爆仓订单积压退货处理成本太高头程运费太贵压缩了毛利

1. 解决的问题

吸奶器旺季等到销量上升才补货Lead Time 45天导致旺季缺货两周——搜索趋势+广告CTR多信号感知比纯销量触发提前7-14天补货,旺季缺货减少40-60%年化GMV保护25-65万元

2. 核心算法逻辑

需求感知 = 融合多源实时信号:

3. 业务应用场景

业务问题:每年 2 月(产后恢复高峰)吸奶器销量会上升,但等到销量上升才补货,Lead Time 45 天,旺季前 2 周开始缺货。若依赖搜索趋势信号,1 月初就能看到搜索量上升,提前 3-4 周触发补货。

数据要求: - Google Trends / Helium10 关键词搜索量(周粒度) - Amazon 广告 CTR 历史(来自广告报告) - 推荐系统曝光量(Amazon Attribution 报告) - 过去 2 年销量历史

预期产出: - 需求感知综合评分(每日更新) - 旺季开始时间预测(比历史规律更精准) - 触发补货建议:提前 X 天下单,备货 Y 件

4. 输入数据要求

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

5. 输出结果

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

6. 业务价值 / ROI

  • ROI 预估
  • 比纯销量提前 7-14 天触发补货:旺季缺货减少 40-60%,保护 ¥15-40 万 GMV
  • 广告预算与库存状态联动:不在无货时投广告(节省无效广告费 ¥5-15 万/年)
  • 需求下降时提前降库存:减少呆滞库存持有成本 ¥5-10 万/年
  • 年化综合 ROI:¥25-65 万
  • 实施难度:⭐⭐⭐☆☆(需要多数据源接入;搜索趋势 API + Amazon 报告 + Kalman 融合约 3-4 周)

7. 代码模板

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

"""
Inventory Demand Sensing
多信号融合需求感知 + 智能补货触发
"""
import numpy as np
from collections import deque


class KalmanSignalFilter:
    """Kalman 滤波器:融合多个噪声不同的信号"""

    def __init__(self, process_noise: float = 1.0, measurement_noise: float = 5.0):
        self.Q = process_noise       # 过程噪声(真实需求的随机性)
        self.R = measurement_noise   # 测量噪声(信号观测误差)
        self.x = 0.0                 # 状态估计(真实需求)
        self.P = 10.0                # 估计不确定性

    def update(self, measurement: float) -> float:
        """接入新观测值,更新状态估计"""
        # 预测步骤
        self.P += self.Q
        # 更新步骤
        K = self.P / (self.P + self.R)  # Kalman 增益
        self.x += K * (measurement - self.x)
        self.P *= (1 - K)
        return self.x


class DemandSensingModel:
    """多信号融合需求感知模型"""

    def __init__(self, lead_days: int = 14, window: int = 30):
        self.lead_days = lead_days
        self.window = window
        # 各信号的权重(通过历史数据学习,这里用启发式)
        self.weights = {
            'search_trend': 0.35,    # 搜索趋势(最强领先信号)
            'ads_ctr':      0.25,    # 广告 CTR(用户购买意愿)
            'reco_exposure':0.20,    # 推荐曝光(平台热度信号)
            'historical':   0.20,    # 历史销量(基础稳定性)
        }
        self.kalman = KalmanSignalFilter()
        self.history = deque(maxlen=window)
        self.baseline = None

    def normalize_signal(self, values: list, name: str) -> np.ndarray:
        """信号标准化(z-score)"""
        arr = np.array(values, dtype=float)
        mean, std = np.mean(arr), np.std(arr)
        if std < 1e-8:
            return np.zeros_like(arr)
        return (arr - mean) / std

    def compute_sensing_score(self, signals: dict) -> np.ndarray:
        """计算每日需求感知综合评分"""
        n = min(len(v) for v in signals.values())
        result = np.zeros(n)

        for name, weight in self.weights.items():
            if name in signals and name != 'historical':

8. 论文来源

  • 2403.14271