案例背景
某 DTC 电商品牌 2026 Q2 GMV 同比增长 8%,但利润只涨 2%。市场总监想搞清楚:
钱赚哪儿去了?哪个环节在漏水?
传统做法:找数据分析师提需求 → 排期 3 天 → 取数 2 天 → 分析 2 天 → 报告 1 天 = 一周起步。
我们尝试用 AI 把整个流程压到半天内。
数据与工具
数据规模
| 表 | 行数 | 说明 |
|---|---|---|
orders | 50 万行 | 2026 Q2 订单(含退款) |
order_items | 120 万行 | 订单商品明细 |
products | 3200 行 | SKU 与成本价 |
users | 18 万行 | 注册用户 |
coupons | 4 万行 | 优惠券使用记录 |
工具链
- Claude Code:终端 AI,直接连数据库执行 SQL(配合 Filesystem MCP 读写分析脚本)
- PostgreSQL 15:业务库(只读副本)
- Cursor:写分析报告与可视化代码
分析流程
Step 1:拆解业务问题(15 分钟)
先不碰数据,让 AI 帮我把"钱去哪了"拆成可量化的子问题。
Prompt:
你是资深财务分析师。请把"GMV 涨 8% 但利润只涨 2%"这个现象,
拆解为 5 个可量化验证的子问题,每个给出:
1. 假设(一句话)
2. 验证所需的 SQL 思路
3. 预期结论对利润的影响方向(+/-)
AI 输出:
1. 客单价是否下降?
- 假设:促销拉新导致客单价走低
- SQL:对比 Q1/Q2 的 avg(order_amount)
- 影响:客单价↓ → 毛利↓
2. 退款率是否上升?
- 假设:大促引发冲动消费 → 退款增加
- SQL:退款订单数 / 总订单数,按月对比
- 影响:退款↑ → 净收入↓
3. 高毛利品类占比是否下降?
- 假设:低毛利品类增长更快,稀释整体毛利
- SQL:按品类算毛利率,对比 Q1/Q2 GMV 占比变化
- 影响:结构变化 → 整体毛利↓
4. 优惠券滥用是否加剧?
- 假设:叠券/羊毛党订单增加
- SQL:优惠金额 / GMV,新客占比
- 影响:优惠↑ → 净毛利↓
5. 物流成本是否上涨?
- 假设:偏远地区订单增加导致单均物流费上涨
- SQL:按地区算 avg(shipping_cost),对比 Q1/Q2
- 影响:物流↑ → 净利↓
关键:这一步 AI 节省的不是写代码的时间,而是结构化思考的时间。一周的分析师也未必能一次拆得这么全。
Step 2:逐个验证(2 小时)
让 Claude Code 直连数据库,按 5 个子问题逐个跑 SQL。
子问题 1:客单价
Prompt:
连接 postgres://readonly@host/db。验证假设 1:
按月对比 2026 Q1 与 Q2 的客单价(avg(order_amount))和订单量。
输出 Markdown 表格 + 一句话结论。
Claude Code 自动:
SELECT
DATE_TRUNC('month', created_at) AS month,
COUNT(*) AS orders,
AVG(order_amount) AS aov
FROM orders
WHERE created_at >= '2026-01-01'
AND status = 'completed'
GROUP BY 1
ORDER BY 1;
结果:
| 月份 | 订单数 | 客单价 |
|---|---|---|
| 2026-01 | 48200 | ¥287 |
| 2026-02 | 41000 | ¥302 |
| 2026-03 | 52400 | ¥295 |
| 2026-04 | 58800 | ¥241 |
| 2026-05 | 64200 | ¥228 |
| 2026-06 | 71000 | ¥235 |
结论:Q2 客单价从 ¥295 跌到 ¥235(-20%),假设 1 成立。
子问题 2:退款率
SELECT
DATE_TRUNC('month', created_at) AS month,
COUNT(*) FILTER (WHERE status = 'refunded') AS refunds,
COUNT(*) AS total,
ROUND(100.0 * COUNT(*) FILTER (WHERE status = 'refunded') / COUNT(*), 2) AS refund_rate
FROM orders
WHERE created_at >= '2026-01-01'
GROUP BY 1
ORDER BY 1;
| 月份 | 退款率 |
|---|---|
| 2026-03 | 4.2% |
| 2026-04 | 5.1% |
| 2026-05 | 6.8% |
| 2026-06 | 7.3% |
退款率几乎翻倍,假设 2 成立。
子问题 3:品类结构
Prompt:用 order_items + products,按品类算 Q1 vs Q2 的 GMV 占比与毛利率。
找出"GMV 占比上升但毛利率低于平均"的品类,这是利润漏点。
Claude Code 写了 30 行 SQL(JOIN 三张表 + 窗口函数),人工写至少 20 分钟。结果发现:
- 品类 A(毛利 15%):Q2 占比从 12% 涨到 28%(GMV 增长主力)
- 品类 B(毛利 42%):Q2 占比从 35% 跌到 22%
结论:低毛利品类增长过快稀释整体毛利,假设 3 成立。
子问题 4:优惠券
SELECT
DATE_TRUNC('month', o.created_at) AS month,
SUM(o.discount_amount) / SUM(o.order_amount) AS discount_ratio,
COUNT(*) FILTER (WHERE o.discount_amount > 0.5 * o.order_amount) AS deep_discount_orders
FROM orders o
WHERE o.created_at >= '2026-01-01'
GROUP BY 1;
| 月份 | 折扣率 | 深度折扣订单数 |
|---|---|---|
| 2026-03 | 11% | 1200 |
| 2026-06 | 23% | 8400 |
折扣率从 11% 飙到 23%,且深度折扣(优惠超 50%)订单涨了 7 倍。假设 4 强成立。
子问题 5:物流
SELECT
shipping_region,
AVG(shipping_cost) AS avg_cost_q1,
AVG(shipping_cost) FILTER (WHERE created_at >= '2026-04-01') AS avg_cost_q2
FROM orders
GROUP BY shipping_region;
物流单均成本微涨 3%,影响有限。假设 5 部分成立但非主因。
Step 3:归纳洞察(30 分钟)
把 5 个验证结果喂给 Claude,让它做综合归因。
Prompt:
以下是 5 个子问题的验证数据。请:
1. 按对利润影响的大小排序(影响最大的排第 1)
2. 找出根因之间的关联(如低毛利品类增长 vs 优惠券滥用是否有关)
3. 给出 5 条可落地的增长建议,每条标注预期利润提升
AI 输出(节选):
## 利润漏点排序(影响从大到小)
1. 优惠券滥用(贡献 60% 的利润流失)
- 折扣率 11% → 23%,深度折扣订单 7 倍增长
- 关联发现:深度折扣订单 78% 集中在品类 A(低毛利)
- 即:羊毛党用大额券扫低毛利品类,双重失血
2. 低毛利品类结构失衡(贡献 25%)
- 品类 A 占比 12% → 28%,毛利仅 15%
- 品类 B(毛利 42%)占比萎缩
3. 退款率上升(贡献 10%)
- 大促冲动消费 + 品类 A 品控问题
4. 物流(贡献 5%)
## 增长建议
1. 优惠券品类限制:低毛利品类禁用大额券
预期:折扣率回落至 15%,月增利 ¥18 万
2. 品类 A 品控整改 + 客单价提升组合
预期:退款率降至 5%,月增利 ¥6 万
3. 品类 B 流量倾斜(首页 + 推荐)
预期:占比回升至 30%,月增利 ¥9 万
...
Step 4:可视化与报告(15 分钟)
让 Cursor 写一个 Next.js 仪表板页面,把关键图表画出来:
Prompt:
基于以上数据,用 Next.js + Recharts 写一个单页仪表板,包含:
1. 客单价趋势折线图
2. 退款率柱状图
3. 品类毛利散点图(横轴 GMV 占比,纵轴毛利率)
4. 优惠券折扣率面积图
生成的页面可直接部署到内网。
关键 Prompt 复盘
Prompt 1:问题拆解
你是资深财务分析师。把"{业务现象}"拆解为 5 个可量化验证的子问题。
每个给出:假设、SQL 思路、预期影响方向。
为什么有效:把模糊业务问题结构化,避免"取完数才发现方向错了"。
Prompt 2:SQL 执行 + 一句话结论
连接 {db_url}。验证假设 N:{假设描述}。
输出:Markdown 表格 + 一句话结论 + 是否成立。
为什么有效:强制 AI 输出结论而非原始数据,省去人工解读。
Prompt 3:综合归因
以下是 5 个子问题的验证数据。请:
1. 按影响排序
2. 找根因关联
3. 给可落地建议 + 预期收益
为什么有效:让 AI 做"综合判断",这是分析师最耗时也最值钱的能力。
踩过的坑
坑 1:AI 幻觉数据
AI:根据数据,品类 C 在 Q2 增长 35%
真相:数据库里根本没有品类 C,AI 编的
解决:所有结论必须附 SQL 查询语句,人工抽查核对。AI 生成 SQL 没问题,但解读时容易过度发挥。
坑 2:大表全表扫描
AI 写了 SELECT * FROM orders(50 万行)→ 数据库 CPU 飙到 100%
解决:在 Prompt 中明确"必须加 WHERE + LIMIT,禁止 SELECT *",并给只读副本加查询超时。
坑 3:口径不一致
Q1 客单价算 ¥295,Q2 算 ¥235,但 AI 两次用的过滤条件不一样(一次含退款一次不含)
解决:在系统 Prompt 中定义统一口径:"客单价 = completed 订单金额均值,不含 refunded"。
坑 4:建议太虚
AI 建议:加强用户运营,提升留存(正确但没用)
解决:Prompt 加约束:"每条建议必须包含:具体动作 + 量化指标 + 预期收益"。
效率对比
| 环节 | 传统 | AI 辅助 | 提速 |
|---|---|---|---|
| 问题拆解 | 2 小时 | 15 分钟 | 8x |
| SQL 取数 | 4 小时 | 1 小时 | 4x |
| 数据清洗 | 2 小时 | 0(SQL 直接出结论) | ∞ |
| 图表制作 | 3 小时 | 15 分钟 | 12x |
| 归因洞察 | 1 天 | 30 分钟 | 16x |
| 报告撰写 | 半天 | 15 分钟 | 24x |
| 合计 | 约 1 周 | 3 小时 | 13x |
哪些环节 AI 真省时间
- ✅ 结构化拆解:把模糊问题变成可验证假设,这是 AI 最强的能力
- ✅ SQL 生成:复杂 JOIN/窗口函数,AI 写得比大部分分析师快
- ✅ 可视化代码:图表代码 AI 秒出
哪些环节还得靠人
- ⚠️ 业务判断:AI 给的 5 条建议里,3 条可落地,2 条脱离实际(比如"砍掉品类 A"忽略供应链沉没成本)
- ⚠️ 数据口径:AI 容易在口径上反复漂移,需要人来锁定
- ⚠️ 结论审核:AI 偶尔编造数据,必须人工抽查 SQL
小结
这个案例最大的启示不是"AI 多快",而是AI 把数据分析的门槛从"会写 SQL"降到了"会问问题"。
传统流程里,分析师 80% 时间花在取数和画图上,只有 20% 时间做真正的洞察。AI 把这个比例翻转了——人专注于业务判断和口径定义,重复劳动交给 AI。
下次遇到"帮我分析一下"的需求,别急着写 SQL,先让 AI 帮你把问题拆清楚。