跳转到主要内容

我的Beancount实践:八年Git理财与每周日20分钟核对

发布日期 阅读需 1 分钟Mike ThriftMike Thrift
我的Beancount实践:八年Git理财与每周日20分钟核对

玛雅有一个四岁的孩子、一个被她形容为"志向远大"的后院堆肥箱,以及一个她打算文末再谈的购物习惯。她做了十二年后端工程师,过去八年里,她家每一笔收入和支出都记录在Git仓库的一个纯文本文件中。

一张温馨的抓拍照片:母亲在客厅沙发上抱着年幼的孩子,木质茶几上放着纸质笔记本、一杯咖啡和一叠收据

在此之前,她和大多数人一样。从第一份工作用到Mint,直到它关停。然后用了六个月电子表格——按她的说法,"变成了第二份工作,工具还更差"。一位同事提到纯文本记账,她彻底迷了进去,再也没爬出来。"周二晚上我读了Beancount的文档,那个周末就迁移了三年的历史记录。我伴侣以为我被黑客了,因为我对着电脑笑。"

习惯:每周一次,20分钟,只用电脑

玛雅的习惯和大多数应用用户相反:理财在书桌前完成,不用手机。每周日孩子入睡后,她在beancount.io上通过Fava打开账本,执行固定流程:回顾本周交易,归类导入器留下的模糊条目,扫一眼净资产图表,合上电脑。

"这和喜欢持续集成的原因一样,"她说。"简单、无聊、可重复。20分钟搞定,整周都不用再想。"

不过手机确实有一个任务:采集。在杂货店,她还没离开停车场就在beancount.io移动应用里拍下收据。到周日,它就以草稿交易的形式躺在收件箱里等待确认。"收据以前会塞进夹克口袋,最后进垃圾桶。现在它进账本。诀窍就在于——花钱时捕捉,每周判断一次。"

余额断言就是钱的单元测试

问她最喜欢的功能,她毫不犹豫——但不是图表。是balance断言:文件中一行语句,写着"这个日期,这个账户里恰好有这么多钱"。如果账本和银行数据不一致,文件就会拒绝通过bean-check

"这是你财务的失败测试。我的账本不会悄悄偏离现实。人们花钱买应用来对账,而我用一个编译不过的文本文件就搞定了。"

她最被低估的功能是文档——将收据PDF或照片直接附加到交易上。"报税时会计师问我要记录。我发了个Git包。她以为我在开玩笑。然后她打开试算平衡表就不笑了。"

幼儿园费用查询

这套系统真正体现价值的那一刻,是一次BQL查询。她四岁孩子的幼儿园费用感觉贵,但感觉不是数字,所以她在Fava查询页面上敲了一行——每月总额,分组,十二个月窗口。

"我不需要软件告诉我幼儿园贵。但看着曲线连续一年向上攀升,才最终促使我们去比价。我们搬到了一个实际上更喜欢的地方,近了20分钟车程,差价覆盖了我们的购物账单。一次查询。这就是八年记账的全部投资回报——如果你要算账的话。显然,我在算账。"

她每个季度也用同样的招数处理订阅服务:一次查询,一张清单,十分钟取消。"总是流媒体服务。就像它们会自我繁殖一样。"

当然还有:咖啡

工程师也有挥霍的类别。如果账本能审判她,她承认,笑点会是Expenses:Food:Coffee。"先有V60,然后有秤,再有Fellow水壶,最后是比第一台显示器还贵的研磨机。"她当然清楚所有花费——可以用git log回看手冲咖啡的历史,观察提交频率越来越高。

她说,这就是人们误解纯文本记账的地方。它不是限制。"这不是节食。是一面镜子。我看着咖啡那一栏,毫无愧疚,因为我选择了那个研磨机。账本只是确保我清醒地做出选择。"

坚持八年,这个仓库成了她维护时间最长的项目。"我在工作中写的所有其他东西都被重写或删除了。只有这个文件一直在编译。"

想要拥有自己的周日仪式?注册beancount.io,用Smart Import导入第一份账单,让账本替你记住一切。

分享这篇文章