P paper2skillsPlaybook
AI 路线图 →

长尾SKU管理与滞销清仓优化 — 缺货率与长尾品双向治理算法

Skill-Long-Tail-SKU-Clearance-Optimization · 04-供应链

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

1. 解决的问题

50%SKU只贡献5%营收却占用45%仓位和$15万资金——多维长尾评分+动态规划Markdown清仓将动销率从43%提升至72%,年化释放资金$36万

2. 核心算法逻辑

业务背景(陈凤霞实战经验):书中明确区分两个相互矛盾的KPI——缺货率(高价值SKU缺货损失营收)和长尾品问题(低价值SKU积压占用资源)。电商供应链的"生意质量"要求同时解决这两个矛盾:一方面保证A类商品不断货,另一方面清除拖累效率的长尾积压品。

3. 业务应用场景

- 业务问题:某卖家80个在架SKU中,35个SKU月销不足10件(长尾品),占用仓位和采购资金,但团队每天忙于运营爆款无暇顾及,季度末积压$15万 - 数据要求:所有SKU近90天日销量、当前库存、采购成本、平台评分历史 - 算法应用: 1. 运行长尾品评分:35个SKU中20个综合评分<0.3(长尾),8个<0.15(强制清仓) 2. 对8个强制清仓品运行Markdown优化:计算6周清仓方案 3. 第1-2周:折扣15%(测试价格弹性);第3-4周:折扣25%;第5-6周:折扣40% 4. 预测:6周内清完积压$8万的库存,回收现金$4.5万(vs 继续持有收回$3万) - 预期产出:清

- **业务问题**:运营团队没有实时缺货预警,吸奶器爆款DOI降至3天时才发现,来不及空运补货,断货5天损失$2.5万销售额 - **算法应用**:实时缺货率监控系统,A类SKU DOI<7天自动触发告警+预填空运补货申请;每日8:00推送"缺货预警面板" - **预期产出**:断货次数从年均6次降至1次,年防损$12.5万

4. 输入数据要求

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

5. 输出结果

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

6. 业务价值 / ROI

  • ROI 预估:80个SKU的卖家,季度长尾积压$15万;系统化清仓每季度回收$9万(60%),年化释放$36万冻结资金;资金成本按20%计节省$7.2万/年;IPI改善防止FBA仓容限制损失$3-5万;系统成本$2万,ROI≈500%
  • 实施难度:⭐⭐☆☆☆(算法简单,90%的工作是数据整理和建立自动化监控触发机制)
  • 优先级:⭐⭐⭐⭐⭐(几乎所有卖家都有长尾积压问题,是供应链"生意质量"最核心的管理抓手)
  • 适用规模:SKU数>30个、月销>$10万的卖家
  • 数据依赖:90天SKU日销量、当前库存、采购成本、平台评分历史

7. 代码模板

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

"""
长尾SKU管理与滞销清仓优化系统
功能:长尾品识别评分 + Markdown最优清仓 + 缺货率KPI监控
"""
import numpy as np
import pandas as pd
from dataclasses import dataclass, field
from typing import List, Dict, Optional, Tuple
import warnings
warnings.filterwarnings('ignore')


@dataclass
class SKUPerformance:
    """SKU绩效数据"""
    sku_id: str
    abc_class: str
    current_stock: int
    unit_cost: float
    current_price: float
    daily_sales_90d: List[float]    # 近90天每日销量
    star_rating_30d: float          # 近30天评分
    star_rating_90d: float          # 近90天评分
    
    @property
    def avg_daily_sales(self) -> float:
        return np.mean(self.daily_sales_90d) if self.daily_sales_90d else 0
    
    @property
    def active_days_pct(self) -> float:
        """动销天数比例"""
        active = sum(1 for s in self.daily_sales_90d if s > 0)
        return active / max(len(self.daily_sales_90d), 1)
    
    @property
    def current_doi(self) -> float:
        if self.avg_daily_sales <= 0:
            return 999
        return self.current_stock / self.avg_daily_sales
    
    @property
    def inventory_value(self) -> float:
        return self.current_stock * self.unit_cost


def compute_long_tail_score(sku: SKUPerformance, 
                             portfolio_avg_daily_sales: float) -> Dict:
    """计算长尾品综合评分(0=最差,1=最好)"""
    
    # 1. 销量分位得分(相对于品类均值)
    sales_percentile = min(sku.avg_daily_sales / max(portfolio_avg_daily_sales, 0.1), 2.0) / 2.0
    
    # 2. DOI得分(越高越差)
    doi_score = max(0, 1 - (sku.current_doi - 30) / 200)  # DOI>30开始扣分
    
    # 3. 动销率得分
    active_score = sku.active_days_pct
    
    # 4. 评分趋势得分
    rating_trend = sku.star_rating_30d - sku.star_rating_90d

8. 论文来源

  • 2402.14517