项目背景
为提升低客单价用户(Low AOV Users)的下单转化意愿,平台于 2024-05-01 在广州试点下调免运费门槛:由原先“订单满 ¥99 包邮”调整为“订单满 ¥79 包邮”。该策略旨在降低用户心理门槛,提升订单量,但同时可能带来订单结构下沉(AOV 下降)与单均履约成本上升的风险。
由于该政策属于区域性试点而非全量随机实验,处理组(广州)与对照组(其他城市)在用户画像、消费习惯及物流成本结构上存在系统性差异,简单对比无法识别政策的净效应。
因此,本项目采用 双重差分法(DID),在满足平行趋势假设的前提下,剥离时间趋势与地区固定效应的影响,从订单量、客单价(AOV)、订单结构、单均履约成本及净利润等维度,系统评估免运费门槛下调的真实因果效应,为后续全国推广或差异化包邮策略提供量化决策依据。
分析思路-DID设计
实验组-广州,对照组:深圳、佛山
关键假设
平行趋势:政策前,广州与深佛的下单行为趋势一致
无同时干扰:同期无其他针对广州的专项补贴或运力调整
评估指标
指标 | 业务含义 |
|---|---|
下单转化率 | 下单 UV / 访问 UV |
客单价 | 订单金额均值 |
复购率 | 当月下单 ≥2 次用户占比 |
单均物流成本 | 履约成本 / 订单数 |
SQL取数:城市*月份面板数据
with user_event as ( -- 计算uv select city_name, date_format(event_date,'%Y-%m') as ym, count(distinct user_id) as uv from ods_user_event where event_date between '2026-04-01' and '2026-05-31' and event_id = 'visit' group by city_name,date_format(event_date,'%Y-%m') ), user_order as ( -- 订单统计 select city_name, date_format(order_date,'%Y-%m') as ym, count(user_id) as order_users, count(distinct order_id) as order_cnt, sum(pay_amount) as gmv, sum(logistics_cost) as logistics_cost -- 物流成本 from dwd_order_detail where order_date between '2026-04-01' and '2026-05-31' and city_name in ('广州','深圳','佛山') group by city_name,date_format(order_date,'%Y-%m') ), user_repurchase as ( -- 复购统计 select city_name, ym, count(distinct case when user_order_cnt>=2 then user_id end) as repurchase_users from ( select user_id, city_name, date_format(order_date,'%Y-%m') as ym, count(distinct order_id) as user_order_cnt from dwd_order_detail where order_date between '2026-04-01' and '2026-05-31' and city_name in ('广州','深圳','佛山') group by user_id )x group by city_name,ym ) select city_name, ym, order_users/uv as conversion_rate, -- 下单转化率 gmv/order_cnt as avg_order_value, -- 客单价 repurchase_users/order_users as repurchase_rate, -- 复购率 logistics_cost/order_cnt as logistics_cost_per_order -- 每单物流成本 from user_event e left join user_order o on e.city_name=o.city_name and e.ym=o.ym left join user_repurchase r on e.city_name=r.city_name and e.ym=r.ymcity_name | ym | conversion_rate | avg_order_value | repurchase_rate | logistics_cost_per_order |
|---|---|---|---|---|---|
广州 | 2024-04 | 0.082 | 112.3 | 0.186 | 6.8 |
广州 | 2024-05 | 0.091 | 108.5 | 0.201 | 7.4 |
深圳 | 2024-04 | 0.081 | 118.6 | 0.192 | 6.5 |
深圳 | 2024-05 | 0.083 | 117.9 | 0.195 | 6.6 |
佛山 | 2024-04 | 0.079 | 109.4 | 0.178 | 6.3 |
佛山 | 2024-05 | 0.080 | 109.1 | 0.181 | 6.4 |
Python:DID 回归 + 平行趋势检验
import pandas as pd import statsmodels.formula.api as smf df = pd.read_csv("city_month_metrics.csv") # 构造变量 df["treat"] = df["city_name"].apply(lambda x: 1 if x == "广州" else 0) df["post"] = df["ym"].apply(lambda x: 1 if x == "2024-05" else 0) df["did"] = df["treat"] * df["post"] # DID 回归 for y in ["conversion_rate", "avg_order_value", "repurchase_rate", "logistics_cost_per_order"]: m = smf.ols(f"{y} ~ treat + post + did", data=df).fit(cov_type="HC1") print(f"\n--- {y} ---") print(m.summary()) # 平行检验 # 构造相对月份 df["rel_month"] = df["ym"].map({"2024-04": -1, "2024-05": 0}) df = pd.get_dummies(df, columns=["rel_month"], drop_first=True) # 政策前系数应不显著 model = smf.ols( "conversion_rate ~ treat*rel_month_-1 + treat*rel_month_0", data=df ).fit(cov_type="HC1") print(model.summary())指标 | 实验 Δ | 对照 Δ | DID |
|---|---|---|---|
| 下单转化率 | +0.009 | +0.001 | +0.008 |
客单价 | -3.8 | -0.5 | -3.3 |
复购率 | +1.5 | +0.3 | +1.2 |
物流成本 | +0.6 | +0.1 | +0.5 |
项目结论
下单转化率显著提升 0.8个百分点(+9.8%)
复购率提升 1.2个百分点(+6.4%)
客单价下降 ¥3.3(用户更多购买低客单价商品)
单均物流成本上升 ¥0.5(+7.7%)
业务解释
降低包邮门槛有效降低了用户心理阻力,尤其利好低客单价用户
增量订单主要来自 “凑单型”小额订单
物流成本上升幅度可控,ROI 仍为正
决策建议
建议在珠三角其他城市推广 ¥79 包邮策略
建议配套措施:对高物流成本区域动态定价,引导用户参与“多件优惠”以提升客单价