One currency per account
A multi currency ledger holds separate balances for each currency. An account tracks a single currency, and a posting never mixes units. A user holding dollars and euros has two distinct accounts.
Why not convert eagerly
Converting on every posting bakes in a stale rate and loses the original amount. Keeping each currency native preserves the true holdings and defers conversion to an explicit, recorded step.
Moving between currencies
A currency exchange is modeled as two journals or a linked pair of postings. You debit the source currency account and credit the target currency account, recording the rate used as metadata.
Operational guidance
- Validate that both legs of an exchange reference the stored rate.
- Keep a per currency balance so totals are always meaningful.
- Never sum balances across currencies without an explicit conversion.
Key idea
A multi currency ledger keeps native per currency balances and treats conversion as an explicit recorded event.