title: “Lbo Model — Build leveraged buyout workbooks with IRR/MOIC in Excel” sidebar_label: “Lbo Model” description: “Build leveraged buyout workbooks with IRR/MOIC in Excel”
{/* 本页面由 website/scripts/generate-skill-docs.py 根据该技能的 SKILL.md 文件自动生成。请直接编辑源文件 SKILL.md,而非此页面。 */}
LBO 模型
在 Excel 中构建包含内部收益率(IRR)/ 经济投资回报率(MOIC)指标的杠杆收购分析工作表。
技能元数据
| 来源 | 可选 — 通过 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 文件
环境要求
该技能依赖于 无界面版 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)。
填充颜色方案——专业蓝灰色调(除非用户或模板另有指定,否则默认使用此方案)
- 保持简洁——仅使用蓝色和灰色作为单元格填充色。严禁使用绿色、黄色、红色或其他复杂配色。专业的杠杆收购模型讲究克制。
- 默认填充颜色方案:
- 章节标题(“资金来源与用途”“运营模式”等):深蓝色
#1F4E79,搭配白色加粗文字。 - 列标题(“第1年”“第2年”等):浅蓝色
#D9E1F2,搭配黑色加粗文字。 - 输入单元格:浅灰色
#F2F2F2(或纯白色)——蓝色字体用于标识,填充色仅为辅助。 - 公式/计算结果单元格:纯白色,无填充色。
- 关键输出结果(内部收益率、投资回报率、退出时股权价值):中蓝色
#BDD7EE,搭配黑色加粗文字。
- 章节标题(“资金来源与用途”“运营模式”等):深蓝色
- 这就是全部的配色方案:3种蓝色 + 1种灰色 + 白色。如果模板已设定专属颜色,则请遵循模板要求。
- 注意:上述用于区分输入值、公式及链接的蓝色/黑色/紫色/绿色字体颜色,与此处所述的填充颜色方案是相互独立的——二者共同构成完整的视觉标识系统。
数字格式标准
- 货币金额:根据模板不同,格式为
$#,##0;($#,##0);"-"或$#,##0.0 - 百分比:
0.0%(保留一位小数) - 倍数:
0.0"x"(保留一位小数) - MOIC/详细比率:为保证精度,格式为
0.00"x"(保留两位小数) - 所有数字单元格:右对齐显示
先明确需求
在填写任何公式之前:
- 仔细查看模板结构——识别所有板块,了解时间线(各列对应的时间段),注意已存在的公式
- 若有任何不清楚之处,请向用户确认——如果模板结构、计算方法或需求存在歧义,务必先询问后再继续操作
- 确认关键假设——包括所有关键输入项、计算偏好及特殊要求
- 只有在完全理解模板之后,才能开始填写公式
模板分析阶段——请优先完成此步骤
在填写任何公式之前,需先对模板进行彻底分析:
-
梳理结构——明确各板块的位置及其相互关联关系,注意哪些板块会为其他板块提供数据。
-
理解时间线——各列分别对应哪个时间段?是否存在“期末值”或“预测值”列?预测期从何时开始?
-
区分输入单元格与公式单元格——模板通常会通过颜色编码、边框或阴影来标示哪些单元格需要输入数据,哪些需要输入公式,请遵守这些规范。
-
仔细阅读现有标签——行标签会明确说明期望进行的计算类型。切勿自行猜测,应按照模板的要求来操作。
-
检查现有公式——有些模板会预先填入部分内容。除非得到明确指示,否则不要覆盖现有的有效公式。
-
注意模板特有的规范——符号规则、小计结构、板块组织方式,以及是否为不同组成部分设置了独立的标签页等。
输入公式——通用方法
对于每个需要输入公式的单元格,请按以下步骤操作:
第一步:查看模板
- 该单元格已有公式吗?如果有,请确认其正确性后再继续。
- 是否有注释或说明指明期望的计算方式?
- 行/列标签能否清晰体现计算内容?
- 相邻单元格是否存在可供参考的模式?
第二步:查阅用户说明
- 用户是否指定了特定的计算方法?
- 是否有会影响该公式的既定假设?
- 是否有提及任何特殊要求?
第 3 步:遵循标准操作规范
- 若模板或用户均未指定,则采用标准的杠杆收购建模惯例
- 需将所有假设记录下来
- 若确实存在不确定性,请向用户咨询
常见问题领域
以下几种计算模式在杠杆收购模型中常常引发问题。遇到时请格外注意:
各部分数值平衡
- 当两个数值必须相等时(例如“资金来源”等于“资金用途”),其中一个项目通常用作“填补值”(用于平衡数值)
- 需先确定哪个项目是填补值,再通过差值计算出该数值
税务计算
- 税务公式应仅引用相关的收入项和税率
- 不得引用无关的部分(例如债务偿还计划)
- 需考虑亏损是否可形成税收抵免,还是直接被忽略
利息计算与循环引用
- 若利息计算涉及受现金流影响的余额,可能会导致循环问题
- 应使用期初余额(而非平均余额或期末余额)来打破循环引用
- 正确的计算逻辑为:利息 → 现金流 → 债务偿还 → 期末余额(若利息计算使用期末余额,则会形成循环)
债务偿还/现金分配
- 当存在多笔债务时,通常会有优先级顺序
- 现金分配需遵循这一优先级顺序
- 余额不得为负值——需适当使用 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函数 |
| 内含报酬率/收益计算错误 | 符号错误或数据范围不完整 | 检查现金流的符号,并确保公式覆盖所有期间 |
| 敏感性分析表显示相同数值 | 公式未随输入参数变化 | 检查单元格引用——需使用混合引用方式(如 $A5, B$\4) |
| 迭代计算结果不一致 | 期初数值与上期期末数值不相等 | 核实各期间之间的链接关系 |
| 符号规则不一致 | 加法变为减法或反之 | 全程始终遵循模板规定的符号规则 |
- 如果模板结构不明确,请在继续之前先询问用户。
- 如果用户需求与模板存在冲突,需确认用户的最终选择。
- 完成每个主要部分后,务必暂停并征得用户确认后再继续:
- 完成“数据来源与用途”部分后 → 展示平衡表,确认插件使用正确,并在构建运营模型前获得用户批准;
- 完成“运营模型/预测”部分后 → 显示预测损益表,确认增长率和利润率合理,然后在制定债务计划前获得用户批准;
- 完成“债务计划”部分后 → 展示期初/期末余额及利息,确认资金流向逻辑正确,之后在计算回报指标前获得用户批准;
- 完成“回报指标(内部收益率/年均投资回报率)”部分后 → 显示现金流序列及计算结果,确认数值符号和范围准确,随后在生成敏感性分析表前获得用户批准;
- 完成“敏感性分析表”部分后 → 确认每个单元格的值均有变化,且基准情景的结果符合预期。
- 如果在验证过程中发现错误,请先修正后再进入下一部分。
- 详细展示工作过程——在必要时解释关键公式或假设依据。
- 绝不能在未对每个部分进行确认的情况下直接提交完整模型——在数据源头发现错误的单元格引用,要比从出错的内部收益率反推问题要快得多。
该技能通过填充正确的公式、规范的格式以及经过验证的计算结果,能够生成符合投资银行标准的企业杠杆收购模型。无论模板结构如何,它都能确保财务数据的准确性以及专业化的呈现效果。
数据来源 —— 首选 MCP,备用网络搜索
下文多处提到“使用 S&P Kensho MCP / Daloopa MCP / FactSet MCP”。这些均源自原有 Cowork 插件环境中的商业金融数据 MCP 工具。在 Hermes 中:
- 如果您已配置了任何结构化的金融数据 MCP(Hermes 支持 MCP —— 参见
native-mcp技能),则优先使用它们来获取特定时间点的对比数据、历史交易案例及监管文件信息。 - 否则,可采取以下替代方案:
- 对于美国市场的监管文件,可通过 SEC EDGAR 网站(
https://www.sec.gov/cgi-bin/browse-edgar)使用web_search/web_extract功能进行检索; - 从公司的投资者关系页面获取新闻稿和业绩演示文稿;
- 使用
browser_navigate访问交互式数据门户; - 使用用户提供的数据(当上下文中缺乏相关数据时,应明确向用户询问)。
- 对于美国市场的监管文件,可通过 SEC EDGAR 网站(
- 绝不可编造数据。如果无法找到倍数、历史案例或文件编号,应将对应单元格标记为
[UNSOURCED],并将其展示给用户。
版权说明
该技能改编自 Anthropic 的 Claude for Financial Services 插件套件(Apache-2.0 许可协议)。原有的 Office-JS / Cowork 在线 Excel 相关功能已被移除;当前版本通过 excel-author 技能的规范,基于无头版 openpyxl 实现。原始代码地址:https://github.com/anthropics/financial-services