Lbo Model
在 Excel 中构建杠杆收购(LBO)模型 — 资金来源与运用、债务偿还计划、现金清扫、退出倍数、IRR/MOIC 敏感性分析。与 excel-author 配合使用。适用于私募股权筛选、发起人案例估值或路演中的 illustrative 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 在触发此技能时加载的完整技能定义。这是技能激活时代理所看到的指令。
环境
此技能假设使用 无头模式 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"(两位小数以提高精度) - 所有数值单元格:右对齐
首先明确需求
在填写任何公式之前:
- 检查模板结构 - 识别所有章节,理解时间线(哪些列对应哪些期间),注意任何现有公式
- 如有不清楚之处,询问用户 - 如果模板结构、计算方法或需求存在歧义,请在继续之前提问
- 确认关键假设 - 任何关键输入、计算偏好或特定要求
- 只有在理解模板后,才 proceed 填写公式
模板分析阶段 - 首先执行此步骤
在填写任何公式之前,彻底检查模板:
-
映射结构 - 识别每个部分的位置以及它们之间的相互关系。注意哪些部分为其他部分提供数据。
-
理解时间线 - 哪些列代表哪些期间?是否有“交割”(Closing)或“备考”(Pro Forma)列?预测期从哪里开始?
-
识别输入单元格与公式单元格 - 模板通常使用颜色编码、边框或阴影来指示哪些单元格需要输入值,哪些需要公式。请尊重这些约定。
-
仔细阅读现有标签 - 行标签确切地告诉您期望进行的计算。不要假设 - 阅读模板要求的内容。
-
检查现有公式 - 某些模板已部分填充。除非特别要求,否则不要覆盖正在工作的公式。
-
注意模板特定约定 - 符号约定、小计结构、部分的组织方式、是否有针对不同组件的单独工作表等。
填写公式 - 通用方法
对于每个需要公式的单元格,请遵循以下层级:
第 1 步:检查模板
- 该单元格是否已有公式?如果有,验证其正确性并继续。
- 是否有注释或备注指示预期的计算?
- 行/列标签是否使计算显而易见?
- 相邻单元格是否显示出您应遵循的模式?
第 2 步:检查用户的指令
- 用户是否指定了特定的计算方法?
- 是否有影响此公式的既定假设?
- 是否提到了任何特殊要求?
第 3 步:应用标准实践
- 如果模板和用户均未指定,请使用标准的 LBO 建模惯例
- 记录您做出的任何假设
- 如果确实不确定,请询问用户
常见问题领域
以下计算模式在 LBO 模型中经常引起问题。遇到这些情况时请特别注意:
平衡部分
- 当两个部分必须相等时(例如,资金来源 = 资金运用),通常有一项是“ plug ”(平衡项)
- 识别哪一项是 plug,并将其计算为差额
税务计算
- 税务公式应仅引用相关的收入行和税率
- 不应引用不相关的部分(例如,债务计划表)
- 考虑亏损是否产生税盾,或者是否直接被忽略
利息与循环引用
- 如果利息计算引用受现金流影响的余额,可能会产生循环引用
- 使用期初余额(而非平均值或期末余额)来打破循环引用
- 模式:利息 → 现金流 → 偿还 → 期末余额(如果利息使用期末余额,这将形成循环)
债务偿还 / 现金清扫(Cash Sweeps)
- 当存在多个债务层级时,通常有一个优先顺序
- 现金清扫应尊重优先 waterfall
- 余额不能为负数 - 适当使用 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)——存在真正的中心单元格
- 行和列轴的值围绕基准情形对称(
[base-2Δ, base-Δ, base, base+Δ, base+2Δ]) - 中心单元格输出等于模型实际的 IRR/MOIC——确认表格连接正确
- 中心单元格已高亮显示(中蓝色填充
#BDD7EE,粗体字体) - 行和列标题包含适当的输入值
- 每个数据单元格包含公式(非硬编码)
- 每个数据单元格显示不同的值
- 值按预期方向变动(更高的退出倍数 → 更高的 IRR 等)
格式设置
- 硬编码输入为蓝色 (0000FF)
- 计算公式为黑色 (000000)
- 同工作表链接为紫色 (800080)
- 跨工作表链接为绿色 (008000)
- 所有数字右对齐
- 全程应用适当的数字格式
- 无单元格显示错误值 (#REF!, #DIV/0!, #VALUE!, #NAME?)
逻辑合理性检查
- 数量级合理
- 趋势合理(增长、下降、稳定符合预期)
- 无明显错误值(应为正数却为负、不可能的百分比等)
- 关键输出在该类分析的合理范围内
常见错误避免
| 错误 | 问题所在 | 如何修复 |
|---|---|---|
| 硬编码计算值 | 输入更改时模型不会更新 | 始终使用引用源单元格的公式 |
| 复制后单元格引用错误 | 公式指向错误的单元格 | 验证所有链接,使用适当的 $ 绝对引用 |
| 循环引用错误 | 模型无法计算 | 对于利息类计算使用期初余额,打破循环 |
| 部分不平衡 | 应匹配的总计不匹配 | 确保有一项为轧差项(作为差额计算) |
| 在不可能出现负值的地方出现负余额 | 支付/使用的金额超过可用金额 | 适当使用 MAX(0, ...) 或 MIN 函数 |
| IRR/回报率错误 | 符号错误或范围不完整 | 检查现金流符号并确保公式涵盖所有期间 |
| 敏感性表格显示相同值 | 公式未随输入变化 | 检查单元格引用 - 需要使用混合引用($A5, B$4) |
| 滚动预测不平 | 期初 ≠ 上期期末 | 验证期间之间的链接 |
| 符号惯例不一致 | 加法变成减法,反之亦然 | 在整个模型中始终遵循模板的惯例 |
与用户协作 — 分部分检查点
- 如果模板结构不清楚,在继续之前先询问
- 如果用户的需求与模板冲突,确认他们的偏好
- 在完成每个主要部分后,停止并与用户验证后再继续:
- 完成资金来源与运用 (Sources & Uses) 后 → 展示平衡表,确认轧差项正确,在构建运营模型之前获得确认
- 完成运营模型/预测后 → 展示预测损益表,确认增长率和利润率看起来合理,在债务计划表之前获得确认
- 完成债务计划表后 → 展示期初/期末余额和利息,确认偿付顺序逻辑,在回报率计算之前获得确认
- 完成回报率 (IRR/MOIC) 后 → 展示现金流序列和输出结果,确认符号和范围,在敏感性表格之前获得确认
- 完成敏感性表格后 → 展示每个单元格的变化情况,确认基准情形落在预期位置
- 如果在验证过程中发现错误,在进入下一部分之前修复它们
- 展示你的工作过程 - 在有帮助时解释关键公式或假设
- 切勿在未在每个部分进行检查的情况下提交完成的模型 — 从源头捕获错误的单元格引用比从错误的 IRR 反向追踪要快得多
此技能通过用正确的公式、适当的格式和经过验证的计算填充模板,生成投资银行质量的 LBO 模型。该技能适应任何模板结构,同时确保财务准确性和专业呈现标准。
数据源 — 优先使用 MCP,备选 Web
下文许多地方提到“使用 S&P Kensho MCP / Daloopa MCP / FactSet MCP”。这些是原始 Cowork 插件上下文中的商业金融数据 MCP。在 Hermes 中:
- 如果你配置了任何结构化金融数据 MCP(Hermes 支持 MCP — 参见
native-mcp技能),优先将其用于时点可比公司分析、先例交易和 filings。 - 否则,回退到:
- 针对美国 filings,对 SEC EDGAR (
https://www.sec.gov/cgi-bin/browse-edgar) 使用web_search/web_extract - 公司投资者关系页面,用于新闻稿和盈利演示文稿
- 使用
browser_navigate访问交互式数据门户 - 用户提供的数据(当上下文中没有时,明确询问)
- 针对美国 filings,对 SEC EDGAR (
- 切勿捏造。如果无法获取倍数、先例或 filing 编号,将该单元格标记为
[UNSOURCED]并向用户指出。
归属
此技能改编自 Anthropic 的 Claude for Financial Services 插件套件 (Apache-2.0)。已移除 Office-JS / Cowork live-Excel 路径;此版本通过 excel-author 技能的约定针对无头 openpyxl。原始来源:https://github.com/anthropics/financial-services