横向对标分析(杜邦)
用杜邦体系把净资产收益率拆到业务动因,说清变了多少、差在哪里、为什么、怎么办。报告格式见 references/report-template.md,首次执行前通读。
超出范围的请求(估值、生意质量、管理层),说明不适用并指向对应 Skill。
一、输入
| 项 | 规则 |
|---|---|
| 分析目标 | 默认横向找差距:只做本期主体 vs 对标;上年只在 ROE 一节作一行参考(差距在缩小还是扩大)。用户要求"找变化"时才做纵向,且不与横向并列成两条线 |
| 主体 | 用户上传年报 PDF。本期即可;需要平均数的,用年报"主要会计数据"中的前一年末数 |
| 对标 | 1–2 家,用户指定优先。未指定时,机器按"主营最接近、规模可比、披露口径可比"选 1 家最佳,写明入选理由与主要不可比之处 |
| 对标年报 | 用户上传。缺则停在审核点一,列明缺哪家哪年 |
年报只取数,不联网;用户明确要求联网时,来源标网址与检索日期。
二、层级(章节标题与实际深度一一对应)
| 层级 | 内容 | 性质 |
|---|---|---|
| 分解对象 | ROE = 归母净利润 ÷ 平均归母净资产 | 计算 |
| 一级 | 净利率 × 总资产周转率 × 权益乘数(口径见下) | 计算 |
| 二级 | 报表内构成:毛利率、四项费用率、税负与非经常损益;应收/存货/固定资产周转;资产负债率、有息负债率 | 计算 |
| 三级 | 报表外的经营变量:分产品/分行业/分地区收入与毛利率,量与价,成本构成,渠道 | 计算(取自附注与经营讨论) |
| 业务动因 | 三级变化背后的经营事实 | 判断 |
| 经营建议 | 取舍与行动 | 决策 |
一级口径必须相乘闭合:净利率=归母净利润÷营业收入;周转率=营业收入÷平均总资产;权益乘数=平均总资产÷平均归母净资产。
变动贡献用连环替代,顺序固定为 净利率→周转率→权益乘数,三项贡献之和须等于 ΔROE。
三级必做结构效应 vs 板块内效应拆分:Δ毛利率 = Σ(Δ占比×上期毛利率) + Σ(本期占比×Δ毛利率)。
三级数据不足时明写"本次未做三级分解,缺××数据",不得以二级顶替。
三、三条原则(写成输出格式,不是叮嘱)
| 原则 | 输出上的要求 |
|---|---|
| 可回溯 | 每个数标来源:〔p.87〕读自年报第 87 页;〔算〕由已标页码的数算出,算式附后或见附表;〔估〕机器估计或口径调整,写明假设。同业取舍理由写明 |
| 可验证 | 每层分解后附还原验算行(✓/✗)。每条动因写三要素:落位(对应哪个分项)、方向(该升还是降)、痕迹(别处应留下什么,优先选竞争性解释不会留下的区分性痕迹,现金流证据单标)。每条建议写证伪点与兑现时点 |
| 可掂量 | 每条动因标证据强度 ●●● / ●●○ / ●○○ 与条数,并写出最强反证。风险事项排查要全、申报要少:按清单全查,只报影响重大者,无则报"无" |
前两条查有没有说错,可掂量查有没有漏说、说重了。三条保证错误可被发现,不保证结论正确。
排查清单(内部全查,报告只报命中项):非经常损益占比、会计政策与估计变更、大额减值、关联交易、收入确认与应收异常、资本化比例、并表范围变化、少数股东损益。
四、流程与审核点
分段依据是错误能否被低成本发现,不是流程先后。
| 段 | 形态 | 审核点 | 能否跳过 |
|---|---|---|---|
| 0 取数 | 收集与计算 | 审核点一·物料型:确认对标名单、补齐缺失年报 | 不能,缺料跑不动 |
| 1 一级/二级/三级分解 | 计算 | 无——验算由程序完成,人不必介入 | — |
| 2 业务动因 | 分析 | 审核点二·审核型:人判断解释对不对 | 可以,报告顶部记"本段未经质询" |
| 3 经营建议 | 决策 | 审核点三·决策型:责任人取舍并签署 | 不能,未签署即标"草案" |
计算段不设审核点,是有意的:无差别的怀疑不等于审慎。
审核点一无论是否中断,都必须在报告中显示为「〇、取数与对标确认」一节,写明主体、对标各由谁确定(用户指定 / 机器认定)。机器自行认定的项,标"请确认"。
中断时不干等:把待核事项、页码、需回答的问题、选项全部备好,人只需勾选或一句话回答。用户说"一次跑完"时,审核点二按覆盖处理并留痕,审核点三的建议以"待签署草案"交付。
五、解读写法(可读性)
读者设定:懂基本会计、没看过这家公司的人。每张表后写一段解读,按三步走:
- 先说数:主体多少、对标多少、差多少;
- 再翻译:换成经营语言——"每卖 100 元""股东每出 1 元""同样的收入要多少人";
- 后落点:由此判断什么,下一层看哪里。
- 术语第一次出现时,用半句话解释它是什么(如"合同负债,即经销商提前打来的货款")。
- 不用未经解释的判断词("假象""口径问题""更重"),要写出它指什么、依据哪个数。
- 一句话只讲一件事。数字可以多,但每个数字都要有一句话告诉读者它意味着什么。
- 口径可能造成误判的地方,主动换一个口径复核,并写出复核结果。
- 非主因项只用一段话说明"为什么不展开",不列表。
六、执行纪律(效率)
pdftotext -layout x.pdf x.txt落盘,不整份读进上下文。grep -n定位关键词(合并利润表、合并资产负债表、主营业务分行业、分产品、营业成本构成、销售费用、非经常性损益),换算页码(\f计数),只打印命中页。- 所有数先写入取数表(公司、年份、科目、数值、页码),计算只读取数表,用 Python 一次算完并输出验算。
- 对标公司只取到二级+三级分板块毛利率,不展开其全部附注。
七、经营建议写法
- 默认 6–8 条短建议,一行一条,按动因分组,放在一张表里。每条都要列:对应动因、ROE 影响〔估〕、证伪点、兑现时点、可行性。
- 否决项单独列出,写明否决理由,方便人推翻机器的否决。
- 表后用不超过 4 条说明:哪些建议重叠不能相加,哪些互斥需要取舍,哪些 ROE 提升只是会计效果,哪条是反直觉的。
- 审核点三按条勾选,互斥项单设一栏。
八、Word 版(可选)
用户要 Word 或"供审稿/送审"时,把 Markdown 报告转为格式规范的 docx:
node scripts/md2docx.js 报告.md 报告.docx # 依赖 npm 包 docx
版式:A4,三线表,来源标注蓝色、验算行绿色、审核点为米黄框,页眉注明"草案"。转完渲染一页检查。
九、交付自检(附报告末尾)
| 检查项 | 结果 |
|---|---|
| 数字有来源标注 | M/N |
| 各层还原验算通过 | M/N |
| 动因三要素齐全 | M/N |
| 动因标证据强度与最强反证 | M/N |
| 建议有证伪点与兑现时点 | M/N |
| 章节标题与分解深度一致 | 是/否 |
| 审核点状态 | 一 ✓ / 二 ✓或"覆盖" / 三 已签或"草案" |