电商大促营销异常诊断与归因分析
唇釉大促「第 2 件半价、第 3 件低至 20 元」宣传与结算口径割裂,退款率近翻倍、客诉激增。用 SQL + Python 完整链路量化「GMV 虚假繁荣 vs 实收惨淡」的剪刀差,定位根因是规则复杂度而非产品质量,并给出促销规则重构建议。
+56.8%
情人节 GMV 增幅
8.5%→15.4%
订单级退款率
43%→83%
规则类退款占比
项目背景
唇釉大促用「第 2 件半价、第 3 件低至 20 元」吸引凑单,但结算底层实为「总价打折、均价分摊」——宣传价与结算价对不上,引发感知欺骗与购物车流失,大量用户因「算不明白」涌入客服。
目标:量化复杂规则带来的客诉压力与隐性流失成本,验证「GMV 虚假繁荣 vs 实收惨淡」是否成立。

分析过程
数据:销售 34,893 行、退款 4,339 行、咨询 37,469 行,覆盖年货节与情人节两期大促。指标口径:订单级退款率 = 退款订单数 ÷ 全部订单数;规则类退款 = 「价格/优惠规则看不懂」类;实收 GMV = GMV − 退款金额。
链路:SQLite 装载派生 → 16 个 SQL 查询聚合 → Python 做 3σ 异常检测、GMV 增量归因(订单量效应 + 客单价效应)、卡方 / z 检验、jieba 情感挖掘 → matplotlib 11 张图 → 自包含 HTML 报告。


数据质量
ETL 阶段对三份原始数据做了完整探查,结论如下:
- 完整性34,893 / 4,339 / 37,469 行,无空值、无重复行
- 金额勾稽GMV = 件数 × 实付件均价、优惠 ≤ 原价,逐行核对全部通过
- 退款可关联退款单 100% 命中销售订单(order_id 按文本存储)
- 口径统一促销归属按 order_time 落促销期判定(年货节 01-07~01-15 / 情人节 02-07~02-14)
- 局限无 user_id / 渠道 / 投放字段,无法做用户分层与流量归因
核心结论
「虚假繁荣」成立:GMV +56.8% 但实收仅 +51.6%,订单级退款率 8.48% → 15.42%(z=19.4,p<0.001)。
根因是规则复杂度而非产品质量:规则类退款占比 43.24% → 83.05%,质量类原因不升反降(卡方 p<0.001)。
客诉压力击穿防线:愤怒词 ×2.8、困惑词 ×4.1、强负面咨询占比 ×3.5。
机制闭环:凑单诱导(3 件装 3.7%→31%)→ 均价分摊实付 80 元(实际折扣 27.3% 非宣传 80%+)→ 感知欺骗 → 退款与客诉 → 实收承压。




结论边界(哪些结论不能证明)
两期分属不同节日档期(2 月为送礼旺季),分析只能证明相关、不能证明因果;具体边界如下:
能证明
- 规则复杂度与退款率、客诉压力显著相关(p<0.001)
- 规则类退款占比与金额在复杂玩法期翻倍
- 凑单诱导(3 件装占比 ×8)与感知欺骗的机制链条
不能证明
- GMV 增量来自规则而非节日 / 送礼旺季
- 换成简单文案退款率必然下降(无同期对照组)
- 新老用户、渠道、投放强度的差异贡献
落地建议
- 短期止血上线「买 X 件立省 Y 元」计算器 + 客服安抚话术,先压客诉与退款
- 中期重构3.8 大促改为「均价可见」表达,宣传与结算口径一致
- 长期预警商品页比价工具 + 「退款原因—咨询类别」双通道 3σ 预警,提前发现异常
实验设计(如果再做一次)
在控制节日、流量、人群的前提下,检验「宣传口径从复杂阶梯价改为所见即所得」能否显著降低退款率与客诉率且 GMV 不缩水。
业务价值
用异常检测提前发现大促数据波动,能在 24 小时内定位问题,避免多花 6 位数级别的营销预算在错误的渠道上。
技术栈
- SQL
- Python
- Pandas
- jieba NLP
- 统计分析
- matplotlib