
示例数据:账户甲的 USDT,九月一日账本和平台余额都是 500.00;到九月三十日,账本推算出 486.40,月末保存的余额截图却是 485.40。差 1.00 不算大,可九月有四十多行记录,逐行重看既慢,第二遍还容易漏在同一个地方。
与其直接找“那一笔”,不如先找差额第一次出现的那一天。日期定下来,要翻的记录通常只剩当天几行。下面的方法不依赖某个平台或某款记账软件,只要求你手里有带日期的余额证据,或者另一份能逐日对照的流水。
为什么先找日期,而不是按金额直接搜那一笔?
按金额搜,前提是差额只由一笔记录造成。账本里也可能同时有两三个小问题:一笔手续费没记、一笔划转记了两次,合起来的差额可能和任何一行都对不上。搜 1.00 搜不到,不代表问题不存在。
日期不受这种叠加影响。差额从零变成非零的那一天,至少有一个问题发生在当天。先把这一天找出来,再在当天的记录里配对,比在整个月里猜金额可靠。
找差额起点,手里要有哪两份资料?
第一份是账本的逐日余额:按资产、按账户,从期初数量开始,把每天的流入、流出和单列的费用累加,得到每天结束时账本认为“应该有多少”。几个账户混在一起的账本,先按月末账户范围拆开,否则账户之间的划转会制造出假的差额。
第二份是参照,必须来自账本以外。可用的来源大致有三种:
- 你在某个日期保存过的余额截图或余额导出,文件名或画面上能看出日期;
- 能指定期间的账户报表里的期初、期末数量(报表和交易记录的区别见账户报表与交易记录该选哪份);
- 平台另一份记录余额变动的流水,它和你的账本不是从同一份导出文件来的。
同一份 CSV 导入两次再互相比较,不算参照。它们会错在完全相同的地方。
记账软件里的“对账”也是这个思路:把账本在某个日期的余额,与机构对账单上同一日期的期末余额对比,直到差额归零(见文末 GnuCash 指南的对账一节)。这里做的,只是把“同一日期”从月末一个点扩展到月中的多个点。
参照点只有月初和月末,怎样一步步缩小范围?
假设你只有九月一日和九月三十日两个参照点,前者对得上,后者差 1.00。接下来在中间补参照:
- 取九月十五日。那天的余额证据和账本一致,差额就出在十六日到三十日之间;不一致,就在一日到十五日之间。
- 在剩下的半段里再取中点,重复比较。
- 直到剩下一天:前一天一致,这一天不一致。
三十天的月份,这样最多比五次就能落到某一天。难的不是计算,而是每次比较都需要一个有日期的参照余额。月中没有任何快照时,改用上面第三种来源:把平台流水按日汇总,和账本的逐日净变化一天天对。
| 日期 | 账本当日净变化 | 平台流水当日净变化 | 累计差(账本 − 流水) |
|---|---|---|---|
| 09-14 | −20.00 | −20.00 | 0.00 |
| 09-15 | +35.00 | +35.00 | 0.00 |
| 09-16 | −12.50 | −13.50 | +1.00 |
| 09-17 | 0.00 | 0.00 | +1.00 |
累计差在十六日第一次离开零,之后一直停在 +1.00。回到这一天的原始记录:账本只写了一笔 12.50 的提现,平台流水在同一时刻多出一行 1.00 的扣减。示例里它是提现费;换成真实账户,也可能是别的扣减,要看那一行的类型字段,不按金额去猜。
累计差那一栏,表头要写明“账本 − 参照”。正数是账本多算,负数是账本少算;方向一旦记反,后面会朝相反的方向找原因。
差额一次跳出、出现又消失、越滚越大,各说明什么?
把累计差按天连起来看,大致有三种走法,分别指向不同的记录类型。
一次跳出,之后不变。上面的示例就是这种:某一天多记或少记了一笔,此后每天都背着同样的差额。可以先查两种可能:一是费用从另一个资产里扣、账本只记了主资产(见手续费记在哪个币种里);二是一笔兑换只在单独的记录里,没有进主文件(见闪兑记录没有出现在现货文件里)。
出现一两天,然后自己消失。这种走法更像两边把同一笔归到了不同日期,不太像漏记。月末前后可能是这样:一边按 UTC 记时间,一边按本地时区(见CSV 时间与页面差一天);或者一笔划转在转出那天记了,到账那天才出现在另一边。它到后面会归零,但月末那天如果正好落在“出现”的区间里,月末余额照样对不上。
每隔几天多一点。差额是重复的小问题在累积:每笔成交的费用都没记;表格软件把小数位截短,每行差一点(见导出文件用表格打开后出了问题);或者某种小额入账一直没导进账本。逐段缩小只能找到第一次,找到之后要往后翻,看同类记录是不是反复出现。
对半缩小时要提防第二种走法。挑的中点如果恰好落在“出现又消失”的那一两天里,你会误以为问题在前半段。所以发现某天对不上,顺手再看后一天:后一天也对不上,而且差额相同,才继续往前找。
几个币种、几个账户同时对不上,要分开找吗?
分开找,找完再放回一起看。每个资产、每个账户各画一条累计差,各自定出第一次出现的日期。
两条线在同一天跳动,这一天就值得重点看。USDT 少了、BTC 多了,日期相同,数量又能对上某次成交,很可能是一笔交易只记了一边。同一个资产在两个账户里一正一负、数量相同,可能是内部划转只记了一端,或者两端落在不同日期。
不同资产的差额不能相加。USDT 差 1.00、BTC 差 0.0001,合成一个“总差额”没有意义,反而把各自的日期盖住了。
找到那一天以后,问题清单里写什么?
先别改账本。在问题清单里给这一天单开一行:
- 资产与账户别名;
- 第一次出现差额的日期,以及“前一天一致”的证据来自哪份文件;
- 差额大小与方向(账本 − 参照);
- 走法:一次跳出、出现又消失,还是逐步累积;
- 当天可疑的记录行和候选原因;
- 状态:待核实、已确认原因、已补记。
原因确认后,补记的应当是那条真实的记录,比如那 1.00 的提现费,而不是一笔金额 1.00、备注写着“调整”的分录。前者以后还能追查,后者只是把差额藏起来。原因一时查不到,就让这一行停在“待核实”,并在期末结果旁写明影响的资产和数量。
每个检查点上的数量差,可以先用本站的按币种核对差额工具算一遍:输入期初、流入、流出和单列费用,再和那天的参照余额比。它一次只算一个日期,检查点要你自己一段段往前挪。
下个月怎样少比几轮?
缩小范围的快慢,取决于参照点有多密。月中多几个有日期的余额证据,下次就少几轮比较。比如每周固定一天保存一次余额,文件名写上日期和账户别名,和当月的导出文件放在同一个文件夹。
余额截图里只有折算估值、看不到每个资产的数量时,它不能拿来做这种比较。估值跟着价格变,判断不了数量差在哪天出现。