外币消费可以分为两种场景

  1. 信用卡直接消费外币,人民币还款;
  2. 先兑换外币,再用外币消费;

第一种场景,多为在线消费,比如海淘。
第二种场景,多为现金消费,比如境外游。

而用Beancount记录货币兑换主要有两种方式,

  1. 记录单价
  2. 记录总价

大多数情况下,我都习惯记录总价,而单价(即货币汇率)都交给Beancount自动处理。

我们先来看第一种场景,直接消费外币,然后用人民币还款:
直接消费外币

2024-05-27 * "Apple" "Apple Care+" #recurring
  Expenses:Subscriptions                     9.99 USD
  Liabilities:CN:ABC:CreditCard

可以发现,消费外币其实和消费人民币没有差别,只是最后记录的货币从CNY更改为了USD

直到我们需要给信用卡还款时,才需要做一些变动:

2024-03-30 * "信用卡还款" 
  Liabilities:CN:ICBC:CreditCard          70.48 USD @@ 510.16 CNY
  Assets:CN:ICBC:Checking                 -510.16 CNY

由于我们消费USD的时候,负债账户Liabilities:CN:ABC:CreditCard 会一直累计同种货币的金额,所以我们需要偿还同种货币,才能让Liabilities:CN:ABC:CreditCard对应种类货币的余额变为0,表示我们没有任何以USD计价的负债。

上面的例子中,全额还款时,负债账户入账70.48 USD,合计510.16 CNY,资产账户Assets:CN:ICBC:Checking扣除510.16 CNY

合计,用@@表示。

我们也可以这样记:资产账户Assets:CN:ICBC:Checking 扣除510.16 CNY70.48 USD ,负债账户入账(70.48 USD)

2024-03-30 * "信用卡还款" 
Assets:CN:ICBC:Checking                 -510.16 CNY @@ 70.48 USD
Liabilities:CN:ICBC:CreditCard

这两种方法是等效的。

二种场景:先兑换外币,再进行消费,在原理上都是一样的,比如下面的例子:
兑换外币

2024-03-20 * "泰铢换汇"
  Assets:CN:ICBC:Checking                    -10010.00 CNY @@ 50000.00 THB
  Assets:CN:ICBC:Checking                     50000.00 THB

2024-03-21 * "泰铢取现"
  Assets:CN:ICBC:Checking                      -50000.00 THB
  Assets:Wallet:Cash                           50000.00 THB

消费外币

2024-04-05 * "水果切零食"
  Expenses:Travel                                   75.00 THB
  Assets:Wallet:Cash

因为我的钱包Assets:Wallet:Cash已经存入了从银行兑换的泰铢(THB),所以我们直接消费泰铢,不会导致钱包账户出现泰铢余额为负的情况。

到这里你可以发现,不同种类的货币之间的兑换,主要是使用@@来表示合计。那么怎么知道1美元能兑换多少人民币(USD/CNY)或者1人民币能兑换多少泰铢(CNY/THB)呢?

Fava自动追踪汇率变化

1美元能兑换多少人民币,我们可以直接用美元总价除以人民币总价得到,但是如果我们经常进行此类消费,每次都要这样计算,岂不是太麻烦了。

事实上Beancount的可视化界面Fava,可以自动做到这一切,我们只需要浏览图表,就能知道汇率是怎么变化的:
An image to describe post

Fava的安装可以参考关于记账环境的配置方法 | Beancount Magazine | Beancount 杂志

在你的账本,添加下面一行内容,fava上出现Commodities一栏,里面记录了所有你进行兑换的不同种“货币”

plugin "beancount.plugins.auto"

当然,你也可以手动记录汇率,就像下面的例子,把@@改为@,总价改为单价:

An image to describe post
不过我认为,手动记录汇率(单价),更多的适用于投资活动,对于消费行为,使用@@记录总价更符合真实的交易行为,也更方便一些。


关于此系列
Beancount Magazine | Beancount 杂志系列是关于使用Beancount记录个人财务的自我实践,分享自己对管理,理解个人财务状况和记账的想法。
如果你也对这些主题感兴趣,不妨订阅试试看,希望能这些内容能对你有帮助😁