发现事项与检查项

完整性检查针对哪些情况、各发现事项的严重程度如何、哪些发现事项会影响结账能否算作“clean”(无高、中严重程度发现事项),以及每项发现事项如何解决。

什么是发现事项

每次结账都会在任何内容对外分发之前,对 Haruno 根据公司导出文件构建的账簿运行完整性检查。每项检查都是一个始终存在的提问,而电子表格对它只会隐含地、悄无声息地作答。答案不对时,该检查就会产生一条发现事项。

Haruno 将每家公司称为 client(客户);文件夹名称、命令和仪表板中用的都是这个词。

发现事项意味着某个数字缺失、加总不符或列报有误:某个会计科目有余额,却没有任何报表项目承接;某张明细表所列的总账数与账簿不符;某个手工录入的差额声称已经核对一致,而明细数据并不支持。

发现事项不是程序故障,而是您原本要到第三周才会发现的情况。有发现事项的结账同样是一次成功的结账:发现事项正是它的产出,它仍会生成报表包、对账底稿和仪表板。由 Haruno 为您执行结账时,它会在任何报告对外分发之前,把这些发现事项逐一告诉您。

差异不等于发现事项。超出预算是关于经营的事实,而不是账目的缺陷,因此它显示在预算面板上,从不出现在发现事项列表中。

严重程度

严重程度含义是否计入?
某个数字缺失或加总不符:某项余额未出现在任何报表中;资产负债表勾稽不符;某张明细表核对所依据的数字并非账簿中的数字。是。它在投资组合层面计入,并使该月无法达到“fully reconciled”(已全部核对一致)。
报表仍然勾稽一致,但存在需要有人修正的错误:两个月份被错报了相同的金额;某张明细表需要重新编制;某个预算行对应不到任何报表项目。是,与高严重程度完全相同。
目前还没有造成错误。通常是一个既没有对应报表项目、也没有余额的会计科目:目前没有任何数字缺失,但该科目一旦出现第一笔余额,这笔余额就会悄无声息地从报表中漏掉。否。列在该公司的发现事项卡片上,但在任何地方都不计入。

一家公司在没有严重程度为高或中的发现事项时,即为“clean”。仪表板统计的正是这一点,结账在锁定某个月份时记录的也是这一点(参见“结账状态”)。低严重程度发现事项是未来的风险,绝不会成为某个月不算“clean”的原因。

发现事项有两种计数方式
哪些事项算作未解决,由同一条规则决定:高、中严重程度发现事项计入,低严重程度发现事项和偿债能力迹象不计入。投资组合的“Findings”(发现事项)列、“Clients with findings”(有发现事项的公司)指标卡以及结账状态都采用这条规则。公司页面上的“Integrity findings”(完整性检查发现事项)卡片还会列出低严重程度发现事项,因此一家公司在投资组合视图中可能显示为“clean”,其页面上却仍有若干行。
阈值只是起点
这些检查背后的阈值是依据一家公司的账目校准的;跨期类规则(missed_accrual 和预付费用待确认事项)则依据一家公司六个月的导出文件校准。预付费用和会计处理两类待确认事项背后的单张发票规则,尚未用真实的供应商明细检验过。请把它们全部视为起点。

检查项

在公司页面上,“Integrity findings”卡片逐条列出每个发现事项,包括其严重程度、触发的检查项、对象(某个会计科目、某个报表项目或一段连续期间)、检查项自身附带数字的说明,以及一个“Propose a fix”(提出修正方案)按钮。

示例输出(合成数据):“Integrity findings”卡片,显示三个严重程度为中的发现事项,分别是 Marketing programs 上的一个 budget_line_unmatched 和资产负债表项目上的两个 orphan_lines,每项都附有说明和“Propose a fix”按钮。
“Integrity findings”卡片。公司均为虚构的演示公司,数字为合成演示数据。

有些检查项只有在公司发送了它们所读取的文件时才会运行:试算平衡表、应收账款账龄表、按类别(class)划分的利润表、预算、供应商明细或 CRM 导出文件。这类检查项没有产生发现事项,可能只是因为没有可供检查的内容。空白不等于零。

检查项严重程度触发条件
unmapped_active_account某个会计科目有余额或发生额,但没有对应的报表项目,因此它在所有报表中都缺失。
presentation_tieout资产负债表的 CHECK 行(公司自己的公式,通常为资产总计减去负债和所有者权益总计)不为零。差额相同的一段连续期间合并为一行。
bs_tieout按科目分类汇总,资产余额不等于负债与所有者权益余额之和。
ni_crosscheck利润表上的本年累计净利润与资产负债表不一致。
recon_exceptions任一月份中,某个对账行处于例外状态。
recon_gl_mismatch某张明细表的“Per GL”(总账数)金额不是账簿余额。
cash_flow_classification高;报表未列示经营活动小计时为中借款被列报在经营活动现金流量中,不符合 ASC 230。
trial_balance_unbalanced试算平衡表的借方合计不等于贷方合计,或其 TOTAL 行与各行加总不一致。
trial_balance_account_unpresented某个会计科目在试算平衡表上有余额,却未出现在任何已导入的报表中。
statement_disagrees_with_trial_balance在两者都覆盖的期间内,试算平衡表与报表列示的某个数字相矛盾。
aging_disagrees_with_balance应收账款账龄表与应收账款科目核对不符。
class_total_disagrees某月按类别拆分的金额加总不等于该月发生额。
orphan_lines某个报表项目没有映射任何会计科目,将永远显示为零。
recon_coverage在最近一次结账时,某项达到重要性水平的余额既没有对账明细表,也没有豁免。
missed_accrual某项每月稳定发生的成本在某个月为空白,下个月约为平常的两倍。
schedule_drift中;无法比较当月变动时为低折旧或预付费用明细表与公司的会计政策或总账不一致。
budget_line_unmatched某个预算行对应不到任何报表项目,因此不会出现在任何面板上。
budget_line_uncomparable某个预算行只覆盖报告期间以外的月份。
budget_months_short预算在正在结账的月份之前就已截止。
deferred_rollforward_drift期初余额加本期增加、减本期确认后,与期末递延收入的差额超过重要性水平。
detail_disagrees_with_statement供应商明细比某月报表数字高出的部分超过重要性水平。
operating_count_disagrees已存储的客户数与其所依据的 CRM 交易记录不一致。
evidence_integrity某份保留的源工作簿缺失、被改动或无法读取。
unused_exemption某项豁免,或会计政策中的某条使用寿命设定,没有覆盖任何对象或无法读取。
unmapped_empty_account某个会计科目没有对应的报表项目,且在其出现的每个期间都为零。

另有两项检查,solvencygoing_concern,即使账目完全正确也会触发。它们显示在“Solvency and going concern”(偿债能力与持续经营)卡片上,参见“偿债能力迹象”。

待确认事项,而非发现事项

账目中有些形态值得一问,却不应计数。Haruno 把它们作为待确认事项报告。待确认事项没有严重程度,任何地方都不计入它,它也绝不会让某个月不再是“clean”。

待确认事项询问的内容判定依据
prepaid_candidate某个月份在某个成本类科目的期间合计中占了不成比例的份额(至少 40%,且至少是平均份额的两倍),或者某张发票是该供应商通常开票金额的数倍。付款时直接计入费用的预付款就是这种形态;支出本就不均衡的科目在支出集中的月份,也是这种形态。发票。如果它购买的服务期延续到该月之后,就应计入预付费用;如果不是,那只是支出较大的一个月。
treatment_candidate:按服务期分摊一条记入费用类科目的供应商记录,看起来购买的不止当月的服务。要么这一行本身就超过整个科目通常月度费用的三倍;要么备注中写明了期限(日期区间、月数,或诸如 annual(年度)之类的词),且该供应商当月金额比其通常月份至少高出发票金额的一半。如果预付费用明细表或固定资产登记簿已经记载了这笔款项,就不会询问。它是否购买了一段服务期。这要看发票,而不是备注。
treatment_candidate:资本化一条金额达到或超过公司自身资本化门槛、记入费用、且在固定资产登记簿中没有对应行的供应商记录。它是否属于资产。如果公司的会计政策中没有设定资本化门槛,就永远不会询问这一项。

为什么是待确认事项而不是发现事项

会计处理是公司会计人员对所购内容作出的判断。金额是事实;购买的是什么,则只能根据某人录入的备注去推测。在一份真实的导出文件上,这种预付形态大约只有一半的情况是对的。如果作为发现事项,它每两个月就会误报一次;而读者只要核查过一条却一无所获,此后就不会再核查其中任何一条。

两类待确认事项都只针对成本。如果一次结账只包含一个月的利润表,就不会询问某月所占的份额,因为只有一个月时,每个科目都占其自身合计的 100%;但针对单张发票的询问仍然可以提出。已列入明细表或登记簿的发票,或每月都会以这一金额收到的账单,都不在询问之列。

Haruno 从不替您回答待确认事项。如果某个科目的支出本来就不均衡,告诉 Haruno,它会记录下来,此后不再就该科目询问。您的回答只会让询问停止,不会抹去这一情况:结账仍会把该形态列为已回答,因为公司的支出方式可能会变化。

对账状态

公司页面上的“Reconciliation status”(对账状态)卡片核查每项余额是否与其明细表一致。公司对账底稿中结账月份已对账的每个资产负债表科目,在卡片上各占一行。

状态颜色含义
reconciled绿色已核对一致:明细表与总账的差额在 1 美分以内。
exception红色例外:明细表的期末余额与总账相差超过 1 美分。
open琥珀色待定:无法计算差额。不计为例外。

差额是明细表自身的期末余额减去总账余额。明细表会被重新计算,因此在工作簿中手工录入的差额无法让它核对一致。

重要性水平不会放宽状态判定:$200 的差额就是例外。在这张卡片上,重要性水平(公司的对账阈值,在接入公司时先起草一个注明为默认值的数额,由您确认或更正;参见“哪些事项绝不替您决定”)只决定哪些没有明细表的余额会被标记。

  • 处于例外状态的行会成为一条 recon_exceptions 发现事项,严重程度为高。
  • “Per GL”金额不是账簿余额的明细表会成为 recon_gl_mismatch,严重程度为高,即使它与自身的“Per GL”金额核对一致也是如此。
  • 既没有明细表、也没有豁免的达到重要性水平的余额不会成为一行,而是显示为 recon_coverage,严重程度为中。
显示“all schedules tie”也可能是没有对账底稿
无论是每张明细表都核对一致,还是没有任何对账底稿覆盖结账月份,“Recon exceptions”(对账例外)指标卡都会显示 0 和“all schedules tie”(所有明细表均核对一致)。“Reconciliation status”卡片可以区分这两种情况:没有对账底稿时,它会显示“No reconciliation binder ingested for this close.”(本次结账未导入对账底稿)。

偿债能力迹象

“Solvency and going concern”卡片位于每家公司页面的最前面,核查公司能否偿付其所欠款项。它只读取公司自己的报表:营运资金和流动比率、现金、资产总额和所有者权益、递延收入、经营活动现金流量(已导入现金流量表时),以及现金跑道(按现有现金可维持的月数)。

四项迹象

迹象严重程度
流动比率低于 1低于 0.5 时为高,否则为中。
所有者权益为负权益为负的金额不足资产总额的十分之一时为中,否则为高。
递延收入超过资产总额始终为高。
按经营活动测算的现金跑道不足 12 个月不足 3 个月时为高,否则为中。

每项被触发的迹象都是一条 solvency 发现事项。每条都带有一个“Draft the disclosure”(起草披露段落)按钮;在 macOS 应用中打开仪表板时,点击它会在 Haruno 的聊天中填入一条请求。现金跑道迹象需要已导入的现金流量表,并且借款已按 ASC 230 的要求从经营活动中移出。指标卡上的现金跑道基于最近期间的现金变动(包含融资)计算,从不触发迹象;卡片的“Basis”(依据)列会说明其自身的现金跑道采用哪种口径。该卡片不读取债务契约、债务到期情况或资产负债表日后事项;这些需要报表以外的信息。

多项迹象同时出现时

两项或以上迹象同时出现、且其中至少一项为高时,即构成一组集中出现的持续经营迹象,作为严重程度为高的 going_concern 发现事项报告。此时卡片开头会显示一段琥珀色的 ASC 205-40 说明,投资组合的“Going-concern indicators”(持续经营迹象)指标卡也会把该公司计入。

只列迹象,从不下结论
该卡片报告的是 ASC 205-40 要求管理层评价的条件。它本身从不对持续经营下结论。迹象集中出现时产生的发现事项会指出哪些因素可以改变它:已承诺的融资、对其背后余额的免除或次级安排,或者效果已量化的计划。

偿债能力迹象会在结账完全无误的账目上触发,因此它们是需要说明的事,而不是需要修正的事。它们从不会让一家公司失去“clean”状态,也从不把某个月标记为“reported with exception”(附例外事项报出)。它们转而随报表一同呈现:投资者报告保留偿债能力面板,因为缺少它的报告会既准确、又具有误导性。

解决发现事项

大多数发现事项的解决方式有两种:一是由您作出决定,记录在该公司的映射配置(spec)中(该文件保存其会计科目与报表项目之间的映射关系,以及您已确认的决定);二是由公司提供更正后的文件。仪表板提出建议,由您决定。Haruno 从不悄悄映射任何会计科目,也从不为了消除发现事项而修改公司的工作簿。

“Propose a fix”会在 Haruno 的聊天中填入一条请求,内容是能够解决该发现事项的映射配置更改,以及这项更改对报表的前后影响。在您按下发送之前,不会发送任何内容(参见“从仪表板向 Haruno 提问”)。您发送请求后,请求及其中的数字会与您输入的其他任何内容一样,经 Inferara 的托管服务发送给作答的模型提供方(参见数据处理与安全)。

发现事项解决方式
unmapped_active_account, unmapped_empty_account把该会计科目映射到一个报表项目。Haruno 会根据科目的名称、编号和相邻科目提出建议的报表项目,由您确认。先处理余额为零的那个科目:现在处理它还没有任何代价。
presentation_tieout通常是同一条科目映射。当 CHECK 行的差额恰好等于某个未映射科目的余额时,一条科目映射就能同时解决这两个发现事项。
orphan_lines把某个会计科目映射到该报表项目,或记录一项豁免,说明该项目预期为空。
recon_coverage把相应明细表加入对账底稿,或记录一项豁免,说明这项余额在哪里对账。
recon_exceptions, recon_gl_mismatch映射配置中的任何内容都无法消除它们。公司自己的两份文件相互矛盾,因此必须在源头更正。
missed_accrual, schedule_drift在公司自己的账簿中做一笔会计分录或重新编制明细表,并以更正后的导出文件或对账底稿的形式提交。如果更正后的导出文件重述了已锁定月份,需要您说明原因并重新开启这些月份。
试算平衡表、账龄、类别、供应商明细、CRM 和递延收入相关检查项找出是哪个来源有误;发现事项会列出常见原因。当来自同一总账的两份报表不一致时,请按同一时点重新导出两者,而不是从中任选其一。
预算相关检查项把该预算行的名称改为与报表项目一致,或删除该行,让它的缺失成为一项明确的决定。对截止过早的预算进行延展。
evidence_integrity如果您仍保有缺失的文件,重新导入即可。被改动的副本无法通过重新导入修复:请用已知完好的原件替换它。报表不受影响。
unused_exemption更正该条目,使其覆盖您原本想覆盖的对象。它是一个记错了位置的回答。
solvency, going_concern账目中没有需要修正的内容。需要作出说明,而“Draft the disclosure”可以帮您写出这份说明。

如果该公司以前已经结过账,完成科目映射之后的重新结账会被拒绝,因为这条科目映射会改变已锁定月份中的数字。拒绝信息会指出哪些数字将发生变化。用一句话告诉 Haruno 您的原因;它会只重新开启这些月份,在每个月份下保留您的原因,然后再次结账。参见“锁定”。

豁免

豁免是对某项检查认可的例外处理,记录在公司的映射配置中。每项豁免恰好回答一件事:这项余额在哪里对账(recon_coverage);这个报表项目为什么为空(orphan_lines);或者这个科目的支出是否本来就不均衡(预付费用和会计处理两类待确认事项)。科目豁免指定一个精确的科目名称、一个科目编号或一个编号前缀(10 覆盖所有编号为 10xx 的科目,例如现金类科目);空项目豁免则指定该报表项目。没有覆盖任何对象的豁免,会在下一次结账时报告为 unused_exemption。

豁免不等于科目映射
对账豁免只会消除缺少明细表的发现事项,不会把这项余额放到任何报表上,因此一个科目可以既被豁免、又仍未映射。如果它有余额,unmapped_active_account 仍会以高严重程度指出这一点。用豁免去压下映射类发现事项,压下的是不该压下的东西。

完整示例:一项发现事项仍然保留

示例输出(合成数据):三个严重程度为高的发现事项,分别是 1450 Deposits Receivable 上的 unmapped_active_account;presentation_tieout,CHECK 行在 41 个期间均为 -6,600;以及 1440 Advance to Suppliers 上的 recon_exceptions,差额为 200。
Cobalt Systems, Inc. 在完成科目映射之前的情况。该公司为虚构的演示公司,数字为合成演示数据。

在上面的合成示例中,Cobalt Systems 有三个严重程度为高的发现事项:1450 Deposits Receivable 有一项没有任何报表项目承接的余额,因此 CHECK 行在全部 41 个月中都相差 $6,600;此外,其预付供应商款项明细表列有一笔总账中没有的 $200。

一句话“1450 Deposits Receivable 应归入 Other assets”,就完成了该科目的映射。重新结账被拒绝,因为这条科目映射会改变全部 41 个已锁定月份中的数字;再用第二句话说明原因——“1450 此前未映射;已批准归入 Other assets”——就会重新开启这些月份。CHECK 行归零,前两个发现事项得以解决,“Findings”计数从 3 降到 1。

对账例外仍然保留:公司自己的两份文件之间真实存在的不一致,任何科目映射或豁免都无法消除。因此这些月份以“reported with exception”状态锁定,recon_exceptions 仍未解决。发现事项列的意义不在于归零,而在于剩下的每一项都值得打一通电话,并且账簿在事后也会记下这一点。

自行运行

在工作区文件夹中运行。回答通过 ingest.py answer 记录,而不是手工编辑映射配置。更多内容参见“自行运行”。

bash
# 将会计科目映射到报表项目
python3 .haruno/skills/QuickBooksCFO/scripts/ingest.py answer --spec .haruno/skills/QuickBooksCFO/specs/cobalt-systems.yaml --map "1450=Other assets"

# 重新结账,并说明重新开启已锁定月份的原因
python3 .haruno/skills/QuickBooksCFO/scripts/close.py --workspace . --client cobalt-systems --reopen-reason "1450 was unmapped; approved as Other assets"

发现事项显示在哪里

每个呈现位置判断哪些事项未解决时都采用同一条规则,因此不会有两个位置对同一个月给出两种答案。

位置您会看到什么
结账报告(在聊天中逐一告诉您;您自行运行时则在终端中输出)所有发现事项,然后是哪些月份已锁定,以及它们是“reported with exception”还是“fully reconciled”。
已锁定月份列表(您自行运行命令时,由 ingest.py periods 列出)每个月份那一行上显示同样的结账状态。
报表包报表上方的“Issued with unresolved findings”(附未解决发现事项报出)说明。
对账底稿每张明细表都经过重新计算,并标明其中的例外。
仪表板的投资组合视图“Findings”列(显示数量或“clean”)、“Clients with findings”指标卡,以及每家公司的结账状态标签。
仪表板中的公司页面“Integrity findings”卡片(包括低严重程度发现事项),以及“Solvency and going concern”卡片。
投资者报告不含完整性检查发现事项、科目映射表、对账状态、差异关注清单或 CHECK 行。偿债能力面板及其迹象保留,但不带“Draft the disclosure”按钮。

投资者报告保留哪些内容、省略哪些内容,参见“投资者报告”。

结账如何记录每个已锁定月份,以及为什么未解决事项列表只是一份快照,参见“结账状态”。

相比之下,“Integrity findings”卡片显示的是账目的当前状况。

后续步骤

了解发现事项在仪表板上的位置、结账会生成和锁定哪些内容,以及一次复核如何从接入公司进行到月度结账。