I've been using Ledger CLI for years. It works fine, but I'm sure I use only the tiniest fraction of its power. Every now and then, during the holidays, for example, I try to learn a little more about it. I was recently exploring the tools for displaying balances. I noticed a bit of weirdness and I tracked it down to a series of transactions from a few years ago like these:
02/13 Some Hotel in Prague
Assets:Reimbursements:Employer 7560.00 CZK
Liabilities:CreditCard $-332.18
02/13 Some Restaurant in Prague
Assets:Reimbursements:Employer 632.00 CZK
Liabilities:CreditCard $-27.71
These are business expenses from a trip to Prague. I've put in both the CZK and USD currency amounts so that the credit card will balance properly.
Now I get my expense reimbursement:
02/28 Employer
Assets:Checking $2359.91
Income:Salary $-2000.00
Assets:Reimbursements:Employer $-359.91
That's fine, as far as it goes, but when I look at the balances, there's a large outstanding CZK figure because that's not accounted for, I guess. Fiddling with trying to put the CZK amounts in the reimbursement lead to different errors about unbalanced remainders. (In the real case this is taken from, there are also transactions in GBP as it happens.)
Should I be doing something else in the ledger to make this balance properly across currencies? I suppose I could just put in the expenses in USD and mark the CZK amounts in a comment, but it seems cleaner to record the actual expense amount from the bill.