像上学,工作,这类通勤日活动,通常具有非常固定的消费过程:
- 公共交通费
- 早餐,中餐,晚餐
换句话说,通勤日记账,是非常简单的。
我现在的生活,主要活动是工作通勤,所以接下来的例子,会以打工人为视角。不过同样的方法,能用在很多相似的场景中。
户的划分
Beancount中的账户划分,是非常灵活的。就通勤日活动中的第二点,你可以创建下面的账户:
2024-07-22 open Expenses:Food:早餐
2024-07-22 open Expenses:Food:午餐
2024-07-22 open Expenses:Food:晚餐
这样做的好处很显而易见,你可以分别在每个账户观察消费情况,也就是你可以分别观察早餐,午餐,晚餐都花了多少钱,以及他们是怎么变化的。
Beancount账户的名称,除了账户类型后第一级,不能使用中文外,其余均可使用中文。即,不能使用
Expenses:早餐
作为账户名,但是Expenses:Food:早餐
可以。
不过,除了根据“活动-子活动”派生出“账户-子账户”的模式外,我习惯将所有饮食消费(小额)都放在同一个账户Expenses:Food
,大额饮食消费(俗称“下馆子”),放在Expenses:Restaruant
中,然后通过Payee
和Narration
来区分早餐,午餐,晚餐。
例如:
2024-06-03 * "小女当家" "晚餐" #meals
Expenses:Food 36.80 CNY
Liabilities:CN:ABC:CreditCard
在Beancount的语法中,一笔交易(即postings)的一般形式是:
YYY-MM-DD * "Payee" "Narration" #tag
Account Amount
Account Amount
详细参考:https://beancount.github.io/docs/beancount_language_syntax.html#syntax-overview
Payee
:把他理解为商户,即发生金钱交易的场所;
Narration
:把他理解为备注,在上面的例子中,标记了这笔交易是吃晚饭发生的;
#meals
:标签,为了方便统计”我正常消费(一天三顿饭)的花销是多少,而设定的;
早餐,午餐,晚餐
典型的一天的,在「记账,从这里开始」中也提到过
2024-06-06 * "缇里咖啡" "早餐" #meals
Expenses:Food 20.80 CNY
Income:CN:ABC:Bouns -0.58 CNY
Liabilities:CN:ABC:CreditCard
2024-06-06 * "小女当家" "晚餐" #meals
Expenses:Food 35.00 CNY
Income:CN:ABC:Bouns -1.00 CNY
Liabilities:CN:ABC:CreditCard
在上面的文章中也提到过,我习惯使用信用卡消费,有些信用卡具有消费返现的权益,上述例子中,我为返现来源,单独开设了一类账户:Income:CN:ABC:Bouns
。
不过最开始,我并没有单独给返现设立单独账户,而是直接进行下面的方式记录:
2024-06-06 * "小女当家" "晚餐" #meals
Expenses:Food 35.00 CNY
Expenses:Food -1.00 CNY
Liabilities:CN:ABC:CreditCard
“返现”给我的感受,实际上就像我在某件事上少花了钱,少花的这部分,体现在-1.00 CNY
这行。后来发现某些特殊的情况下,使用这种方式会很难处理,而单独开设一个账户就没有那些问题,如果你也有返现的场景,推荐你也可以考虑单独开设一个专门的“返现账户”
公共交通
乘坐公共交通出行的每次消费,当然也可以沿用上述的一般交易形式,这样会让你的账本更详细,同时也会增加你记账的时间。
有这样一种场景:使用公交卡乘坐。对这类消费,可以用一种不同的方式记录。
这样的消费特征有两个:
- 公交卡需要定期充值;
- 公交卡几乎只能用来乘坐公共交通;
充值公交卡
充值,差不多隔一段时间就会进行一次,记录周期性的交易,你可以参考「使用Snippet快速输入周期性的交易」中介绍的技巧。不过这里,想要特别提到的是,可以对周期性交易打上特殊的标签,对于以后统计账单数据,会有帮助:
2023-09-19 * "深圳通" "充值" #recurring
Assets:CN:Shenzhentong 100.00 CNY
Liabilities:CN:BoC:CreditCard
同样地,话费的充值(消费),订阅,工卡,饭卡都可以打上这样的标签:
2024-02-16 * "话费" #recurring
Expenses:Phone 129.00 CNY
Liabilities:CN:BoC:CreditCard
使用公交卡
如果你像我一样,不关心究竟是乘坐公交汽车还是地铁,也不想每一笔公共交通消费都记录,那么就可以采用定期pad & balance的方式。
定期对账户(余额)进行balance有助于发现账单的漏记,错记。balance在金融术语中翻译为余额,所谓定期对账户进行balance,就是每隔一段时间,记录下当前各个账户中的余额,如果之前记录的交易正确无误,那么这个账户的余额,将和你从银行App中看到的余额相等。
pad翻译为填充,填充可以将多笔相似的交易,压缩成一笔填充记录。
具体地,因为我们公交卡中的余额,几乎只能进行公共交通的消费,换句话说,从公交卡中流出的钱,只能到一个账户中 — 公共交通消费账户,因此我们就可以这样记录:
2024-06-22 pad Assets:CN:Shenzhentong Expenses:Transportation
2024-06-23 balance Assets:CN:Shenzhentong 58.85 CNY
我在2024-06-23这一天,检查了公交卡的余额,剩余58.85 CNY,于是对公交卡账户进行balance:
2024-06-23 balance Assets:CN:Shenzhentong 58.85 CNY
此时,VS Code的Beancount插件会提示我,账户余额不相等。这种不相等是必然的,因为我显示地告知Beancount,账户应该有58.85 CNY,而对Beancount来说,我在上一次充值后,并没有记录任何消费,因此Beancount中记录的余额是我上一次充值后的余额(实际上是上一次balance后的余额)
关于VS Code的Beancount插件,可以看「关于记账环境的配置方法」里的介绍。
而我们知道,不相等的差额,就是我们乘坐公共交通的消费总额,所以在2024-06-23的前一天(2024-06-22)通过pad指令,将这些消费总额“补上”。
2024-06-22 pad Assets:CN:Shenzhentong Expenses:Transportation
Expenses:Transportation
账户,是我们乘坐公共交通的支出账户。
所以,我通勤日典型的账单,是这个样子:
Beancount Magazine | Beancount 杂志系列是关于使用Beancount记录个人财务的自我实践,分享自己对管理,理解个人财务状况和记账的想法。
如果你也对这些主题感兴趣,不妨订阅试试看,希望能这些内容能对你有帮助😁