三张报表模型
在 Excel 中构建完全集成的三张报表模型(利润表、资产负债表、现金流量表),包含营运资金计划、折旧与摊销(D&A)滚动预测、债务计划,以及使现金和留存收益勾稽的配平项。与 excel-author 配合使用。
技能元数据
| 来源 | 可选 — 使用 hermes skills install official/finance/3-statement-model 安装 |
| 路径 | optional-skills/finance/3-statement-model |
| 版本 | 1.0.0 |
| 作者 | Anthropic(由 Nous Research 改编) |
| 许可证 | Apache-2.0 |
| 平台 | linux, macos, windows |
| 标签 | finance, three-statement, income-statement, balance-sheet, cash-flow, excel, openpyxl, modeling |
| 相关技能 | excel-author, pptx-author, dcf-model, lbo-model |
参考:完整 SKILL.md
以下是 Hermes 在触发此技能时加载的完整技能定义。这是技能激活时代理看到的指令。
环境
此技能假设使用 无头模式 openpyxl — 您将在磁盘上生成一个 .xlsx 文件。
遵循 excel-author 技能关于单元格着色、公式、命名范围和敏感性表的约定。
交付前重新计算:python /path/to/excel-author/scripts/recalc.py ./out/model.xlsx。
三张报表财务模型模板补全
补全并填充集成财务模型模板,确保利润表、资产负债表和现金流量表之间具有正确的链接关系。
⚠️ 关键原则 — 在填充任何模板前阅读
公式优于硬编码(不可协商):
- 每个预测单元格、滚动预测、链接和小计必须是 Excel 公式 — 绝不能是预计算值
- 使用 Python/openpyxl 时:写入公式字符串(
ws["D15"] = "=D14*(1+Assumptions!$B$5)"),而非计算结果(ws["D15"] = 12500) - 唯一应包含硬编码数字的单元格是:(1) 历史实际值,(2) “假设”选项卡中的假设驱动因素
- 如果您发现自己在 Python 中计算值并将结果写入单元格 — 请立即停止。改为写入公式。
- 原因:当场景切换或假设变更时,模型必须能够灵活调整。硬编码会静默破坏所有下游完整性检查。
逐步与用户验证:
- 映射模板后 → 向用户展示已识别的选项卡/部分,并在操作任何单元格前确认
- 填充历史数据后 → 向用户展示历史数据块,并确认值/期间与源数据匹配
- 构建利润表预测后 → 运行小计检查,向用户展示预测的利润表,在转向资产负债表前确认
- 构建资产负债表后 → 向用户展示每个期间的平衡检查(资产 = 负债 + 权益),在转向现金流量表前确认
- 构建现金流量表后 → 向用户展示现金勾稽(现金流量表期末现金 = 资产负债表现金),在最终确定前确认
- 不要端到端地填充整个模型并一次性呈现完成品 — 在每个报表处中断,展示工作成果,尽早发现错误
格式 — 专业蓝灰配色方案(除非模板或用户另有指定,否则为默认方案)
保持颜色简约。 仅对单元格填充使用蓝色和灰色。不要引入绿色、黄色、橙色或多种强调色 — 干净的模型需要克制。
| 元素 | 填充色 | 字体色 |
|---|---|---|
| 章节标题(利润表 / 资产负债表 / 现金流量表标题) | 深蓝色 #1F4E79 | 白色加粗 |
| 列标题(FY2024A, FY2025E 等) | 浅蓝色 #D9E1F2 | 黑色加粗 |
| 输入单元格(历史数据、假设驱动因素) | 浅灰色 #F2F2F2 或白色 | 蓝色 #0000FF |
| 公式单元格 | 白色 | 黑色 |
| 跨选项卡链接 | 白色 | 绿色 #008000 |
| 检查行 / 关键总计 | 中蓝色 #BDD7EE | 黑色加粗 |
即 3 种蓝色 + 1 种灰色 + 白色。 如果模板有自己的配色方案,请遵循模板。
字体颜色表示单元格的类型(输入/公式/链接)。填充颜色表示您所在的位置(标题/数据/检查)。
模型结构
识别模板选项卡组织
模板在选项卡命名约定和组织方式上各不相同。在填充之前,查看所有选项卡以了解模板的结构。以下是常见的选项卡名称及其典型内容:
| 常见选项卡名称 | 需查找的内容 |
|---|---|
| IS, P&L, Income Statement | 利润表 |
| BS, Balance Sheet | 资产负债表 |
| CF, CFS, Cash Flow | 现金流量表 |
| WC, Working Capital | 营运资金计划 |
| DA, D&A, Depreciation, PP&E | 折旧与摊销计划 |
| Debt, Debt Schedule | 债务计划 |
| NOL, Tax, DTA | 净经营亏损计划 |
| Assumptions, Inputs, Drivers | 驱动因素假设和输入 |
| Checks, Audit, Validation | 错误检查仪表板 |
模板审查清单
- 确定模板中存在哪些工作表(并非所有模板都包含每张附表)
- 注意上述列表中未列出的任何特定于模板的工作表
- 理解工作表之间的依赖关系(例如,哪些附表数据汇入主报表)
- 在每个工作表中定位输入单元格与公式单元格
理解模板结构
在填充模板之前,请熟悉其现有布局,以确保数据输入到正确的位置并保持公式完整。
识别行结构
- 在每个工作表的顶部找到模型标题
- 识别章节标题及其视觉分隔方式
- 找到指示单位(如百万美元、%、倍数等)的行
- 注意区分实际值(Actuals)期间与预测值(Estimates)期间的列标题
- 确认期间标签(例如,FY2024A、FY2025E)
- 识别输入单元格与公式单元格(通常通过字体颜色区分)
识别列结构
- 确认最左侧列中的行项目标签
- 验证历史年份是否位于预测年份之前
- 注意分隔历史期间与预测期间的视觉边框
- 检查所有工作表中的列顺序是否一致
使用命名区域 模板通常对关键输入和输出使用命名区域。在输入数据之前:
- 审查模板中现有的命名区域(在 Excel 中:公式 → 名称管理器)
- 常见的命名区域包括:收入增长率、成本百分比、关键输出(净利润、EBITDA、总债务、现金)、情景选择器单元格
- 确保输入的数据填入那些驱动这些命名区域的单元格中
预测期间
- 模板通常从最后一个历史年度起向前预测 5 年
- 验证历史(A)列与预测(E)列是否清晰分隔
- 确认列使用财政年度表示法(例如,FY2024A、FY2025E)
利润率分析
注意:仅在用户提示或模板明确要求时执行以下利润率分析。如果没有给出提示,请跳过此部分。
在利润表(IS)工作表上计算并显示盈利利润率,以跟踪运营效率并进行同业比较。
需包含的核心利润率
| 利润率 | 公式 | 衡量内容 |
|---|---|---|
| 毛利率 | 毛利 / 收入 | 定价能力、生产效率 |
| EBITDA 利润率 | EBITDA / 收入 | 核心运营盈利能力 |
| EBIT 利润率 | EBIT / 收入 | 扣除折旧和摊销后的运营盈利能力 |
| 净利润率 | 净利润 / 收入 | 最终盈利能力 |
包含利润率的利润表布局
在每个利润行项目正下方直接显示利润率百分比:
- 毛利下方显示毛利率 %
- EBIT 下方显示 EBIT 利润率 %
- EBITDA 下方显示 EBITDA 利润率 %
- 净利润下方显示净利润率 %
信用指标
注意:仅在用户提示或模板明确要求时执行以下信用分析。如果没有给出提示,请跳过此部分。
在资产负债表(BS)工作表上计算并显示信用/杠杆指标,以评估财务健康状况、债务承受能力和契约合规性。
需包含的核心信用指标
| 指标 | 公式 | 衡量内容 |
|---|---|---|
| 总债务 / EBITDA | 总债务 / LTM EBITDA | 杠杆倍数 |
| 净债务 / EBITDA | (总债务 - 现金) / LTM EBITDA | 扣除现金后的净杠杆 |
| 利息覆盖倍数 | EBITDA / 利息支出 | 偿债能力 |
| 债务 / 总资本 | 总债务 / (总债务 + 权益) | 资本结构 |
| 债务 / 权益 | 总债务 / 总权益 | 财务杠杆 |
| 流动比率 | 流动资产 / 流动负债 | 短期流动性 |
| 速动比率 | (流动资产 - 存货) / 流动负债 | 即时流动性 |
信用指标层级检查
验证乐观情景(Upside)显示最强的信用状况:
- 杠杆:乐观情景 < 基准情景 < 悲观情景(越低越好)
- 覆盖倍数:乐观情景 > 基准情景 > 悲观情景(越高越好)
- 流动性:乐观情景 > 基准情景 > 悲观情景(越高越好)
契约合规性跟踪
如果已知债务契约,请添加明确的合规性检查,将实际指标与契约阈值进行比较。
情景分析(基准 / 乐观 / 悲观)
在假设(Assumptions)工作表中使用情景切换器(下拉菜单),配合 CHOOSE 或 INDEX/MATCH 公式。
| 情景 | 描述 |
|---|---|
| 基准情景 | 管理层指引或共识预期 |
| 乐观情景 | 高于指引的增长、利润率扩张 |
| 悲观情景 | 低于趋势的增长、利润率压缩 |
需要敏感化的关键驱动因素:收入增长、毛利率、销售及管理费用(SG&A)占比、DSO/DIO/DPO、资本支出(CapEx)占比、利率、税率。
情景审计检查:切换器应更新所有报表,所有情景下资产负债表平衡,现金勾稽关系正确,层级关系成立(净利润、EBITDA、自由现金流、利润率的乐观情景 > 基准情景 > 悲观情景)。
SEC 备案数据提取
如果模板明确要求从美国证券交易委员会(SEC)文件(10-K、10-Q)中提取数据,请参阅 references/sec-filings.md 获取详细的提取指南。仅在使用监管文件中的上市公司数据填充模板时才需要参考此文档。
完成模型模板
本节提供了完成任何三张表财务模型模板的通用指南,同时保留现有公式并确保数据完整性。
步骤 1:分析模板结构
在输入任何数据之前,彻底审查模板以了解其架构:
识别输入单元格与公式单元格
- 寻找视觉线索(字体颜色、单元格底纹),以区分输入单元格和公式单元格
- 常见惯例:蓝色字体 = 输入,黑色字体 = 公式,绿色字体 = 指向其他工作表的链接
- 使用 Excel 的“追踪引用单元格/追踪从属单元格”功能(公式 → 追踪引用单元格)来理解单元格关系
- 检查可能控制关键输入的命名范围(公式 → 名称管理器)
映射模板流程
- 识别哪些工作表向其他工作表提供数据(例如,假设 → 利润表 → 资产负债表 → 现金流量表)
- 注意任何辅助附表及其与主要报表的链接关系
- 在填充数据之前,记录模板特定的行项目和结构
步骤 2:在不破坏公式的情况下填充数据
数据录入的黄金法则
| 规则 | 描述 |
|---|---|
| 仅编辑输入单元格 | 除非有意替换公式,否则切勿覆盖包含公式的单元格 |
| 保留单元格引用 | 复制数据时,使用“粘贴值”(Ctrl+Shift+V)以避免用源格式覆盖公式 |
| 匹配模板单位 | 在输入数据之前,验证模板使用的是千、百万还是实际数值 |
| 遵守符号惯例 | 遵循模板现有的符号惯例(例如,费用为正数或负数) |
| 检查循环引用 | 如果模板使用迭代计算,请确保已启用“启用迭代计算” |
安全数据录入流程
- 识别指定用于输入的确切单元格(通常高亮显示或带有标签)
- 首先输入历史数据,然后验证这些期间的公式是否正确计算
- 输入驱动预测计算的假设因子
- 审查计算输出以确认公式按预期工作
- 如果必须修改公式单元格,请在更改之前记录原始公式
处理预建公式
- 如果公式引用了尚未填充的单元格,在所有输入完成之前,预计会出现临时错误(#REF!、#DIV/0!)
- 当公式产生意外结果时,追踪引用单元格以识别缺失或不正确的输入
- 在未检查所有工作表中的公式依赖关系之前,切勿删除行/列
步骤 3:验证公式
公式完整性检查
在依赖模板输出之前,验证公式是否正常运行:
| 检查类型 | 方法 |
|---|---|
| 追踪引用单元格 | 选择公式单元格 → 公式 → 追踪引用单元格,以验证其是否引用了正确的输入 |
| 追踪从属单元格 | 验证关键输入是否流向预期的输出单元格 |
| 公式求值 | 使用“公式” → “公式求值”逐步执行复杂计算 |
| 检查硬编码 | 预测公式应引用假设,而不包含硬编码值 |
| 使用已知值测试 | 输入简单的测试值以验证公式是否产生预期结果 |
| 跨表一致性 | 确保相同的公式逻辑适用于所有预测期间 |
需要注意的常见公式问题
- 混合绝对/相对引用导致在跨期间复制时结果不正确
- 指向外部文件或已删除范围的链接断开(#REF! 错误)
- 在收入增长之前的早期期间出现除以零错误(#DIV/0! 错误)
- 循环引用警告(对于利息计算可能是有意的)
- 预测列之间的公式不一致(使用 Ctrl+\ 查找差异)
验证跨表链接
- 确认出现在多个工作表上的值是链接的(而非重复的)
- 验证附表总计是否与主要报表上的相应行项目相符
- 检查所有工作表中的期间标签是否对齐
步骤 4:按工作表进行质量检查
在填充模板后,对每个工作表执行以下验证检查:
利润表 (IS) 质量检查
- 历史期间的收入数据与源数据匹配
- 所有费用行项目之和等于报告总额
- 小计(毛利润、息税前利润 EBIT、税前利润 EBT、净利润)计算正确
- 税务计算逻辑适当(正确处理亏损情况)
- 预测因子引用假设工作表(无硬编码)
- 环比变化在方向上是合理的
资产负债表 (BS) 质量检查
- 每个期间的资产 = 负债 + 权益(主要检查项)
- 现金余额与现金流量表期末现金一致
- 营运资金科目与支持性附表勾稽(如适用)
- 留存收益正确结转:期初留存收益 + 净利润 - 股利 +/- 调整项 = 期末留存收益
- 债务余额与债务附表勾稽(如适用)
- 所有资产负债表项目符号正确(资产为正,大多数负债为正)
现金流量表 (CF) 质量检查
- 经营活动现金流 (CFO) 顶部的净利润与利润表净利润一致
- 非现金加回项(折旧与摊销 D&A、基于股份的薪酬 SBC 等)与其来源附表/报表勾稽
- 营运资金变动符号正确(资产增加 = 现金使用 = 负值)
- 资本支出 (CapEx) 与物业、厂房及设备 (PP&E) 附表或固定资产结转表勾稽
- 筹资活动与资产负债表中债务和权益账户的变动勾稽
- 期末现金与资产负债表现金一致
- 期初现金等于上一期的期末现金
支持性附表质量检查
- 期初余额等于上一期期末余额
- 结转逻辑完整(期初 + 增加额 - 减少额 = 期末)
- 附表总额与主报表行项目勾稽
- 计算中使用的假设与“假设”标签页一致
第 5 步:跨报表完整性检查
在验证各个工作表后,确认三张报表已正确集成:
| 检查项 | 公式 | 预期结果 |
|---|---|---|
| 资产负债表平衡 | 资产 - 负债 - 权益 | = 0 |
| 现金勾稽 | 现金流量表期末现金 - 资产负债表现金 | = 0 |
| 净利润链接 | 利润表净利润 - 现金流量表起始净利润 | = 0 |
| 留存收益 | 期初留存收益 + 净利润 - 股利 - 资产负债表期末留存收益 | = 0(根据需要调整 SBC/其他项目) |
第 6 步:最终审查
在认为模型完成之前:
- 切换所有情景(如适用),以验证每种情况下的检查均通过
- 审查所有 #REF!、#DIV/0!、#VALUE! 和 #NAME? 错误,并解决或记录
- 确认所有输入单元格均已填充(搜索占位符值)
- 验证所有标签页的单位一致性
- 在进行任何额外修改之前保存一个干净版本
模型验证与审计
本节汇总了已完成模板的所有验证检查和审计程序。
核心链接(必须始终成立)
有关所有公式详情,请参阅 references/formulas.md。
| 检查项 | 公式 | 预期结果 |
|---|---|---|
| 资产负债表平衡 | 资产 - 负债 - 权益 | = 0 |
| 现金勾稽 | 现金流量表期末现金 - 资产负债表现金 | = 0 |
| 现金月度与年度对比 | 期末现金(月度) - 期末现金(年度) | = 0 |
| 净利润链接 | 利润表净利润 - 现金流量表起始净利润 | = 0 |
| 留存收益 | 期初留存收益 + 净利润 + 基于股份的薪酬 (SBC) - 股利 - 资产负债表期末留存收益 | = 0 |
| 权益融资 | 资产负债表普通股/追加实缴资本 (APIC) 变动 - 筹资活动现金流 (CFF) 权益发行 | = 0 |
| 第 0 年权益 | 第 0 年募集权益 - 第 1 年期初权益资本 | = 0 |
符号惯例参考
| 报表 | 项目 | 符号惯例 |
|---|---|---|
| 经营活动现金流 (CFO) | 折旧与摊销 (D&A)、基于股份的薪酬 (SBC) | 正值(加回) |
| 经营活动现金流 (CFO) | 应收账款变动 ΔAR(增加) | 负值(现金使用) |
| 经营活动现金流 (CFO) | 应付账款变动 ΔAP(增加) | 正值(现金来源) |
| 投资活动现金流 (CFI) | 资本支出 (CapEx) | 负值 |
| 筹资活动现金流 (CFF) | 债务发行 | 正值 |
| 筹资活动现金流 (CFF) | 债务偿还 | 负值 |
| 筹资活动现金流 (CFF) | 股利 | 负值 |
循环引用处理
利息费用产生循环性:利息 → 净利润 → 现金 → 债务余额 → 利息
在 Excel 中启用迭代计算:文件 → 选项 → 公式 → 启用迭代计算。将最大迭代次数设置为 100,最大误差设置为 0.001。在“假设”标签页中添加一个中断开关切换按钮。
检查类别
第 1 部分:货币一致性
- 在“假设”中识别并记录货币
- 所有标签页使用一致的货币符号和量级
- 单位行与模型货币匹配
第 2 部分:资产负债表完整性
- 资产 = 负债 + 权益(每个期间)
- 公式:资产 - 负债 - 权益(必须 = 0)
第 3 部分:现金流量表完整性
- 现金与资产负债表勾稽(现金流量表期末现金 = 资产负债表现金)
- 现金月度与年度对比:期末现金(月度) = 期末现金(年度)
- 净利润与利润表勾稽(现金流量表净利润 = 利润表净利润)
- 折旧与摊销 (D&A) 与附表勾稽
- 基于股份的薪酬 (SBC) 与利润表勾稽
- 应收账款变动 ΔAR、存货变动 ΔInventory、应付账款变动 ΔAP 与营运资金附表勾稽
- 资本支出 (CapEx) 与折旧与摊销 (DA) 附表勾稽
第 4 部分:留存收益
- 留存收益结转检查:期初留存收益 + 净利润 + 基于股份的薪酬 (SBC) - 股利 = 期末留存收益
- 显示组件细分以便调试
第 5 部分:营运资金
- 应收账款 (AR)、存货、应付账款 (AP) 与资产负债表勾稽
- 应收账款周转天数 (DSO)、存货周转天数 (DIO)、应付账款周转天数 (DPO) 合理性检查(如果超出正常范围则标记)
第 6 部分:债务附表
- 总债务与资产负债表勾稽(流动债务 + 长期债务)
- 利息计算与利润表勾稽
第 6b 部分:权益融资
- 权益发行所得与资产负债表普通股/追加实缴资本 (APIC) 增加额勾稽
- 权益带来的现金增加 = 权益账户增加(必须平衡)
- 权益募集勾稽:资产负债表普通股/追加实缴资本 (APIC) 变动 = 筹资活动现金流 (CFF) 权益发行(必须 = 0)
- 第 0 年权益勾稽:第 0 年募集权益 = 第 1 年期初权益资本
第 6c 节:净经营亏损(NOL)明细表
- 期初 NOL(第 1 年 / 成立期)= 0(新企业从零 NOL 开始)
- 仅当税前利润(EBT)< 0 时,NOL 才会增加(必须实现亏损才能产生 NOL)
- 递延所得税资产(DTA)与资产负债表(BS)挂钩(NOL 明细表中的 DTA = 资产负债表中的递延所得税资产)
- NOL 利用额 ≤ 税前利润(EBT)的 80%(2017 年后的联邦限制)
- NOL 余额为非负数(利用额不得超过可用额)
- 仅当税前利润(EBT)< 0 时才产生 NOL
- 当应税所得 ≤ 0 时,税费支出 = 0
第 7 节:情景层级
- 绝对指标:上行 > 基准 > 下行(净利润 NI、息税折旧摊销前利润 EBITDA、自由现金流 FCF)
- 利润率:上行 > 基准 > 下行(毛利率 GM%、EBITDA 利润率、净利润率 NI%)
- 信用指标:杠杆率方面,上行 < 基准 < 下行(反向关系)
第 8 节:公式完整性
- 销售成本(COGS)、销售与市场费用(S&M)、一般及行政费用(G&A)、研发费用(R&D)、基于股票的薪酬(SBC)均由收入百分比驱动(无硬编码)
- 预测年份间的公式保持一致
- 无 #REF!、#DIV/0!、#VALUE! 错误
第 9 节:信用指标阈值
- 根据契约阈值将指标标记为绿色/黄色/红色
- 汇总任何红色警示项
主检查公式
将所有部分的状态聚合为单一的主检查:
- 如果所有部分均通过 → "✓ ALL CHECKS PASS"
- 如果任何部分失败 → "✗ ERRORS DETECTED - REVIEW BELOW"
快速调试工作流
当主状态显示错误时:
- 滚动查找以红色高亮显示的部分
- 确定哪个检查类别存在失败项
- 导航至源选项卡进行调查
- 修复根本问题
- 返回“检查”选项卡以验证是否已解决
数据源 — 优先使用 MCP,备选 Web
下文许多地方提到“使用 S&P Kensho MCP / Daloopa MCP / FactSet MCP”。这些是原始 Cowork 插件上下文中的商业金融数据 MCP。在 Hermes 中:
- 如果您配置了任何结构化金融数据 MCP(Hermes 支持 MCP — 参见
native-mcp技能),请优先使用它来获取时点可比公司分析、先例交易和 filings。 - 否则,回退到:
- 针对美国 SEC EDGAR (
https://www.sec.gov/cgi-bin/browse-edgar) filings 使用web_search/web_extract - 公司投资者关系(IR)页面,用于获取新闻稿和财报演示文稿
- 使用
browser_navigate访问交互式数据门户 - 用户提供的数据(当上下文中缺少数据时,明确询问用户)
- 针对美国 SEC EDGAR (
- 切勿伪造。如果无法 sourced 某个倍数、先例或 filing 数字,请将单元格标记为
[UNSOURCED]并向用户展示。
归属
本技能改编自 Anthropic 的 Claude for Financial Services 插件套件(Apache-2.0)。已移除 Office-JS / Cowork live-Excel 路径;此版本通过 excel-author 技能的约定面向无头 openpyxl。原始来源:https://github.com/anthropics/financial-services