跳到主要内容

三报表模型

在 Excel 中构建完全整合的三报表模型(利润表、资产负债表、现金流量表),包含营运资本附表、折旧摊销滚转、债务计划以及使现金与留存收益衔接的调节项。可与 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
信息

以下是 Hermes 在此技能触发时加载的完整技能定义。这是智能体在技能激活时看到的指令。

环境

此技能假设 headless 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 中计算一个值并将其写入单元格 —— 停止。改为编写公式。
  • 原因:当情景切换或假设变化时,模型必须灵活调整。硬编码会悄无声息地破坏所有下游完整性检查。

逐步与用户验证:

  1. 映射模板后 → 向用户展示您已识别的标签页/部分,并在操作任何单元格前确认
  2. 填充历史数据后 → 向用户展示历史数据块,并确认数值/期间与源数据匹配
  3. 构建利润表预测后 → 运行小计检查,向用户展示预测的利润表,在移至资产负债表前确认
  4. 构建资产负债表后 → 向用户展示每个期间的平衡检查(资产 = 负债 + 所有者权益),在移至现金流量表前确认
  5. 构建现金流量表后 → 向用户展示现金勾稽(现金流量表期末现金 = 资产负债表现金),在最终定稿前确认
  6. 不要端到端地填充整个模型并呈现完整结果 —— 在每张报表处中断,展示工作,尽早发现错误

格式化 —— 专业蓝/灰调色板(除非模板/用户另有规定,否则使用默认值)

保持色彩最少。 仅使用蓝色和灰色填充单元格。不要 引入绿色、黄色、橙色或多种强调色 —— 干净的模型讲究克制。

元素填充色字体
部分标题(利润表 / 资产负债表 / 现金流量表标题)深蓝 #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错误检查仪表板

模板检查清单

  • 识别模板中存在哪些标签页(并非所有模板都包含所有附表)
  • 记录上述未列出的任何模板特定标签页
  • 了解标签页依赖关系(例如,哪些附表会馈入主报表)
  • 在每个标签页上定位输入单元格与公式单元格

理解模板结构

在填充模板之前,请熟悉其现有布局,以确保数据输入到正确位置且公式保持完整。

识别行结构

  • 找到每个标签页顶部的模型标题
  • 识别部分标题及其视觉分隔
  • 找到显示单位(如百万美元、%、x 等)的行
  • 注意区分实际值与预测期的列标题
  • 确认期间标签(如 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 / 利息费用偿付债务的能力
债务 / 总资本总债务 / (总债务 + 所有者权益)资本结构
债务 / 权益总债务 / 总权益财务杠杆
流动比率流动资产 / 流动负债短期流动性
速动比率(流动资产 - 存货) / 流动负债即时流动性

信用指标层次检查

验证乐观情景显示最强信用状况:

  • 杠杆率:乐观情景 < 基准情景 < 悲观情景(越低越好)
  • 覆盖率:乐观情景 > 基准情景 > 悲观情景(越高越好)
  • 流动性:乐观情景 > 基准情景 > 悲观情景(越高越好)

契约合规性跟踪

如果已知债务契约,请添加明确的合规性检查,将实际指标与契约阈值进行比较。

情景分析(基准 / 乐观 / 悲观)

在假设标签页中使用 CHOOSE 或 INDEX/MATCH 公式创建情景切换(下拉菜单)。

情景描述
基准情景管理层指引或一致预期估计
乐观情景高于指引的增长、利润率扩张
悲观情景低于趋势的增长、利润率压缩

关键敏感性驱动因素: 收入增长率、毛利率、销售及管理费用百分比、应收账款周转天数/存货周转天数/应付账款周转天数、资本支出百分比、利率、税率。

情景审计检查: 切换会影响所有报表,所有情景下资产负债表平衡,现金勾稽,层次关系成立(乐观情景 > 基准情景 > 悲观情景,适用于净利润、EBITDA、自由现金流、利润率)。

SEC 文件数据提取

如果模板明确要求从 SEC 文件(10-K, 10-Q)中提取数据,请参阅 references/sec-filings.md 以获取详细的提取指南。此参考仅在使用监管文件中的上市公司数据填充模板时需要。

完成模型模板

本节提供了完成任何三表财务模型模板的通用指南,同时保留现有公式并确保数据完整性。

步骤 1:分析模板结构

在输入任何数据之前,请彻底审查模板以理解其架构:

识别输入单元格与公式单元格

  • 寻找视觉线索(字体颜色、单元格底纹)来区分输入单元格和公式单元格
  • 常见惯例:蓝色字体 = 输入,黑色字体 = 公式,绿色字体 = 链接到其他工作表
  • 使用 Excel 的“追踪引用单元格”和“追踪从属单元格”(公式 → 追踪引用单元格)来理解单元格关系
  • 检查可能控制关键输入的命名范围(公式 → 名称管理器)

绘制模板流程

  • 确认哪些工作表为其他表提供数据(例如,假设 → 损益表 → 资产负债表 → 现金流量表)
  • 注意任何辅助明细表及其与主表之间的链接关系
  • 在填充数据之前,记录模板特定的行项目和结构

步骤 2:在不破坏公式的情况下填充数据

数据输入黄金法则

法则描述
仅编辑输入单元格除非有意替换公式,否则切勿覆盖包含公式的单元格
保留单元格引用复制数据时,使用“选择性粘贴”(Ctrl+Shift+V)以避免用源格式覆盖公式
匹配模板的单位在输入数据前,验证模板使用的是千、百万还是实际值
遵守符号惯例遵循模板现有的符号惯例(例如,费用为正数或负数)
检查循环引用如果模板使用迭代计算,请确保已启用“迭代计算”选项

安全的数据输入流程

  1. 确定指定用于输入的确切单元格(通常有突出显示或标签)
  2. 首先输入历史数据,然后验证这些时期的公式计算是否正确
  3. 输入用于预测计算的假设驱动因素
  4. 审查计算输出,确认公式按预期工作
  5. 如果必须修改公式单元格,请在进行更改前记录原始公式

处理预置公式

  • 如果公式引用了您尚未填充的单元格,在所有输入完成之前,预计会出现临时错误(#REF!, #DIV/0!)
  • 当公式产生意外结果时,追踪引用单元格以识别缺失或错误的输入
  • 在检查所有工作表的公式依赖关系之前,切勿删除行/列

步骤 3:验证公式

公式完整性检查

在依赖模板输出之前,验证公式是否正常运行:

检查类型方法
追踪引用单元格选择一个公式单元格 → 公式 → 追踪引用单元格,验证它引用了正确的输入
追踪从属单元格验证关键输入是否流向预期的输出单元格
公式求值使用 公式 → 公式求值 来逐步执行复杂计算
检查硬编码值预测公式应引用假设,而不是包含硬编码值
用已知值测试输入简单的测试值以验证公式是否产生预期结果
跨表一致性确保相同的公式逻辑适用于所有预测期

需要注意的常见公式问题

  • 当跨期复制时,混合的绝对/相对引用导致错误结果
  • 到外部文件或已删除范围的链接断裂(#REF! 错误)
  • 在收入增长前的早期,除以零(#DIV/0! 错误)
  • 循环引用警告(对于利息计算可能是故意的)
  • 跨预测列的公式不一致(使用 Ctrl+\ 查找差异)

验证跨表链接

  • 确认出现在多个工作表上的数值是链接的(而非重复的)
  • 验证明细表合计与主表上的对应行项目一致
  • 检查期间标签在所有工作表上是否对齐

步骤 4:按工作表进行质量检查

在填充模板后,对每个工作表执行以下验证检查:

损益表(IS)质量检查

  • 历史期间的收入数据与源数据匹配
  • 所有费用行项目加总为报告的总额
  • 小计(毛利润、息税前利润、税前利润、净利润)计算正确
  • 税务计算逻辑适当(正确处理亏损)
  • 预测驱动因素引用假设工作表(无硬编码值)
  • 同比变化在方向上合理

资产负债表(BS)质量检查

  • 每个期间的资产 = 负债 + 所有者权益(主要检查)
  • 现金余额与现金流量表的期末现金匹配
  • 营运资本账户与辅助明细表一致(如适用)
  • 留存收益正确结转:前期留存收益 + 净利润 - 股利 +/- 调整 = 期末留存收益
  • 债务余额与债务明细表一致(如适用)
  • 所有资产负债表项目具有适当的符号(资产为正,大多数负债为正)

现金流量表(CF)质量检查

  • 经营活动产生的现金流量顶部的净利润与损益表中的净利润匹配
  • 非现金加回(折旧摊销、股权激励等)与其来源明细表/报表一致
  • 营运资本变动具有正确的符号(资产增加 = 现金使用 = 负数)
  • 资本支出与不动产、厂场和设备明细表或固定资产结转一致
  • 筹资活动与资产负债表上债务和股东权益账户的变动一致
  • 期末现金与资产负债表现金匹配
  • 期初现金等于上期期末现金

辅助明细表质量检查

  • 期初余额等于上期期末余额
  • 结转逻辑完整(期初 + 增加 - 减少 = 期末)
  • 明细表合计与主表行项目一致
  • 计算中使用的假设与“假设”工作表匹配

步骤 5:跨报表完整性检查

在验证各个工作表后,确认三张报表正确整合:

检查公式预期结果
资产负债表平衡资产 - 负债 - 所有者权益= 0
现金勾稽现金流量表期末现金 - 资产负债表现金= 0
净利润链接损益表净利润 - 现金流量表期初净利润= 0
留存收益期初留存收益 + 净利润 - 股利 - 资产负债表期末留存收益= 0(根据需要调整股权激励/其他项目)

步骤 6:最终审查

在认为模型完成之前:

  • 切换所有情景(如适用)以验证每种情况下的检查是否通过
  • 审查所有 #REF!、#DIV/0!、#VALUE! 和 #NAME? 错误,并解决或记录它们
  • 确认所有输入单元格都已填充(搜索占位符值)
  • 验证单位在所有工作表中一致
  • 在进行任何额外修改之前,保存一个干净的版本

模型验证与审计

本部分汇总了已完成模板的所有验证检查和审计流程。

核心关联关系 (必须始终保持)

所有公式详情请参见 references/formulas.md

检查项公式预期结果
资产负债表平衡资产 - 负债 - 所有者权益= 0
现金勾稽现金流量表期末现金 - 资产负债表现金= 0
月度与年度现金勾稽(月度) 期末现金 - (年度) 期末现金= 0
净利润关联利润表净利润 - 现金流量表起始净利润= 0
留存收益期初留存收益 + 净利润 + 股份支付 - 股利 - 资产负债表期末留存收益= 0
权益融资普通股/APIC变动 (资产负债表) - 权益发行 (CFF)= 0
第0年权益第0年募集的权益资本 - 第1年起始权益资本= 0

符号惯例参考

报表项目符号惯例
经营活动现金流折旧摊销, 股份支付正数 (加回)
经营活动现金流应收账款变动 (增加)负数 (现金使用)
经营活动现金流应付账款变动 (增加)正数 (现金来源)
投资活动现金流资本支出负数
筹资活动现金流债务发行正数
筹资活动现金流债务偿还负数
筹资活动现金流股利负数

循环引用处理

利息费用会产生循环性:利息 → 净利润 → 现金 → 债务余额 → 利息

在Excel中启用迭代计算:文件 → 选项 → 公式 → 启用迭代计算。设置最大迭代次数为100,最大变化量为0.001。在“假设”标签页中添加一个电路断路器开关。

检查类别

第1节:货币一致性

  • 在“假设”中识别并记录货币
  • 所有标签页使用一致的货币符号和单位
  • 单位行与模型货币匹配

第2节:资产负债表完整性

  • 资产 = 负债 + 所有者权益 (每个期间)
  • 公式:资产 - 负债 - 所有者权益 (必须 = 0)

第3节:现金流量完整性

  • 现金与资产负债表勾稽 (现金流量表期末现金 = 资产负债表现金)
  • 月度与年度现金勾稽:(月度) 期末现金 = (年度) 期末现金
  • 净利润与利润表勾稽 (现金流量表净利润 = 利润表净利润)
  • 折旧摊销与计划表勾稽
  • 股份支付与利润表勾稽
  • 应收账款、存货、应付账款变动与营运资金计划表勾稽
  • 资本支出与折旧摊销计划表勾稽

第4节:留存收益

  • 留存收益滚动检查:期初留存收益 + 净利润 + 股份支付 - 股利 = 期末留存收益
  • 显示组成部分分解以便调试

第5节:营运资金

  • 应收账款、存货、应付账款与资产负债表勾稽
  • 应收账款周转天数、存货周转天数、应付账款周转天数合理性检查 (超出正常范围时标记)

第6节:债务计划表

  • 总债务与资产负债表勾稽 (流动负债 + 长期债务)
  • 利息计算与利润表勾稽

第6b节:权益融资

  • 权益发行收入与资产负债表普通股/APIC增加额勾稽
  • 权益带来的现金增加 = 权益账户增加 (必须平衡)
  • 权益募集勾稽:普通股/APIC变动 (资产负债表) = 权益发行 (CFF) (必须 = 0)
  • 第0年权益勾稽:第0年募集的权益资本 = 第1年起始权益资本

第6c节:净亏损结转计划表

  • 起始净亏损 (第1年/成立时) = 0 (新业务从零净亏损开始)
  • 净亏损仅在税前利润 < 0 时增加 (必须实现亏损才能产生净亏损结转)
  • 递延所得税资产与资产负债表勾稽 (净亏损计划表递延所得税资产 = 资产负债表递延所得税资产)
  • 净亏损利用 ≤ 税前利润的80% (2017年后联邦限制)
  • 净亏损余额为非负数 (不能超过可用额度利用)
  • 仅当税前利润 < 0 时产生净亏损
  • 当应税所得 ≤ 0 时,所得税费用 = 0

第7节:情景层级

  • 绝对指标:上行情景 > 基准情景 > 下行情景 (净利润, 息税折旧摊销前利润, 自由现金流)
  • 利润率:上行情景 > 基准情景 > 下行情景 (毛利率%, 息税折旧摊销前利润率%, 净利润率%)
  • 信用指标:对于杠杆率,上行情景 < 基准情景 < 下行情景 (反向)

第8节:公式完整性

  • 销售成本、销售与市场、一般及行政、研发、股份支付由收入百分比驱动 (无硬编码)
  • 预测年份公式一致
  • 无 #REF!、#DIV/0!、#VALUE! 错误

第9节:信用指标阈值

  • 根据契约阈值将指标标记为绿色/黄色/红色
  • 汇总任何危险信号

主检查公式

将所有部分状态汇总为一个主检查:

  • 如果所有部分通过 → “✓ 所有检查通过”
  • 如果任何部分失败 → “✗ 检测到错误 - 请审查下文”

快速调试流程

当主状态显示错误时:

  1. 滚动查找红色高亮部分
  2. 确定哪个检查类别有失败项
  3. 导航到源标签页进行调查
  4. 修复根本问题
  5. 返回“检查”标签页验证解决情况

数据来源 — 优先使用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 用于交互式数据门户
    • 用户提供的数据(当上下文中没有时,明确询问)
  • 切勿捏造。如果无法获取某个倍数、先例或文件编号,请将该单元格标记为 [未注明来源] 并向用户指出。

归属

此技能改编自 Anthropic 的 Claude 金融服务业插件套件 (Apache-2.0)。Office-JS / Cowork 实时 Excel 路径已被移除;此版本通过 excel-author 技能的约定,面向无头的 openpyxl。原始版本:https://github.com/anthropics/financial-services