Chart of Accounts standards and consistency

Skip to first unread message


Dec 11, 2021, 3:50:24 AM12/11/21
to Ledger
Dear all,

I wanted to know your opinion regarding how to emulate multi-currency or multi-commodity accounts.
I understand this is ultimately subjective, but I hope someone can provide me some guidance.

Case #1

I have multiple bank accounts with my Bank, denominated in different currencies. Each account has a distinct account number and I receive an individual account statement for each one of them.

Question: Should I (option 1) create/use a separate account in ledger (Assets:My Bank:EUR and Assets:My Bank:USD) OR should I (option 2) have only one account (Assets:By Bank) which then has holdings in both currencies?

I am currently using option 1.

Case #2

I have an online wallet (imagine something like Paypal, Skrill, or Revolut) where I hold multiple currencies and I can do instant currency exchanges. For this type of services, I do not receive any statement, although I could download one on-demand. Depending on the specific service, I may or may not be able to download individual statements for each currency.

Question is the same as in Case #1. However, in this case I am using option 2.

Case #3

I have an online brokerage account which I use to buy commodities (let's say, corporate stocks). In this platform, I will have a portfolio of multiple stocks AND I may have a balance of multiple currencies as well.

Question is the same again. In this case I am using option 2 too.

So, at the end of the day, I would like to know how do you decide whether to use multiple single-currency/commodity accounts or a single multi-currency/commodity account?

Also, what do you find to be the advantages and disadvantages of each approach.

Many thanks, POliveira


Dec 12, 2021, 12:05:16 AM12/12/21
to Ledger
In addition, there is a 4th Case I forgot to mention, which is cash holdings.
Do you recommend having a single account Assets:Cash with multiple currencies in it or instead separate accounts as in Assets:Cash:EUR , Assets:Cash:USD etc.? And why?

Martin Michlmayr

Dec 12, 2021, 1:02:19 AM12/12/21
* POliveira <> [2021-12-11 21:05]:
> In addition, there is a 4th Case I forgot to mention, which is cash
> holdings.
> Do you recommend having a single account Assets:Cash with multiple
> currencies in it or instead separate accounts as in Assets:Cash:EUR ,
> Assets:Cash:USD etc.? And why?

Personally, I have a single Assets:Cash account. I prefer a simple
account structure.

If I want to limit my queries to one currency, I can always do:
ledger reg ets:cas -l "commodity == 'PHP'"

Having said that, I can see two arguments for using Assets:Cash:CURRENCY

* `reg cash:php` is easier than `reg ets:cas -l "commodity == 'PHP'"`
* Balance assertions might be easier if there's only one commodity in the account (?)

Martin Michlmayr

Dec 12, 2021, 3:10:46 PM12/12/21
to Ledger
For all "Assets" and "Equity" sub-accounts, I enforce a single-commodity only structure. While I haven't consciously enforced this in "Liabilities" and "Income" sub-accounts, they've ended up as single-commodity-only in practice.  However, with "Expenses", I end up having multiple commodities in a single sub-account.

The main considerations for me are:
1. It is a bit easier to type queries, as I don't have to use the syntax for currencies.
2. There is no penalty for sub-accounts: the depth of the accounts can be limited using `--depth`.
3. Reports look neater, in my opinion, with single-commodity sub-accounts.

I guess the one quasi-exception / breaking of a rule is that while I keep USD in Assets:Cash:USD, and GBP in Assets:Cash:GBP, I keep ₹ in Assets:Cash rather than Assets:Cash:INR, since that is my base currency, and the :INR seems redundant even though this choice is an affront to consistency.


Dec 12, 2021, 9:38:43 PM12/12/21
to Ledger
My preference is that transactions in a particular ledger account should be exactly the same as those in the corresponding bank statement. So if your bank gives you a different statement for each individual currency then you should have different ledger accounts for each statement/currency.

When it comes time to reconcile your transactions, you will be glad you structured your accounts this way.


Dec 12, 2021, 9:49:43 PM12/12/21
to Ledger
Since cash holdings don't have bank statements associated with them, it is acceptable  to use a single Assets:Cash account with multiple currencies. Your balance report will show how much of each currency is held in the cash account.

On Sunday, December 12, 2021 at 1:05:16 PM UTC+8 POliveira wrote:

Paulo Oliveira

Dec 13, 2021, 1:54:06 AM12/13/21
Indeed I follow more or less psionl0's suggested approach.
The only situation I am unsure to deal with then is when I have some sort of online wallet where I can hold multiple currencies and/or commodities. Imagine like a brokerage platform where I can hold both currencies and stocks. How would you do in that case?


You received this message because you are subscribed to the Google Groups "Ledger" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
To view this discussion on the web visit
Reply all
Reply to author
0 new messages