复式记账+1. 看到还没有人提 beancount, 推荐一下。(其实也是 #1 楼说的复式记账的一个实现)
Ref:
https://byvoid.com/zht/blog/beancount-bookkeeping-1/如果使用 beancount,你的两个问题大概可以这么解释:
1. 信用卡账户是在 Liabilities 下;储蓄卡账户是在 Assets 下。统计收支,统计的是 Income 和 Expenses,你在信用卡和储蓄卡账户之间互转不会影响你对收支的统计。
2. 可以将话费账户设置为一个账户(例如,放在 Assets:Telecom 作为资产),这样就和信用卡账户一样操作了。充话费就是钱在账户之间互转的过程。每月记录一下这个话费账户的余额,从某个 Expenses:Telecom 账户 pad 一下,beancount 会自动给你计算这个月这个账户减少了多少钱。例如,月初你的 Assets:Telecom 余额 100 元,月末你看了看手机账户还剩 66 元,那么你就
YYYY-MM-DD pad Assets:Telecom Expenses:Telecom
YYYY-MM-DD balance Assets:Telecom 66.00 CNY
然后 beancount 会自动算出应该从 Assets:Telecom 转 34 元到 Expenses:Telecom 里。日后你查看报表,看到 Expenses:Telecom 是 34 元,你就会知道你这个月在 Telecom 方面消费了 34 元。
乍一看可能比较麻烦,正如你所说的:「储蓄卡减,信用卡加的方式感觉太冗余」。复式记账基本所有的条目都是这样的,就连你购买一个什么东西,也是 Expenses 加,Assets/Liabilities 减。正所谓「复式」,有账户加,必有账户减,每个条目的数值和保持为 0 (平衡)。