大促前盘货量化KPI与补货触发阈值 — 盘货差距分析/补货优先级/紧急空运决策框架
Skill-Pre-Promo-Stocktaking-KPI · 04-供应链
experimentforecastingpricing广告与投放供应链与补货定价与利润WF-A 智能补货WF-B 广告优化WF-F 动态定价
年化 ROI5-15万
实现难度⭐⭐☆☆☆
业务优先级⭐⭐⭐⭐⭐
业务视角
适用角色供应链负责人 · 采购负责人 · CEO / 运营 VP
适用平台Amazon FBA · 海外仓 · 多国仓位(美/欧/日)
什么情况下用库存周转率低,资金压在海外仓出不来;SKU 断货紧急空运,物流成本吃掉毛利;多仓库存分布不均
成功是什么样的库存周转天数从 90 天降到 60 天,断货率 <3%,海外仓综合成本降低 15-25%
业务痛点
1. 解决的问题
大促备货靠感觉导致爆款缺货35%且次品积压——四要素盘货量化(当前库存/预测件数/差距件数/补货触发阈值)+空运ROI决策矩阵,大促缺货率从35%降至8%
2. 核心算法逻辑
书籍核心洞察(陈凤霞):大促前的盘货不是简单地"看看有多少货",而是一个系统性的差距分析→补货决策→紧急处理流程。书中给出了精确的量化框架,将盘货从"感觉备够了"升级为"数据驱动的备货决策"。
3. 业务应用场景
场景A:Prime Day前4周系统化盘货
- 业务问题:某卖家每年Prime Day前"凭感觉"备货,结果爆款总是缺货而次要品积压 - 盘货KPI应用(大促前30天): 1. 汇总所有SKU的当前库存+确认在途 2. 基于上年Prime Day销量×增长系数(×1.3)估算预测件数 3. 计算每个SKU的差距件数和缺口比例 4. 爆款(吸奶器)缺口45%,距大促28天→评估空运: - 空运额外成本:500件×$12/件=$6000 - 缺货损失:500件×45%×$38毛利×1.5大促溢价≈$12,825 - ROI=2.14→必须空运! - 预期产出:大促爆款缺货率从35%降至8%,大促GMV提升22%
- **业务问题**:预算有限(只有$20000空运预算),需要决定哪些SKU空运哪些放弃 - **优先级算法**:按"不空运缺货损失/空运额外成本"降序排列,依次填入空运,直到预算用完
4. 输入数据要求
请查看原始代码模板获取输入规格。
5. 输出结果
请查看原始代码模板获取输出规格。
6. 业务价值 / ROI
- ROI 预估:大促爆款缺货率从35%降至8%,Prime Day额外挽回GMV约$5-15万;空运决策ROI量化避免"不该空运的空运了/该空运的没空运"两种错误,节省约$3000-8000/次大促;系统$1.5万,ROI>1000%
- 实施难度:⭐⭐☆☆☆(逻辑直接,主要工作是整合FBA库存+在途库存数据;空运ROI计算需要准确的物流成本和毛利数据)
- 优先级:⭐⭐⭐⭐⭐(书中第六章首节,大促是全年最高ROI时段,系统化盘货KPI直接影响大促业绩)
- 适用规模:参与大促的所有卖家;月销>$3万且有大促的卖家
- 数据依赖:FBA库存报告、在途确认清单、历史大促销量、物流成本数据
7. 代码模板
代码块数量:3 · 路径:未检测到
"""
大促前盘货量化KPI与补货触发阈值
基于《全链路管理》陈凤霞 第六章第二节
差距分析 + 空运ROI决策 + 补货优先级排序
"""
import numpy as np
import pandas as pd
from dataclasses import dataclass, field
from typing import Dict, List, Optional
import warnings
warnings.filterwarnings('ignore')
@dataclass
class PromoSKUProfile:
"""大促SKU档案"""
sku_id: str
sku_name: str
abc_class: str
unit_margin: float # 单品毛利
promo_price_premium: float # 大促期间相对日常的价格溢价系数(通常>1因为大促期间需求高)
# 当前库存状态
current_stock_fba: int
current_stock_own_wh: int
confirmed_inbound_units: int # 已确认海运到货
days_to_promo: int # 距大促天数
# 需求预测
last_promo_actual_sales: int # 上次大促实际销量
yoy_growth_factor: float = 1.3 # 增长系数
# 物流成本
sea_freight_unit: float = 3.5 # 海运单件成本
air_freight_unit: float = 15.0 # 空运单件成本
class PrePromoStocktakingAnalyzer:
"""大促前盘货分析器"""
def forecast_promo_demand(self, sku: PromoSKUProfile) -> int:
"""预测大促需求件数"""
return int(sku.last_promo_actual_sales * sku.yoy_growth_factor)
def compute_inventory_gap(self, sku: PromoSKUProfile) -> Dict:
"""计算库存缺口"""
total_available = (sku.current_stock_fba + sku.current_stock_own_wh
+ sku.confirmed_inbound_units)
forecast = self.forecast_promo_demand(sku)
gap_units = max(forecast - total_available, 0)
gap_ratio = gap_units / max(forecast, 1)
return {
'sku_id': sku.sku_id,
'total_available': total_available,
'forecast_demand': forecast,
'gap_units': gap_units,
'gap_ratio': gap_ratio,
'gap_ratio_pct': f"{gap_ratio:.0%}",
'has_gap': gap_units > 0,8. 论文来源
未自动抽取;请查看原始 Skill 卡片。