长尾SKU管理与滞销清仓优化 — 缺货率与长尾品双向治理算法
Skill-Long-Tail-SKU-Clearance-Optimization · 04-供应链
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_90d8. 论文来源
- 2402.14517