使用 Beancount 复式记账工具需要一定的前置知识,如果你对复式记账不熟悉,可以先学习一下复式记账的基本概念。
写在前面
线上支付时代,我们对金钱的感知变得钝感,每次消费掏出手机“刷”的一下十几二十元就出去了,我们的钱就是在没有感知中一笔一笔的的消费掉。一年下来,我们的钱流向了哪里似乎没有多少的概念。我自己也是一个花钱如流水的人,看到想要的东西就会买,似乎只有不停的买才能让自己稍微获得一丝平静和快乐。我也是被消费主义毒害的一员,我想做出改变,复盘自己整年的消费就是改变的开始。
本次复盘用到的工具
- Beancount: 一个文本记账工具,可以用来记录每笔消费和收入,生成报表等。
- Fava: Beancount的 web 界面,可以方便的查看报表。
- Beancount-Trans: 账单解析器,可以将支付宝、微信、银行等账单转换为beancount 的格式。
为什么不用 Excel 或其它记账软件?因为我更倾向于开源的工具,且用文本记账不担心数据丢失,也不用担心数据格式的兼容性。
复盘的步骤
- 导出各个账户的账单,包括支付宝、微信、银行等。
- 使用 Beancount-Trans 将账单转换为 Beancount 的格式。
- 使用 Fava 查看报表,分析自己的消费情况。
导出账单
这里只演示了支付宝和微信的账单导出,银行账单的导出方法可以参考各个银行的官方文档。
支付宝账单导出
支付宝导出账单的方法:打开支付宝APP -> 我的 -> 我的账单 -> 更多(右上角的三个点)-> 开具交易流水证明 -> 用于个人对账 -> 选择时间范围 -> 填写电子邮箱。
微信账单导出
微信导出账单的方法:打开微信APP -> 我 -> 服务 -> 钱包 -> 账单 -> 常见问题(右上角) -> 下载账单 -> 用于个人对账 -> 选择时间范围 -> 填写电子邮箱。
微信比较坑的地方是每次只能导出三个月的账单,如果需要导出一年的账单,需要分四次导出。账单的解压密码会通过 APP 发送。
导出的账单格式如下
tree
.
├── alipay_record_20241222_204257.csv
└── 微信支付账单(20240101-20240331)——【解压密码可在微信支付公众号查看】.csv
使用 Beancount-Tran 转换账单
方便 csv 格式的账单转换为 beancount 格式的账单可以通过 Beancount-Tran 工具来实现。它的用法不单单是进行简单的格式转换,还可以预先配置好一些支出的映射规则,让转换更智能。
- 打开 Beancount-Tran 网站并注册一个自己的账号。
- 在
映射管理
菜单下选择支出映射
,添加一些支出的映射规则。
这里我添加了一些账单里出现频率较高的关键字,比如
盒马
、KFC
、星巴克
等,这样在转换账单的时候就会自动将这些支出映射到对应的支出账户。一些不常见的支出可以在转换后手动修改。
- 在
映射管理
菜单下选择资产映射
,添加一些资产的映射规则。
每一笔支出都会从这个账户里扣除对应的金额,我平时只用这一张卡消费,所以这里只添加了一条规则。(如果多卡用户可以自行添加映射规则)
- 做好关系映射后,点击格式转换菜单,上传对应的账单文件,等待转换结果。
解析成功后,会返回一个 beancount 格式的账单内容,可以直接复制到本地保存。
使用 Fava 查看报表
在演示中,我将账单转换后的内容保存到了一个名为2024.beancount
的文件中,然后使用 Fava 来查看报表。
fava 2024.beancount
Starting Fava on http://127.0.0.1:5000
访问http://127.0.0.1:5000
即可查看报表。
此时,我们的账单已经转换为了 beancount 的格式,可以方便的查看报表,分析自己的消费情况。但是,有些支出对应的分类可能不太准确,可以在 Fava 中手动修改。如果需要重复修改的支出比较多,我们可以回到转换账单的步骤,重新新增支出映射关系,这可以大大减少手动修改的工作量。
总结
通过 Beancount 来复盘自己的消费对新手来说或许有难度,需要 Beancount 复式记账的前置知识,对复式记账感兴趣的朋友可以花个半天时间学习一下。在学习了复式记账的基本概念后就可以花点心思来做这件事。
博主本人也是复式记账新手,写这篇文章的目的更多是出于分享的目的,希望能够帮助到有需要的朋友。如果有什么问题或者建议,欢迎在评论区留言。