经营分析会材料包
输入一张经营数据表,输出一套能直接上会的材料:结论、图、异常、归因方向、追问预案。
不是「生成一段分析文字」,而是把数算对、把图画出、把会上会被问到的问题先列出来。
交付物
| 文件 | 内容 |
|---|---|
经营分析报告.md |
SCQA 一页结论 + 指标总览 + 趋势 + 量价拆解 + 结构 + 异常 + 归因假设 + 追问预案 + 口径边界 |
metrics.csv |
按期间汇总的指标、环比、同比、订单数、客单价(Excel 可直接打开) |
charts/trend.svg |
主指标趋势图(矢量,Word/浏览器可打开) |
charts/structure.svg |
维度结构条形图(有维度列时生成) |
summary.json |
机器可读摘要,便于二次处理 |
何时使用
- 月度/季度经营分析会、复盘会、向老板汇报。
- 收入/利润/订单异常,需要快速定位是「量」还是「价」、是哪个渠道。
- 用户提到:经营分析、复盘、上会、看板、同比环比、收入下滑、结构分析。
不适用:
- 财务结账、审计、税务口径确认——交给财务系统与会计。
- 预测/预算编制——本技能只做历史数据分析,不做预测。
- 非结构化数据(会议记录、聊天记录)——先整理成表。
前置检查
CSV 至少要有:
- 一列数值:收入、销售额、GMV、成本、订单数等(≥ 60% 可转数字)。
- 一列时间(强烈建议):
2025-01、2025/1、2025年1月、202501都可。 - 一列维度(可选):渠道、地区、品类、门店、客户。
数据要求:
- 编码 UTF-8 或 GBK 均可;分隔符逗号/制表符/分号自动识别。
- 一行一条明细(不是透视表);有合计行请先删掉,否则会重复计算。
- 金额单位统一(元/万元),报告不做单位换算。
- 缺失值留空或写
-,不要写「暂无」。
少于 3 个期间时,趋势和异常判断会失真;先告知用户,再决定是否继续。
执行流程
第 1 步:跑脚本
python scripts/biz_review.py 经营数据.csv --out 经营分析包
自动识别失败时手动指定:
python scripts/biz_review.py 数据.csv --date 月份 --metric 收入 --dim 渠道 --out 经营分析包
退出码:0 成功;2 解析失败或没有数值列。
第 2 步:先讲一页结论
按报告的 SCQA 讲,不要从表格第一行念:
- S 背景:统计期 + 累计规模。
- C 冲突:最新期数值 + 环比/同比。
- Q 问题:最值得解释的一个异常。
- A 答案:规模、结构、风险三句话。
第 3 步:解释异常,不要停在「下降了」
对每个异常,按这个顺序给假设:
- 口径:指标定义/取数 SQL/统计范围有没有变?
- 结构:是某个渠道/品类拖累,还是全面下滑?
- 量价:量掉了还是价掉了?(报告 2.1 已拆)
- 一次性:大促、退款、坏账、政策。
- 外部:季节、竞品、平台规则。
每一层都配「需要什么数据、谁来答」,写进报告第 5 节。
第 4 步:准备追问
报告第 6 节已经生成了 6 个问题;会上被问到时,先给结论再给证据,不要绕。
判断规则
| 规则 | 阈值 | 说明 |
|---|---|---|
| 异常(统计) | |z-score| ≥ 2 | 至少 4 个期间才计算 |
| 异常(环比) | 环比 ≤ -30% | 只报下滑,不报反弹,避免噪声 |
| 集中度 | CR3 ≥ 70% 且维度 > 4 项 | 提示集中风险 |
| 量价拆解 | 同时有主指标 + 订单/销量列 | 量贡献 + 价贡献 + 残差 |
| 比率列 | 列名含「率/占比/单价/客单价」 | 不求和,需人工加权 |
| 同比 | 需要上年同月数据 | 缺月显示「—」,不估算 |
口径优先级:先确认口径,再解释业务。口径没对齐时,任何归因都是猜。
输出格式
报告固定八节:
0. 一页结论(SCQA)
1. 指标总览
2. 趋势
2.1 量价拆解(有订单/销量列时)
3. 结构
4. 异常与待解释
5. 归因假设(会上验证)
6. 会议追问预案
7. 口径与边界
正文回复用户时用这个骨架(≤12 行):
材料包已生成:经营分析包/(报告 + 2 张图 + metrics.csv)
12 月收入 195.2 万,环比 +1.7%,同比缺上年数据。
8 月异常偏低(138.6 万,-22.6%),量价拆解显示主要是量掉了。
渠道 3 项:直营 49% / 分销 32% / 线上 19%,集中度参考意义有限。
会上先问:8 月是口径问题还是真实下滑?谁能给证据?
常见错误 → 怎么改(反模式)
| 反模式 | 问题 | 正确做法 |
|---|---|---|
| 把透视表直接喂进来 | 合计行/小计行导致重复计算 | 用明细数据,删合计行 |
| 只报数字不做对比 | 195 万是高是低说不清 | 至少给环比;有上年数据给同比 |
| 看到下滑就说「市场不好」 | 没有证据,无法行动 | 按口径→结构→量价→一次性→外部逐层排查 |
| 把比率列相加 | 「转化率 30% + 20% = 50%」是错的 | 比率列不求和,用加权或分子/分母重算 |
| 用截图代替图表 | 无法复用、看不清 | 用生成的 SVG,或粘进 PPT 后保留数据表 |
| 数据不干净就硬跑 | 缺失/负数/重复行导致结论错 | 先看报告「有效行/丢弃行」,再对数 |
FAQ
Q:没有日期列能跑吗?
A:能,会整体汇总成一个「合计」期;但没有趋势和异常分析。建议补一列月份。
Q:订单数列是「销量」不是「订单数」可以吗?
A:可以。脚本识别列名含「订单/销量/单量/数量/件数/人次」的列,用作量价拆解的量。
Q:同比为什么都是「—」?
A:只有一年数据。补上年同月数据后重跑即可;脚本不会估算同比。
Q:金额单位是万元,需要先换算成元吗?
A:不用,保持全表统一即可;报告按数值原样展示,不会自动换算。但要在汇报时说明单位。
Q:CR3 100% 是不是很危险?
A:维度只有 3 项时 CR3 必然 100%,没有意义。报告只在维度 > 4 项时才提示集中风险。
Q:能直接生成 PPT 吗?
A:当前输出 Markdown + SVG;SVG 可直接插入 PPT/Word,报告可复制到 PPT 备注或正文。
Q:数据涉密,会上传吗?
A:不会。全部本地处理,不上传、不调用外部接口。
验收清单
- [ ] 报告里的数字与
metrics.csv一致。 - [ ] 最新期环比/同比口径写清楚(缺数据写「—」,不估算)。
- [ ] 每个异常都有「口径/结构/量价/一次性/外部」至少两层假设。
- [ ] 图表能打开,中文不乱码。
- [ ] 比率列没有被求和。
- [ ] 明确写了数据边界与未验证项。
- [ ] 没有把相关性写成因果。
边界与免责
- 只做历史数据的描述性分析与异常提示,不做预测、不做审计。
- 不判断数据真假,不替代财务结账口径;上会前请与数据源对数。
- 异常阈值是统计提示,不是业务结论;需结合活动日历、政策、竞品验证。
- 比率列、去重口径、跨期可比性需人工确认。
- 原始数据只在本机处理,不上传。
参考资源
references/metric-tree.md—— 收入/成本/毛利/费用/客户指标树与常用公式。references/anomaly-playbook.md—— 下滑/暴涨的排查顺序与要数据清单。references/meeting-agenda.md—— 60 分钟经营会结构与角色分工。templates/汇报稿.md—— SCQA 汇报稿填空模板。templates/追问预案.md—— 会上高频追问与回答框架。scripts/biz_review.py—— 生成器;参数与退出码见文件头。