我在对自己2020年的年度计划中,其中有一项是“从统计收入和支出做起,开始做财务规划“,到年末总结的时候发现我对这项目标付出的行动仅仅是记了两个月不到的帐。在目标未达成的愧疚感的督促下,我在2021年的一个周日的白天,努力思考记账于我的意义,并且在网上搜索,看大家都是如何记账,都使用了什么样的方法和工具。最终我选择了一个看起来有些“复古”的记账方式(纯文本复式记账),并开始使用beancount这一开源软件。没想到这一用,不知不觉已经过了半年,而我在 2021-01-03 到 2021-08-13 期间的所有财务事件(收入,支出,基金交易),都被完整的记录了下来。
我本身认为自己是一个注意力很容易转移,很难持续的坚持一件事情的人,我甚至从小到大几乎没有从头到尾写完过一本日记本或笔记本。而记账这件事情能坚持半年,我已经想给自己鼓掌了。
为什么要记账
我从小缺乏财务方面的教育,也从未对金融或经济产生过兴趣。对我来说,了解金融知识和进行财务计算,是无聊和让人头大的。我总觉得自己只要全心投入到自己喜欢做的事情上,以我个人的资质和努力程度,在经济状况方面,应该不用担忧。于是我在各种人生选择上都懒于考虑财务上的损耗与收益,比如买东西的时候不讨价还价,博士毕业找工作的时候懒得去解读各地补贴政策,不关心五险一金是什么东西,所有工资静静的躺在银行活期。
而时间像变戏法一样流逝,逐渐感到自己的精力似乎没有以前充沛,而财务和能力积累却不远如预期,关于未来的可能性一点点在无情的缩减,身边的同龄人经济水平,生活状态已经开始明显分化。我最近也更切实的体会到”你不理财,财不理你“这句老话的真谛,我觉得记账于我,主要有下面的几点意义。
- 无论你愿不愿意,你都是商业社会当中的一个玩家,逃避这个事实只会让自己被席卷和收割,我不求兴风作浪的本事,只求防身之能。通过记账,可以保持对自己财务状态的了解,并更真实的体会到人生的各种选择和事件对自己的财务状况带来的影响。
- 有句话说金融就是“跨越时间的价值交换”。通过记录自己在时间轴上的影响财务状况的动作,有助于从更长的时间维度上审视自己,从而更加了解自己,尽量避免重蹈覆辙。
记账软件的选择之路
之前还在上学的时候就陆陆续续使用过一些记账软件,其中使用最多的是随手记和网易有钱两款App,随手记是当时我觉得记账交互体验比较好的一款软件,但始终难以坚持下来,究其原因,我觉得主要是记账动作太琐碎,而且一旦产生漏记或对不上的账目(哪怕只有几块钱),记账热情都会大打折扣。而网易有钱,当时是我一度看好的记账软件,得益于国内移动支付的普及度,所有交易都在网上有记录可查,当时有钱App可以同步微信,支付宝,银行卡账单,并且根据账目内容自动进行分类(如餐饮,购物等)。无奈金融这件事情过于敏感,各方不可能给有钱App开通API,因此同步要求用户输入账户的用户名密码,然后通过模拟用户请求完成同步。这就带来了很大的安全隐患,也侵犯到了别的金融服务商的利益,因此有钱App不停的被抵制和封杀。而网易有钱也在2021年4月正式终止服务。
对我来说,一个完美的记账软件应该满足以下几点特性:
- 无不可记之帐(消费,借贷,甚至资产折旧),其中数据始终能如实的反应我实际账户的情况,最好一分钱都不要差。
- 支持一定程度的自动化,个人大部分的生活模式和消费都是重复的模式,理应自动化记录。
- 原始数据最好完全属于我,并且是我可以识别的格式,或者至少可以不丢失任何信息的进行导出。
- 有基本的统计与可视化,能快速了解时间轴上的收入和支出趋势,以及某一时间段内的支出类型比例
在年初的那个周日白天,我在搜索中逐渐锁定了beancount这个开源软件,它似乎满足以上的所有要求,但是又显得如此的另类(对非程序员并不友好),于是我看了很多相关的文章,并且用一下午的时间完成了基础概念的学习,基础语法的学习,项目目录的构建,并记下了第一笔账目,然后将项目同步到我的github私人仓库。在beancount中记账类似于下面这个样子:
开设账户,xxxx是我的交通银行卡后4位,这里隐去了
1 | ; Assets |
账户初始化
1 | 2021-01-03 * "交通银行储蓄卡初始化" |
支出记录
1 | 2021-01-03 * "叮咚买菜" |
beancount的数据查询,统计,可视化相关的内容可以看参考资料中的链接,我还未充分挖掘。
我的beancount记账工作流
这半年里,我逐渐形成了一个简单的记账工作流,我每周一般会在周末用15分钟左右进行集中记账。为了提高自动化程度,但同时又避免过多的为了追求自动化导致的开发工作,我将微信和支付宝的默认支付方式绑定在同一张银行卡上,并且保证平日90%以上的琐碎消费都会从这一张卡中支出。我当前的记账工作流大概是这样子的:
- 打开银行网页,登陆账户,查询本周的账目明细,并下载导出txt文件(其实是逗号分隔符csv)
- 使用
bean-extract
命令,自动读取txt账单,并且转换成对应的账目,并粘贴到beancount账本文件中 - 在账本中,对未能自动分类的账目,手动分配相应的账户(如消费类型)
- 查询自己当前主要的几个账户的余额,并且在账本文件的末尾,通过
balance
语法将余额写下 - vscode在安装beancount插件后,如果交易记录和balance余额不匹配,该balance记录会自动标黄提示,并且提示出金额差了多少,这时我会手动翻阅账单补全记录,确保没有错账和漏帐
- 运行
bean-file
命令,将txt账单归档到项目文件夹下
每周的记账对于我来说已经是一种舒适而愉悦的过程了,因为时间不长,流程清晰,而且每次我都可以保证自己没有任何遗漏(这可能是让人心旷神怡的最主要原因),同时这一周做过的一些事情因为账目产生联想很自然的又在我脑子中回放了一遍。
记账半年,我的变化?
其实没有太大变化,但是对财务状况更加清晰:
- 我清楚的了解到我当前每月大致的盈余和支出比例分布
- 我清楚的知道我今年在玩无人机这一兴趣爱好上的投入花费了 12587.08 元, 并且其中各项支出均有清晰的记录
- 我清楚的知道我上一趟去深圳旅游花费了 3589.54 元,并且其中各项支出均有清晰的记录
- 我直观的看到了银行活期的收益是何时发放的,比例有多少
也做出了一些行动:
- 我开始规划个人的投资理财系统,并且逐步开始了实践
其他
关于一些工程项目配置,自动导入插件,以及beancount记账技巧等内容,考虑后续进行分享