← 返回文章列表

Blog / Deer404

AI 财报取数的复核与更新

Oct 20·10 min
AI 生成的摘要
围绕可复核、可持续更新的财报工作簿,说明来源、指标口径、转换、输入绑定与人工确认如何配合。

财报分析的工作簿往往要连续维护多个季度。报告发布后,先把收入、现金等披露数据填进输入表,再由公式算出单季值、累计值和比率。下一期来了,沿用同一个模型继续更新。

这类工作适合让 AI 帮忙查找和整理数据,但仅仅把数字填进 Excel,还不足以完成一次可复核的更新。分析者需要知道用了哪份报告、取的是哪个口径,以及这个数最终改了哪张表。否则下个季度接着做时,就得重新猜上一次的处理方式。

这里记录一套辅助取数流程。输入是公司报告和需要维护的 Excel 模型,过程中分别记录指标定义、原始来源和单元格绑定,供人工复核后写入。它有映射约定和静态校验脚本,尚不能代替对报告原页和工作簿结果的检查。

可以用第二季度收入来说明整条流程。假设一季度报告给出收入 100,上半年报告给出累计收入 260,模型需要的是第二季度收入。算式只有一步,但在写下 260 - 100 之前,还有几个条件需要确认。本文金额均为说明用的示例,不对应实际公司。

从模型中的指标开始

模板上写着“收入”,并没有完整说明要取什么。分析者可能默认使用合并口径,报告里却同时出现母公司或分部收入;模型需要单季,报告给出的可能是年初至今累计。AI 按名称找到一个数字,数值类型和格式都正确,也可能取错对象。

所以这套流程先记录本次需要的指标定义:公司、统计范围、期间或时点,以及模型采用的口径。然后再用它寻找报告中的候选。定义与披露一致时可以直接使用,需要转换时留下计算依据,存在歧义时则先保留待确认状态。

仍以第二季度收入为例,指标定义要明确目标是哪个真实日期区间。Q2 只是一个标签,非自然财年的第二季度不一定是四月至六月。合并范围和报告版本也参与判断,不能只按“同一公司、同一年”配对两份数据。

另一些选择需要由分析者决定。例如模型中的现金是否包含受限存款,可能有多种有依据的处理方式。AI 可以列出候选科目及差异,用户选定定义后,再据此核实金额。选择口径与找到来源是两步,任何一步都不能替另一项作决定。

把数字和来源一起留下

找到上半年收入 260 之后,如果只记“第 30 页,填 D7”,短期可能够用。模板插入一行,或者后来换了一版报告,这条说明就很难继续沿用。

这套流程把需要保留的信息分成三部分:

记录用途发生变化时的处理
来源索引找回报告中的原数核对文件版本、页码和表格位置
指标定义说明模型采用的含义核对范围、期间和转换规则
工作簿绑定确定实际写入位置核对模板结构、输入格和公式依赖

D7 是位置,不是指标身份。公司、统计范围、真实期间和模型定义共同决定这条数据属于什么;换模板时可以重新绑定位置,不必因此重定义收入。反过来,换了一家公司,即使模板位置完全相同,也要重新检查指标含义。

来源索引记录文件版本与指纹、物理页或印刷页、表格行列、原文科目名、单位和币种。PDF 阅读器的第 20 页与报告印刷页码 20 可能不同,附注编号也可能挨着金额。定位要具体到另一个人可以找回原数,不能只留一个模糊的“见附注”。文件指纹则要实际计算核对,格式像哈希值不代表文件内容没有变化。

在收入例子里,260 和 100 应各有一条来源记录。之后计算出的 160 引用这两条记录,不把自己写成报告直接披露的金额。这样从工作簿回查时,既能找到两个原数,也能知道为什么要相减。

转换要有成立的条件

收入属于一段时间内发生的量。两个累计数起点相同、统计范围和会计口径一致时,可以用它们求出差额期间:

snippet
text
一季度收入:100
上半年累计收入:260
第二季度收入:260 - 100 = 160

如果上半年报告重列了一季度,旧报告中的 100 就不一定还能直接使用。此时应先核对重列后的比较数据,再判断差额是否成立。记录中因此保留真实起止日期、原报或重列版本及比较依据,不能只存“Q1”和“Q2”。

期末现金则是某个时点的余额。把六月末现金减去三月末现金,不能称为“第二季度现金”。加权平均股数、比例和每股指标也不能直接套用累计相减。这些区别需要进入指标定义和转换规则,否则同一张模板上的相邻两行,可能被错误地用同一种方式处理。

单位与币种同样要分开。million 表示数量级,没有说明是哪种货币;括号、负号和报表方向还会影响金额含义。流程先保留原值,再记录单位、符号和必要转换,不只留下最后一个用于填写的数。

涉及聚合时,计算记录还要列出各分量。分量应完整且互不重叠,小计已经包含子项,就不能把子项再加一次;缺少一个必需分量,也不能默认它为零。先把各项取整再求和,与求和后取整可能不同,方法、精度和顺序都要留在记录里。

未决项与实际写入

不是所有请求都能直接得到一个可填数字。可能有两个口径需要选择,也可能报告根本没有披露足够信息。这套流程用已核实、待确认、缺失和不适用四种状态区分处理结果。

已核实表示定义、来源与必要转换都已核对;待确认表示存在尚未决定的选择。缺失项可以按约定留空,但留空不会让它变成已核实。不适用也需要证据,不能用来替代没有找到。用户未回复时,候选值仍然保持未决。

现在假设第二季度收入 160 已经核实,可以定位到工作簿了。模型里可能有季度表、累计表和比率表,分析者看到的目标格未必就是原始输入。如果累计表通过公式引用季度表,正确的写入位置应是季度输入,直接把 160 填到累计表公式格,会破坏之后的更新。

因此绑定同时记录展示目标与输入归属。按列展开的模型需要找到正确期间的输入格;长表则按明确的唯一键更新已有记录或插入新记录,不能每次都追加一条相同期间的数据。依赖这些输入的累计值和比率,随后再检查计算结果。

写入计划也可能过期。等待人工确认期间,用户已经修改了目标原值,或模板增加了一行,再按旧位置写入就有风险。恢复前需要重新核对来源、指标定义、期间、模板结构和目标原值。只填写已确定部分时,应记录缩小后的范围,不清空其他未决项的旧值。

这些是流程对写入前后的要求,不表示已经实现跨文件事务或任意失败下的自动回滚。交付时仍要打开实际工作簿,检查输入值、保留下来的公式以及重算结果。

复核与下一期更新

同一项金额需要在几个位置对得上:报告原页、取数记录、转换结果和工作簿输入。分项与总计的勾稽可以帮助发现问题,但不能代替逐项来源检查。少抄一项又多抄一项,合计也可能碰巧正确;舍入容差应根据披露精度确定,不能为了配平改动原数。

静态校验脚本检查的是记录结构和关系,例如来源定位是否齐全、指纹格式是否正确、请求是否有对应记录、期间和依赖是否匹配。它不会自动打开报告核实金额,也不代替工作簿重算。文字识别本身有问题时,还要回到原页和字段位置,相关处理见OCR 字段取证笔记。

下次需要第三季度收入,可以复用已经确认的指标定义和绑定方式。新的九个月累计数与上半年累计数仍要先比较口径,再计算差额;如果报告改变了范围或重列了比较数据,就重新判断受影响的记录。模板变了则重建位置绑定,不按旧地址直接覆盖。

这比一次性抄几个数字多做了不少记录工作。对于只查询一两个数的任务,清楚的来源说明可能已经足够;对于连续维护的模型,这些记录让下一期可以接着做。分析者能够从一个输入格追到原报告,也能判断某次口径调整会影响哪些计算,而不用重新还原上一轮取数的全过程。

最后修改时间: Nov 5