业绩天花板 DCF 估值模型(空间叙事 / 穿透叙事)
一、何时用这个 skill
用户要对某家公司做估值,且希望用业绩天花板 / 空间叙事 / DCF 第一性原理的框架,而不是传统的 PE 倍率或 PEG。
典型触发语:「用DCF估一下 XX」「用穿透叙事 DCF 估一下 XX」「用业绩天花板模型估 XX」「按邹佩轩 DCF 给 XX 算合理 PE」「XX 的合理动态 PE 该给多少」。
二、模型公理与核心结论
- 公理:股价 = 目之所及的所有未来现金流折现值(DCF 是估值第一性原理)。
- 把公司叙事压缩为三参数:m(业绩天花板倍数)、n(到达年限)、r(折现率)。
- 核心结论:合理动态 PE 几乎只由 m 和 r 决定,与 n 弱相关。 估值主战场是"终局空间 m",不是"增速多快"。
- 正确打开方式(书中方法论):先判业绩天花板(空间),再判复合增速;增速只是观察能否顺利达天花板的窗口。
三、完整公式(当前归母净利润基准=1)
g_ann = m ** (1/n) # 年化复合增速
PV_g = Σ_{t=1}^{n} (g_ann/(1+r)) ** t # 成长阶段现值
PV_term = m / (r · (1+r) ** n) # 永续稳态现值(达峰后利润恒为 m)
P0 = PV_g + PV_term # 理论股价(基准=1)
动态PE = P0 / g_ann # 对应【下一年】净利润(基期+1年,即 E0×g_ann);与静态PE(用当前年E0)不同,比较须统一口径
市值 = P0 × E0 # 给当前归母净利润 E0 时
反向(已知动态PE 求隐含 m):P0(m) 随 m 单调增,二分求解(见脚本 implied_m)。
永续增长兼容:g_perp>0 时按 r_eff = r − g_perp 代入基础模型(书中"按 8% 查表"即此意)。
四、执行工作流("确认几个参数即可估值")
第 1 步:先给基于研究的参数建议,再请用户校准(不要直接把"m 是多少"丢回给用户——AI 应先有主张、有依据,再让用户调整):
- 业绩天花板倍数 m(终局归母净利润是当前的几倍)——这是核心叙事判断。AI 必须先基于对该公司/行业的研究主动给出建议值或区间,并陈述推导理由:①行业终局空间与市占率上限;②历史复合增速能否线性外推;③竞争优势(护城河)能否支撑持续兑现;④资本配置(再投资扩张 vs 高分红),再投资空间决定 m 的上限。给出基准情景值 + 乐观/悲观情景区间,再请用户确认或调整,不要空问"m 给几"。
- 折现率 r(必填,无默认值):用户必须给出具体数字,AI 不替用户假设 10%。AI 可提供决策参考(如 ROE 中枢、国债收益率+风险溢价、强周期上浮 / 类债公用事业下浮的逻辑区间)辅助判断,但最终 r 由用户填定。
第 2 步:取默认参数(可不再问,但要在结论里写清默认值):
> 注意:折现率 r 不在此列——r 是必填项,必须由用户填写具体数字,无默认值(见第1步)。
- 到达年限 n:默认 10(5~15 年区间对 PE 影响 < ±10%)。若用户有明确判断(如 5 年)则采用。
- 永续增长率 g_perp:默认 0(不建议给永续增长;若用户坚持,按 r_eff = r − g_perp)。
- 当前归母净利润 E0(基期,基准=1):若用户只想要 PE 可不填;若要绝对市值则必填。必须标注 E0 的年份口径与来源:最近完整年报(如 2025 年报)/ TTM / 卖方一致预期(如 2026E),并写明具体数值;若用一致预期须注明来源平台(Wind / 东财 / 同花顺)。不同口径(年报值 vs 一致预期)不可混用。
第 3 步:调用计算脚本(本 skill 目录下 dcf_model.py):
# 前向:给定 m、r(及可选 n、g_perp、E0)
python dcf_model.py --m <m> --r <r> [--n 10] [--g 0] [--e0 <E0>]
# 反向:已知当前动态 PE,反推隐含业绩天花板
python dcf_model.py --pe <当前动态PE> --r <r> [--n 10]
> 运行环境:使用本机托管 Python(如 C:\Users\53276\.workbuddy\binaries\python\versions\3.13.12\python.exe)。
> 若只需手算/口算,直接用公式或查 formula_reference.md 第五节速查表(r=10%、n=10:m=2→15.3、m=3→20.1、m=5→28.8、m=10→48.6)。
第 4 步:输出结论,至少包含:
1. 采用的参数(m、r、n、g_perp、E0)——明确标注哪些是默认值;m 必须附推导理由与情景假设(基准/乐观/悲观),让用户看清主张来源,而非凭空给数。
2. E0 口径强制披露:必须写明 E0 取自哪一年、什么来源(最新年报 / TTM / 一致预期)、具体数值;若用一致预期,注明平台(Wind / 东财 / 同花顺)及一致预期数值,并提示其与最新年报实际值的差异。
3. 合理动态 PE(核心输出,明确为下一年口径——即相对 E0×g_ann)+ 合理市值(若给了 E0)。
4. 若用户输入的是当前 PE,则输出隐含业绩天花板 m,并提示"当前价格隐含的预期是终局利润达到当前的 X 倍"。
5. 敏感度提示 + 口径提醒:m 与 r 是动态 PE 的主风险敞口;n 弱相关;提醒景气度陷阱(增速上修但若天花板下修,PE 反降)。并强调:动态 PE 对应下一年净利润(E0×g_ann),若与行情软件显示的"静态 PE(当前年)"对比,须先换算同一口径再比,避免误判贵贱。
五、与书中算例的核对
dcf_model.py 自带核对(直接 python dcf_model.py 运行),已验证 r=10% 下 m=2/3/5/10 × n=10/5 全部复现;并覆盖 m=10+g_perp=2%→66.3 的永续增长兼容。
注意:书内 m=3 行(10年→20.9 / 5年→20.1)与 m=2/5/10 的一致规律相反,判定为源笔误,本 skill 采用模型自洽值(10年→20.1 / 5年→20.9)。
六、边界与合规
- 本 skill 仅沉淀数学公式与从第一性原理重推导/核对的结果,不整段复制原书文字;来源见邹佩轩《穿透叙事:寻找A股投资解析解》第1章1.2节,供溯源。
- 估值结论基于用户对 m/r 的主观叙事判断,仅供参考,不构成投资建议。
- 模型假设"达峰后利润永续稳定",对强周期股、公用事业、消费龙头更适用;对终局高度不确定的早期成长股,m 的拍板应更保守。