title: “3 Statement Model” sidebar_label: “3 Statement Model” description: “Build fully-integrated 3-statement models (IS, BS, CF) in Excel with working capital schedules, D&A roll-forwards, debt schedule, and the plugs that make cas…”
{/* 本页面由 website/scripts/generate-skill-docs.py 根据技能对应的 SKILL.md 文件自动生成。请直接编辑源文件 SKILL.md,而非此页面。 */}
三表模型
在 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 |
参考:完整的 SKILL.md 文件
环境要求
该技能要求使用无界面模式的 openpyxl——即需在磁盘上生成 .xlsx 文件。请遵循 excel-author 技能的规范来设置单元格颜色、公式、命名范围以及敏感性分析表。在交付前需重新计算:python /path/to/excel-author/scripts/recalc.py ./out/model.xlsx。
三表财务模型模板填充
完善并填充集成化的财务模型模板,确保损益表、资产负债表和现金流量表之间具有正确的关联关系。
⚠️ 重要原则 —— 填充任何模板前请务必阅读
必须使用公式而非硬编码值(此为不可违反的原则):
- 所有的预测单元格、递延计算、关联项以及小计都必须是 Excel 公式,绝不能是预先计算好的数值
- 使用 Python/openpyxl 时,应编写公式字符串(如 `ws[“D15”] = “=D14*(1+Assumptions!$- 注意那些用于区分输入单元格与公式单元格的视觉提示(如字体颜色、单元格阴影效果)。
- 常见约定:蓝色字体表示输入值,黑色字体表示公式,绿色字体表示指向其他工作表的链接。
- 可使用 Excel 的“追踪引用/依赖项”功能(公式 → 追踪引用)来了解各单元格之间的关联关系。
- 检查是否存在可能影响关键输入值的命名范围(公式 → 名称管理器)。
梳理模板的结构逻辑
- 确定哪些工作表之间存在数据流转关系(例如:假设条件表 → 利润表 → 资产负债表 → 现金流量表)。
- 记录所有辅助明细表及其与主报表之间的关联方式。
- 在填充数据之前,先详细记录模板的各项具体项目及结构。
第 2 步:填写数据而不破坏公式
数据录入的黄金法则
| 规则 | 说明 |
|---|---|
| 仅编辑输入单元格 | 除非有意替换公式,否则切勿覆盖包含公式的单元格。 |
| 保留单元格引用 | 复制数据时,请使用“粘贴值”功能(Ctrl+Shift+V),以避免用源数据的格式覆盖原有公式。 |
| 统一模板中的单位 | 在输入数据之前,确认模板是使用千位、百万位还是实际数值格式。 |
| 遵循符号约定 | 按照模板既定的符号规则填写(例如:将费用规定为正数或负数)。 |
| 检查循环引用 | 如果模板使用了迭代计算,请确保已开启“启用迭代计算”功能。 |
安全的数据录入流程
- 找出明确标示为输入区域的单元格(通常会有高亮显示或标签)。
- 先输入历史数据,然后验证相应时期的公式计算结果是否正确。
- 输入用于驱动预测计算的假设参数。
- 查看计算结果,确认公式按预期正常运行。
- 如果必须修改某个公式单元格,请在更改前先记录下原有的公式内容。
处理预置公式
- 如果公式引用了尚未填写的单元格,在所有输入数据完成之前,可能会出现临时性错误(如 #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 |
| 所有者权益融资 | 股本/权益资本增加额(资产负债表) - 股权发行额(现金流量表) | = 0 |
| 第 0 年的股东权益 | 第 0 年的融资额 - 第 1 年的期初股东权益 | = 0 |
符号约定参考
| 报表类型 | 项目 | 符号约定 |
|---|---|---|
| 现金流量表 | 折旧摊销、无形资产摊销 | 正数(作为加回项) |
| 现金流量表 | 应收账款增加额 | 负数(表示现金流出) |
| 现金流量表 | 应付账款增加额 | 正数(表示现金来源) |
| 现金流入表 | 资本支出 | 负数 |
| 现金流出表 | 债务发行 | 正数 |
| 现金流出表 | 债务偿还 | 负数 |
| 现金流出表 | 股息支付 | 负数 |
循环引用的处理方法
利息支出会导致循环引用:利息 → 净利润 → 现金 → 债务余额 → 利息。
在 Excel 中需开启迭代计算功能:文件 → 选项 → 公式 → 启用迭代计算。将最大迭代次数设置为 100,最大变化量设置为 0.001。同时可在“假设条件”选项卡中添加一个中断机制开关。
检查类别
第 1 类:货币一致性
- 在“假设条件”部分明确指定并记录所使用的货币类型。
- 所有工作表需使用一致的货币符号及小数位数格式。
- 单位行中的设置需与模型所使用的货币单位相匹配。
第 2 类:资产负债表完整性
- 每个时期的资产是否等于负债加上所有者权益。
- 公式:资产 - 负债 - 所有者权益,其结果必须为 0。
第 3 类:现金流量表完整性
- 现金流量表中的现金余额是否与资产负债表中的现金余额一致。
- 月度与年度现金对比:月度期末现金应等于年度期末现金。
- 净利润是否与利润表中的数值一致。
- 折旧摊销是否与相关明细表数据相符。
- 无形资产摊销是否与利润表数据一致。
- 应收账款、存货、应付账款的变动是否与流动资产明细表数据相符。
- 资本支出是否与固定资产明细表数据一致。
第 4 类:留存收益
- 需验证留存收益的结转是否正确:期初留存收益 + 净利润 + 无形资产摊销 - 股息 = 期末留存收益。
- 可显示各组成部分的明细,以便于调试问题。
第 5 类:流动资产管理
- 应收账款、存货、应付账款是否与资产负债表中的数据一致。
- 应收账款周转天数、存货周转天数、应付账款周转天数的合理性检查(若超出正常范围则需标记)。
第 6 类:债务明细表
- 总债务额是否与资产负债表中的流动负债和长期负债之和一致。
- 利息计算是否与利润表数据相符。
第 6b 类:所有者权益融资
- 股权发行所得资金是否与资产负债表中股本/权益资本的增加额一致。
- 来自股权融资的现金增加额是否等于股东权益账户的增加额(两者必须平衡)。
- 股权融资的平衡验证:资产负债表中的股本/权益资本变化额 = 现金流量表中的股权发行额,其结果必须为 0。
- 第 0 年的股东权益平衡验证:第 0 年的融资额 = 第 1 年的期初股东权益。
第 6c 类:亏损结转明细表
- 第 1 年/成立初期的未实现亏损是否为 0(新成立的企业初始无未实现亏损)。
- 仅当息税前亏损为负数时,才会产生未实现亏损(必须先出现亏损才能形成未实现亏损)。
- 税盾项目是否与资产负债表中的递延所得税资产数据一致。
- 未实现亏损的利用比例不得超过息税前亏损的 80%(2017 年后的联邦税法限制)。
- 未实现亏损余额必须为非负数(不能超过实际可利用的额度)。
- 仅当息税前亏损为负数时,才会产生未实现亏损。
- 当应纳税所得额≤0 时,税费支出应为 0。
第 7 类:情景层级结构
- 绝对指标:乐观情景 > 基准情景 > 悲观情景(如净利润、息税折旧摊销前利润、自由现金流)。
- 利润率指标:乐观情景 > 基准情景 > 悲观情景(如毛利率、息税折旧摊销前利润率、净利润率)。
- 杠杆比率指标:由于杠杆效应,其数值呈现相反的层级关系,即悲观情景 > 基准情景 > 乐观情景。
第 8 类:公式完整性
- 销售成本、销售与营销费用、一般与管理费用、研发费用、无形资产摊销等均应以收入的一定比例作为计算依据(不得使用硬编码值)。
- 不同预测年度之间的公式需保持一致。
- 不存在 #REF!、#DIV/0!、#VALUE! 等错误。
第 9 类:信用指标阈值
- 根据契约规定的阈值,将各项指标标记为绿色/黄色/红色。
- 提供所有红色警告指标的汇总信息。
综合检查公式
将所有分类的检查结果汇总为一个综合判断:
- 若所有分类均通过检查 → 显示“✓ 所有检查均通过”。
- 若有任何分类未通过检查 → 显示“✗ 检测到错误 - 请查看下方内容”。
快速调试流程
当综合状态显示存在错误时:
- 向下滚动查找被标记为红色的分类。
- 确定是哪一类检查出现了问题。
- 转到对应的工作表进行详细排查。
- 解决根本问题。
- 返回到检查页面,确认问题已得到解决。
数据来源 —— 先使用 MCP,再启用网页备用方案以下内容中多处提到“使用 S&P Kensho MCP / Daloopa MCP / FactSet MCP”。这些均为源自原有 Cowork 插件体系的商业金融数据 MCP 工具。在 Hermes 中:
- 如果您已配置了任何结构化的金融数据 MCP(Hermes 支持 MCP 功能,详见
native-mcp技能),建议优先使用它们来获取特定时间点的财务数据、历史交易记录及监管文件信息。 - 若未配置此类 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