What is a Multi-Currency Ledger?

Architecting multi-currency ledgers. Handling Base Currency reporting, realized vs. unrealized FX gains, and multi-denomination accounts.

A multi-currency ledger is required when a platform holds funds or reports financials in more than one denomination. It is not enough to simply add a currency column to a transaction table. The system must solve the problem of "Relativity": The value of 100 EUR changes relative to USD every second.

For CTOs, the complexity lies in maintaining dual fidelity: preserving the exact original transaction amount (Native Currency) while simultaneously maintaining a normalized view for financial reporting (Base Currency).

The Three-Layer Currency Model

Robust ledgers store three distinct values for every single entry: Transaction Currency (Native): The actual currency moved (e.g., 100 JPY). Account Currency: The denomination of the holding account. (If 100 JPY is deposited into a USD account, this records the converted USD amount). Reporting Currency (Base): The standard currency for the company's books (e.g., USD). The system queries an FX rate table at the timestamp of the transaction T0 to freeze the historical value.

FX Revaluation (Realized vs. Unrealized)

Holding foreign currency creates accounting noise due to exchange rate volatility. Realized FX: Occurs when currency is actually converted. You bought EUR at 1.10 and sold at 1.15. The 0.05 profit is a "Realized Gain" recorded in the P&L. Unrealized FX (Revaluation): You hold 1,000 EUR in a wallet. Last month it was worth $1,100. This month it's worth $1,080. You haven't moved the money, but your "Book Value" has dropped. A multi-currency ledger runs end-of-month revaluation jobs to calculate this shift and post adjusting journal entries to an "Unrealized FX Gain/Loss" account.

Frequently Asked Questions

How does the ledger handle "Dust"?

"Dust" refers to fractional remainders (e.g., $0.00001) resulting from FX division. These micro-amounts can break reconciliation. The ledger must implement a rounding strategy (e.g., Banker's Rounding) and sweep the dust into a specific "Rounding Differences" expense account.

Static vs. Dynamic Rates?

Transaction ledgers use Static Rates (the rate at the moment of execution). Dashboard views often use Dynamic Rates (current market rate) to show the user the estimated "Current Value" of their portfolio.

Related Guides