促销活动供应侧ROI归因 — 备货成本+促销库存持有成本+尾货损失的全成本核算
Skill-Promo-ROI-Attribution-Supply-Side · 04-供应链
causalexperimentpricing广告与投放供应链与补货定价与利润WF-A 智能补货WF-B 广告优化WF-F 动态定价
年化 ROI15-20万元
实现难度⭐⭐⭐☆☆
业务视角
适用角色供应链负责人 · 采购负责人 · CEO / 运营 VP
适用平台Amazon FBA · 海外仓 · 多国仓位(美/欧/日)
什么情况下用库存周转率低,资金压在海外仓出不来;SKU 断货紧急空运,物流成本吃掉毛利;多仓库存分布不均
成功是什么样的库存周转天数从 90 天降到 60 天,断货率 <3%,海外仓综合成本降低 15-25%
业务痛点
1. 解决的问题
运营团队面临"大促ROI虚高忽视供应链成本"——备货持有成本+尾货折价+退货增量三段核算,真实ROI比广告ROI低30-50pp,指导更理性备货决策
2. 核心算法逻辑
现有促销Skill(InPromo/PostPromo/PrePromo)都聚焦需求侧(流量/销量/售罄率),但供应侧成本通常被忽视。陈凤霞书中专门强调:促销的真实ROI必须包含供应链成本。
3. 业务应用场景
场景A:Black Friday吸奶器大促完整ROI核算 - 业务问题:大促GMV 300万,毛利率35%,广告花费30万,但不知道供应侧成本多少,也不知道真实ROI - 数据要求: - 大促前备货量 + 实际入仓时间(vs 正常入仓时间) - 大促后剩余库存量 + 实际清仓价格 - 大促期间退货数量 vs 平时退货率 - 预期产出: - 备货持有成本:8万(备货额400万 × 0.5% × 4周) - 尾货折价损失:12万(剩余80万库存 × 15%折扣) - 大促退货增量成本:3万 - 供应侧总成本:23万 - 真实ROI = (300万×35% - 23万 - 30万) / 53万 =
**场景B:全年大促ROI纵向对比(黑五 vs 618 vs 日常)** - **业务问题**:黑五GMV是平时5倍,但供应侧成本也高5倍,真实利润贡献如何? - **数据要求**:黑五/618/日常三个时期的供应侧成本数据 - **预期产出**:黑五供应侧ROI 90% vs 618供应侧ROI 120% vs 日常 150% → 618性价比最高
4. 输入数据要求
请查看原始代码模板获取输入规格。
5. 输出结果
请查看原始代码模板获取输出规格。
6. 业务价值 / ROI
- ROI预估:识别供应侧成本后,下次大促减少30%备货(精确控制尾货) + 提前期缩短7天 → 年化节省约15-20万元;让管理层看到"真实ROI"(比广告ROI低30-50pp),有助于更理性的大促决策
- 实施难度:⭐⭐⭐☆☆(需要整合多个数据源:备货账单+销售数据+退货数据)
- 优先级评分:⭐⭐⭐⭐☆(陈凤霞:"90%的品牌只看广告ROI,忽视供应侧成本,这是战略盲区")
- 评估依据:大促供应侧成本通常占总促销成本的30-50%,但几乎从不被单独核算,是利润最容易被低估的地方
7. 代码模板
代码块数量:1 · 路径:未检测到
"""
促销活动供应侧 ROI 归因模型
功能:备货成本 / 持有成本 / 尾货损失 / 退货增量成本 / 真实促销ROI计算
输入:大促备货数据 + 销售结果 + 退货数据
输出:供应侧成本拆解 + 真实ROI + 改善建议
"""
import numpy as np
import pandas as pd
import warnings
warnings.filterwarnings('ignore')
def compute_promo_supply_cost(
backup_gmv_value: float, # 备货货值(元)
backup_lead_days: int, # 提前备货天数(vs正常)
capital_rate: float = 0.06, # 年资金成本
remaining_inventory_pct: float = 0.25, # 大促后剩余库存比例
clearance_discount: float = 0.30, # 清仓折扣率(30%=七折)
promo_return_rate: float = 0.06, # 大促期间退货率(高于平时)
normal_return_rate: float = 0.03, # 正常退货率
promo_gmv: float = 3_000_000, # 大促GMV
handling_cost_per_return: float = 80, # 每次退货处理成本
):
"""计算促销供应侧全成本"""
# 1. 备货持有成本(提前备货的资金占用)
holding_cost = backup_gmv_value * capital_rate * backup_lead_days / 365
# 2. 尾货折价损失
remaining_value = backup_gmv_value * remaining_inventory_pct
clearance_loss = remaining_value * clearance_discount # 按折扣计算损失
# 3. 大促退货增量成本
promo_orders = promo_gmv / 150 # 假设均单价150
incremental_returns = promo_orders * (promo_return_rate - normal_return_rate)
return_cost = incremental_returns * handling_cost_per_return
# 4. 汇总
total_supply_cost = holding_cost + clearance_loss + return_cost
return {
'holding_cost': round(holding_cost),
'clearance_loss': round(clearance_loss),
'return_cost': round(return_cost),
'total_supply_cost': round(total_supply_cost),
'supply_cost_rate': round(total_supply_cost / promo_gmv * 100, 2),
}
def compute_true_promo_roi(
promo_gmv: float,
gross_margin_rate: float,
ad_spend: float,
supply_cost: float,
baseline_gmv_daily: float,
promo_days: int = 5,
):
"""计算促销真实ROI(含供应侧成本)"""
# 增量GMV(大促GMV - 正常同期GMV)
normal_period_gmv = baseline_gmv_daily * promo_days8. 论文来源
- 2307.14923