LBO 模型
在 Excel 中构建杠杆收购模型——资金来源与用途、债务计划表、现金归集、退出倍数、IRR/MOIC 敏感性分析。与 excel-author 配合使用。适用于 PE 筛选、赞助商案例估值或路演中的示例性 LBO。
技能元数据
| 来源 | 可选——通过 hermes skills install official/finance/lbo-model 安装 |
| 路径 | optional-skills/finance/lbo-model |
| 版本 | 1.0.0 |
| 作者 | Anthropic(由 Nous Research 改编) |
| 许可证 | Apache-2.0 |
| 平台 | linux, macos, windows |
| 标签 | finance, valuation, lbo, private-equity, excel, openpyxl, modeling |
| 相关技能 | excel-author, pptx-author, dcf-model, 3-statement-model |
参考:完整 SKILL.md
以下是该技能被触发时 Hermes 加载的完整技能定义。这是技能激活时 Agent 看到的指令。
环境
本技能假设使用 headless openpyxl——你将在磁盘上生成一个 .xlsx 文件。
遵循 excel-author 技能在单元格着色、公式、命名范围和敏感性表格方面的约定。
交付前重新计算:python /path/to/excel-author/scripts/recalc.py ./out/model.xlsx。
模板要求
本技能使用 LBO 模型模板。请始终先检查是否有附带的模板文件。
在开始任何 LBO 模型之前:
- 如果已附带/提供了模板文件:精确使用该模板的结构——复制它并用用户的数据填充
- 如果没有附带模板:询问用户:“您有希望我使用的特定 LBO 模板吗?如果没有,我可以使用标准模板,其中包含资金来源与用途、运营模型、债务计划表和回报分析。”
- 如果使用标准模板:复制
examples/LBO_Model.xlsx作为起点,并用用户的假设填充它
重要:当有像 LBO_Model.xlsx 这样的文件附随时,你必须将其用作模板——不要从头构建。即使模板看起来复杂或包含比所需更多的功能,也要复制它并根据用户的需求进行调整。当提供了模板时,切勿决定“从头构建”。
关键说明——请先阅读
使用 Python/openpyxl。编写公式字符串(ws["D20"] = "=B5*B6"),然后在交付前运行 excel-author 技能的 recalc.py 辅助工具。
核心原则
- 每个计算都必须是 Excel 公式——切勿在 Python 中计算值并将结果硬编码到单元格中。使用 openpyxl 时,请写入
cell.value = "=B5*B6"(公式字符串),而不是cell.value = 1250(计算结果)。模型必须是动态的,并在输入发生变化时更新。 - 使用模板结构——遵循
examples/LBO_Model.xlsx或用户提供的模板中的组织方式。不要自行设计布局。 - 使用正确的单元格引用——所有公式都应引用适当的单元格。切勿输入本应来自其他单元格的数字。
- 保持符号约定的一致性——遵循模板使用的任何符号约定(有些用负数表示流出,有些用正数)。全程保持一致。
- 逐节工作,每一步与用户确认——完整完成一个部分,向用户展示构建的内容,运行该部分的验证检查,并在进入下一部分之前获得确认。不要一次性构建整个端到端模型然后展示——后面的部分依赖于前面的部分,如果在回报已经构建好之后才发现资金来源与用途中的错误,就意味着所有地方都要返工。
公式颜色规范
- 蓝色 (0000FF):手动输入的数值——直接键入的数字,不引用其他单元格
- 黑色 (000000):包含计算的公式——使用运算符或函数的公式(
=B4*B5、=SUM()、=-MAX(0,B4)) - 紫色 (800080):指向同一工作表内单元格的链接——不含计算直接引用(
=B9、=B45) - 绿色 (008000):指向不同工作表内单元格的链接——跨表引用(
=Assumptions!B5、='Operating Model'!C10)
填充颜色方案 — 专业蓝灰色系(除非用户或模板另有指定,否则默认使用此方案)
- 保持克制——单元格填充只用蓝色和灰色。不要引入绿色、黄色、红色或多个强调色。专业的 LBO 模型讲究克制。
- 默认填充色板:
- 章节标题(资金来源与用途、运营模型等):深蓝色
#1F4E79,配白色粗体字 - 列标题(第1年、第2年等):浅蓝色
#D9E1F2,配黑色粗体字 - 输入单元格:浅灰色
#F2F2F2(或白色)——蓝色字体才是关键提示,填充色是辅助 - 公式/计算单元格:白色,无填充
- 关键输出(IRR、MOIC、退出权益):中蓝色
#BDD7EE,配黑色粗体字
- 章节标题(资金来源与用途、运营模型等):深蓝色
- 就这些颜色。 3种蓝色 + 1种灰色 + 白色。如果模板自身有颜色,则遵循模板。
- 注意:上面的蓝色/黑色/紫色/绿色字体颜色用于区分输入、公式和链接。它们与这里的填充色板是两套体系——两者配合使用。
数字格式标准
- 货币:
$#,##0;($#,##0);"-"或$#,##0.0,视模板而定 - 百分比:
0.0%(一位小数) - 倍数:
0.0"x"(一位小数) - MOIC/详细比率:
0.00"x"(两位小数,保证精度) - 所有数字单元格:右对齐
先明确需求
填写任何公式之前:
- 检查模板结构——识别所有章节,理解时间轴(哪些列对应哪些期间),注意任何已有的公式
- 如有不明确之处,先询问用户——如果模板结构、计算方法或需求模糊不清,请先询问再操作
- 确认关键假设——任何关键输入、计算偏好或特殊要求
- 只有在理解模板之后,再开始填写公式
模板分析阶段 — 必须先做
在填写任何公式之前,彻底检查模板:
-
映射结构——确定每个部分的位置以及它们之间的关联。注意哪些部分作为其他部分的输入源。
-
理解时间轴——哪些列代表哪些时期?是否有“交割日”或“备考”列?预测期从哪里开始?
-
识别输入单元格与公式单元格——模板通常使用颜色编码、边框或底纹来指示哪些单元格需要输入、哪些需要公式。遵循这些约定。
-
仔细阅读现有标签——行标签会准确告诉你期望什么计算。不要猜测——仔细阅读模板要求的是什么。
-
检查现有公式 – 有些模板可能已部分填充。除非明确要求,否则不要覆盖能正常工作的公式。
-
注意模板特定惯例 – 符号惯例、小计结构、各部分组织方式、不同组件是否有单独选项卡等。
填充公式 – 通用方法
对于每个需要公式的单元格,遵循以下优先级顺序:
第 1 步:检查模板
- 该单元格是否已有公式?如果有,验证其是否正确,然后继续。
- 是否有注释或备注指明了预期的计算方法?
- 行/列标题是否让计算方式一目了然?
- 相邻单元格是否显示了你应该遵循的模式?
第 2 步:查看用户的指令
- 用户是否指定了特定的计算方法?
- 是否有陈述的假设会影响此公式?
- 是否有提及任何特殊要求?
第 3 步:应用标准实践
- 如果模板和用户都没有指定,使用标准的 LBO 建模惯例
- 记录你所做的任何假设
- 如果确实不确定,向用户提问
常见问题区域
以下计算模式经常在 LBO 模型中引发问题。遇到它们时要特别注意:
平衡部分
- 当两个部分必须相等时(例如,资金来源 = 资金运用),其中一个项目通常是“填充项”(平衡数)
- 识别哪个项目是填充项,并将其计算为差值
税收计算
- 税收公式应仅引用相关的收入行和税率
- 不应引用不相关的部分(例如债务日程表)
- 考虑亏损是否能产生税盾,还是直接被忽略
利息和循环引用
- 如果利息的计算引用了受现金流影响的余额,则可能产生循环引用
- 使用期初余额(而不是平均值或期末余额)来打破循环引用
- 模式:利息 → 现金流 → 偿还 → 期末余额(如果利息使用了期末余额,就会形成循环)
债务偿还 / 现金扫除
- 当存在多个债务层级时,通常有一个优先级顺序
- 现金扫除应遵循优先顺序瀑布
- 余额不能为负 – 适当使用 MAX 或 MIN 函数
回报率计算(IRR/MOIC)
- 现金流必须具有正确的符号:投资 = 负数,收益 = 正数
- 如果使用 XIRR,需要对应的日期
- 如果使用 IRR,现金流应处于连续期间
- MOIC = 总收益 / 总投资
敏感性表格
- 使用奇数维度(5×5 或 7×7)—— 绝不使用 4×4 或 6×6。奇数维度保证有一个真正的中心单元格。
- 中心单元格 = 基准情景。 行和列轴值围绕模型的实际假设对称构建(例如,如果基准进入倍数 = 10.0x,则轴为
[8.0x, 9.0x, 10.0x, 11.0x, 12.0x])。中心单元格的 IRR/MOIC 必须等于模型实际的 IRR/MOIC 输出 —— 这是验证表格连接正确的证明。 - 高亮显示中心单元格 —— 中蓝色填充(
#BDD7EE)+ 粗体字体,从而在视觉上锚定基准情景。 - Excel 的 DATA TABLE 函数可能与 openpyxl 不兼容 —— 改为编写显式公式,引用行/列标题
- 每个单元格应显示不同的值 —— 如果全部相同,说明公式未正确变化
- 使用混合引用(例如,行输入用
$A5,列输入用B$4)
完成后的验证清单
运行公式校验
python /path/to/excel-author/scripts/recalc.py model.xlsx
必须成功返回,且零错误。
各模块平衡
- 任何需要平衡的模块(来源/用途、资产/负债)精确平衡
- 平衡项作为调整数值计算正确
- 跨模块应匹配的金额保持一致
收入/运营预测
- 营收/顶线数据根据驱动因素或增长率正确构建
- 所有成本和费用项目计算恰当
- 小计与合计加总正确
- 利润率和比率合理
- 与假设的链接正确
资产负债表(如适用)
- 资产 = 负债 + 权益(必须平衡)
- 所有项目链接到相应的附表或滚动表
- 期初余额 = 上一期期末余额
- 包含检查行,且显示为零
现金流量表(如适用)
- 以正确的收入数字开始
- 非现金项目已适当加回/扣除
- 营运资本变动的符号正确
- 期末现金 = 期初现金 + 净现金流量
- 现金余额在各报表间一致
辅助附表
- 滚动式附表保持平衡(期初 + 变动 = 期末)
- 附表正确链接到主表
- 计算项目使用适当的驱动因素
- 所有期间计算一致
债务/融资计划表(如适用)
- 期初余额与来源或上一期衔接
- 利息按适当的余额(通常为期初)计算
- 偿还金额考虑现金可用性和优先级
- 期末余额不能为负
- 各档期合计正确
回报/输出分析
- 退出/终值计算正确
- 包含所有相关调整项
- 现金流符号正确(投资为负,收益为正)
- IRR/MOIC 公式引用完整范围
- 结果对于该情景合理
敏感性表格(如适用)
- 网格维度为奇数(5×5 或 7×7)——存在一个真正的中心单元格
- 行列轴线值围绕基准情况对称(
[基准-2Δ, 基准-Δ, 基准, 基准+Δ, 基准+2Δ]) - 中心单元格输出等于模型的实际 IRR/MOIC —— 确认表格连接正确
- 中心单元格高亮(中蓝色填充
#BDD7EE,加粗字体) - 行列标题包含适当的输入值
- 每个数据单元格包含公式(非硬编码)
- 每个数据单元格显示不同的值
- 数值按预期方向变化(退出倍数越高 → IRR 越高,等)
格式规范
- 硬编码输入为蓝色 (0000FF)
- 计算出的公式为黑色 (000000)
- 同表链接为紫色 (800080)
- 跨表链接为绿色 (008000)
- 所有数字右对齐
- 全局应用适当的数字格式
- 无单元格显示错误值(#REF!、#DIV/0!、#VALUE!、#NAME?)
逻辑合理性检查
- 数值的量级合理
- 趋势符合预期(增长、下降、稳定)
- 无明显错误值(应为正值处出现负值、百分比不可能等)
- 关键输出在分析类型的合理范围内
常见错误规避
| 错误 | 具体表现 | 如何修复 |
|---|---|---|
| 硬编码计算值 | 输入变化时模型不更新 | 始终使用引用源单元格的公式 |
| 复制后单元格引用错误 | 公式指向错误单元格 | 验证所有链接,使用适当的 $ 锁定 |
| 循环引用错误 | 模型无法计算 | 对利息类计算使用期初余额,打破循环 |
| 各部分不平衡 | 本应匹配的总和不匹配 | 确保有一项作为调节项(以差值计算) |
| 不应出现负余额 | 支付/使用了超过可用量 | 适当使用 MAX(0, ...) 或 MIN 函数 |
| IRR/回报率错误 | 符号错误或范围不完整 | 检查现金流符号,确保公式覆盖所有期间 |
| 敏感性表显示相同值 | 公式未随输入变化 | 检查单元格引用——需要使用混合引用($A5, B$4) |
| 前后衔接不匹配 | 期初 ≠ 上期期末 | 验证期间之间的链接 |
| 符号惯例不一致 | 加法变成减法或反之 | 始终遵循模板的惯例 |
与用户协作——逐节检查节点
- 如果模板结构不清晰,请先询问再继续
- 如果用户的需求与模板冲突,请确认他们的偏好
- 完成每个主要部分后,暂停并与用户确认后再继续:
- 完成来源与用途后 → 展示平衡后的表格,确认调节项正确,获得批准后再构建运营模型
- 完成运营模型/预测后 → 展示预测的损益表,确认增长率和利润率合理,获得批准后再进行债务计划
- 完成债务计划后 → 展示期初/期末余额和利息,确认瀑布逻辑正确,获得批准后再计算回报
- 完成回报(IRR/MOIC)后 → 展示现金流序列和输出,确认符号和范围,获得批准后再制作敏感性表
- 完成敏感性表后 → 展示每个单元格随输入变化,确认基准情况落在预期位置
- 如果在验证中发现错误,在进入下一节之前修复
- 展示你的工作——必要时解释关键公式或假设
- 绝不要在未经过逐节确认的情况下展示完整模型——在根源处捕捉错误的单元格引用,比从错误的 IRR 倒推要快得多
该技能通过用正确的公式、恰当的格式和经过验证的计算填充模板,生成投资银行级别的 LBO 模型。本技能可适配任何模板结构,同时确保财务准确性和专业展示标准。
数据源 — MCP 优先,网络备用
下文多处提到“使用 S&P Kensho MCP / Daloopa MCP / FactSet MCP”。这些是原 Cowork 插件环境中的商业金融数据 MCP。在 Hermes 中:
- 如果你配置了任何结构化的金融数据 MCP(Hermes 支持 MCP —— 参见
native-mcp技能),优先使用它来获取时点可比公司、先例交易和申报文件。 - 否则,回退到:
- 针对美国申报文件的
web_search/web_extract(使用 SEC EDGAR:https://www.sec.gov/cgi-bin/browse-edgar) - 公司投资者关系页面(获取新闻稿、财报演示材料)
- 用于交互式数据门户的
browser_navigate - 用户提供的数据(当上下文未包含时,明确询问用户)
- 针对美国申报文件的
- 绝不凭空捏造。如果无法获取某个倍数、先例或申报编号,将该单元格标记为
[UNSOURCED],并向用户说明。
归属与许可
此技能改编自 Anthropic 的 Claude for Financial Services 插件套件(Apache-2.0)。已移除 Office-JS / Cowork 实时 Excel 相关路径;此版本通过 excel-author 技能的约定,针对无头 openpyxl 进行了适配。原文地址:https://github.com/anthropics/financial-services