售罄率精细化KPI体系 — 大促/新品/季节性多口径售罄率计算与库存水位判断
Skill-Sell-Through-Rate-Promo-Inventory · 04-供应链
causalexperimentoptimization供应链与补货WF-A 智能补货WF-D 选品扫描WF-G Listing内容优化
年化 ROI20-40万元
实现难度⭐⭐☆☆☆
业务视角
适用角色供应链负责人 · 采购负责人 · CEO / 运营 VP
适用平台Amazon FBA · 海外仓 · 多国仓位(美/欧/日)
什么情况下用库存周转率低,资金压在海外仓出不来;SKU 断货紧急空运,物流成本吃掉毛利;多仓库存分布不均
成功是什么样的库存周转天数从 90 天降到 60 天,断货率 <3%,海外仓综合成本降低 15-25%
业务痛点
1. 解决的问题
大促运营面临"不知道备货成不成功"——跨境售罄率50-60%目标+有无预售两种口径,精确复盘指导下次减少滞销损失20-40万元
2. 核心算法逻辑
售罄率(SellThrough Rate, STR) 是陈凤霞书中评价备货质量和库存计划准确性的综合检验指标。售罄率不是一个单一数字,需要按场景精确区分口径:
3. 业务应用场景
场景A:Black Friday吸奶器备货回顾 - 业务问题:Black Friday结束,仓库剩余大量库存,但不知道卖了多少算"成功" - 数据要求:BF前可售良品库存(按SKU)+ BF期间实际销售量 + 有无预售订单 - 预期产出: - 旗舰款STR = 72%(✅ 跨境50-60%目标之上,偏高) - 配件套装STR = 38%(⚠️ 严重积压,需双12加大促销力度) - A2奶粉STR = 55%(✅ 正常,双12继续销售) - 整体备货评价:旗舰款备货稍少,配件备多了 - 业务价值:复盘指导下次大促备货策略,减少滞销金额约20万元
**场景B:新品辅食机首单售罄率追踪** - **业务问题**:新品辅食机首批500台,3个月后评估是否追单,需要量化"首单是否成功" - **数据要求**:首批到货时间 + 3个月内累计销售量 - **预期产出**:3个月STR = 52%(低于60%目标)→ 建议谨慎追单,先优化Listing提升转化率 - **业务价值**:避免新品失败追单导致更大库存积压,按案例节省约15万元滞销损失
4. 输入数据要求
请查看原始代码模板获取输入规格。
5. 输出结果
请查看原始代码模板获取输出规格。
6. 业务价值 / ROI
- ROI预估:精确追踪售罄率后,下次大促备货精准度提升15%,年化减少积压滞销损失约20-40万元;新品首单STR管控减少失败新品追单损失约10-15万元
- 实施难度:⭐⭐☆☆☆(计算简单,关键是口径统一:有无预售必须分开处理)
- 优先级评分:⭐⭐⭐⭐⭐(陈凤霞:"售罄率是采购和库存计划质量的综合检验,比任何单一KPI都更直接")
- 评估依据:跨境目标50-60%(陈凤霞书)vs 国内60-80%,差异来源于跨境大促后续销售机会更多
7. 代码模板
代码块数量:1 · 路径:未检测到
"""
售罄率精细化 KPI 体系
功能:大促STR / 新品STR / 季节性STR / 有无预售两种口径 / 行业对标 / 库存行动建议
输入:备货量 + 销售量 + 预售数量
输出:STR KPI报告 + 库存诊断 + 下次备货建议
"""
import numpy as np
import pandas as pd
import warnings
warnings.filterwarnings('ignore')
def generate_promo_inventory_data(n_skus=30, seed=42):
"""生成模拟大促库存与销售数据"""
np.random.seed(seed)
categories = ['吸奶器旗舰', '吸奶器入门', '吸奶器配件', 'A2奶粉900g', '辅食机', '婴儿湿巾100片']
records = []
for i in range(n_skus):
cat = np.random.choice(categories)
# 备货量(基于销售计划)
base_stock = np.random.randint(100, 2000)
has_presale = np.random.random() < 0.3 # 30%有预售
presale_qty = int(base_stock * np.random.uniform(0.05, 0.20)) if has_presale else 0
available_stock = base_stock - presale_qty
# 模拟真实STR(不同品类不同水平)
true_str = {
'吸奶器旗舰': np.random.uniform(0.55, 0.80),
'吸奶器入门': np.random.uniform(0.45, 0.65),
'吸奶器配件': np.random.uniform(0.25, 0.55),
'A2奶粉900g': np.random.uniform(0.48, 0.65),
'辅食机': np.random.uniform(0.35, 0.70),
'婴儿湿巾100片': np.random.uniform(0.55, 0.80),
}[cat]
actual_sales = round(available_stock * true_str)
remaining = available_stock - actual_sales + presale_qty # 大促后剩余(含预售出货后回库)
records.append({
'sku_id': f'SKU-{i+1:03d}',
'category': cat,
'stock_before_promo': base_stock,
'presale_qty': presale_qty,
'available_stock': available_stock, # 可用于STR计算的分母
'actual_sales': actual_sales,
'remaining_stock': max(0, base_stock - actual_sales),
'str_raw': actual_sales / max(1, available_stock),
'has_presale': has_presale,
})
return pd.DataFrame(records)
def compute_sell_through_rates(df, promo_type='大促(跨境)', channel='cross_border'):
"""计算各口径售罄率"""
print("=" * 65)
print(f"【售罄率 KPI 分析 — {promo_type}】")8. 论文来源
- 2310.09234