在7月份的时候用beancount重新建了一个账本,然后到现在一直没有对过帐。想自己写一些脚本和自动化工具导入账单。在花了两天时间写完了基本导入和研究前人的代码后,突然意识到这个自动导入其实是伪需求。

个人记账的本质是什么?

记录汇总

当我们做了一笔交易后,支付平台、银行已经为我们记下一笔永久记录。我们为什么要费劲将这笔记录转移到我们的账本上呢?很大一部分原因是现代支付平台、银行是多种多样的。我们需要一个在自己视角的汇总支出、收益的总览。如果只是为了满足这一点,自动导入是有一定的帮助的(局限我在下面详述)。

财务回顾

可能大部分人都忽略在记账过程中另外一个作用,就是对这段时间的支出进行回顾。就像复习一样,我们记了笔记,就要回顾。自动导入账单虽然能帮助我们汇总,但是无法替代人工记账时的回顾、思考。你可能会说,那我导入了之后在进行回顾不就行了吗?这里面有两个问题:

  1. 自动导入一般周期都在一个月,时间相对已经比较长了,很多交易你已经无法记忆清楚,只能机械入账。
  2. 过程越自动化,回顾的倾向就越容易忽略。举个例子,如果是要命令行导入账单的,你可能导入之后还会预览一下;如果是机器人导入的,你可能心安理得的导入完就结束了。

自动导入的问题

  1. 自动导入的分类方式局限性。现在大部分的导入账单都是通过配置收款人->支出账号来进行映射。好一点的还可能会有一些规则。理论上,这些规则是只需要添加一次,并且通过不停添加规则达到收敛。当然,这种收敛只是美好的想象,事实是,你可能通过微信扫码,扫不同商家;淘宝上,会和不同的人交易。这些人大部分都是只交易一次,但是规则添加和修改就会变得无法收敛。
  2. 同样是规则问题,你无法通过简单的映射总结出每一笔交易的性质。其实你看现在微信账本和支付宝的收支统计就清楚。所有的分类或多少或少都有错误。当你看到某个类目的支出超出你预期的时候,你会点进去才发现归类错误。
  3. 一比一的导入会导致大量冗余。就我目前举例,我早上起码会做6-7笔扫码支付,实际上都是用于买菜,支出分类都是同一个类目,自动导入会一笔笔的记录,并归类到分类目录(如果归类正确的话),会产生大量的冗余。长期来看账本的性能会衰减。
  4. 修改规则困难。正如上面说的,规则需要经常迭代。当导入出现问题,要浪费不少时间处理。如果只是简单的加规则还行。如果是新的交易方式,需要调整导入代码的,恐怕不是一时半会能解决的。
  5. 所有支付平台、银行似乎都不太愿意提供账单。虽然可以通过邮件等方式获取,但似乎也过于麻烦了。
  6. 实际每日的支出笔数,人工对账耗费的时间只要15分钟。一个月一次可能也只需要1小时。比起自动导入需要的维护时间成本,可能更少。 Update(20251111):
  7. 你不知道什么时候需要导入账单;不能自动化断言账号余额。