본문으로 건너뛰기

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 模型之前:

  1. 如果已附带/提供了模板文件:精确使用该模板的结构——复制它并用用户的数据填充
  2. 如果没有附带模板:询问用户:“您有希望我使用的特定 LBO 模板吗?如果没有,我可以使用标准模板,其中包含资金来源与用途、运营模型、债务计划表和回报分析。”
  3. 如果使用标准模板:复制 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. 识别输入单元格与公式单元格——模板通常使用颜色编码、边框或底纹来指示哪些单元格需要输入、哪些需要公式。遵循这些约定。

  4. 仔细阅读现有标签——行标签会准确告诉你期望什么计算。不要猜测——仔细阅读模板要求的是什么。

  5. 检查现有公式 – 有些模板可能已部分填充。除非明确要求,否则不要覆盖能正常工作的公式。

  6. 注意模板特定惯例 – 符号惯例、小计结构、各部分组织方式、不同组件是否有单独选项卡等。


填充公式 – 通用方法

对于每个需要公式的单元格,遵循以下优先级顺序:

第 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