← Lessons

quiz vs the machine

Gold1410

System Design

The Multi Currency Ledger

Keeping balances per currency and never mixing units within a single posting.

5 min read · core · beat Gold to climb

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.

Check yourself

Answer to earn rating on the learn ladder.

1. How many currencies should a single posting mix?

2. How is a currency exchange best modeled?