Docs/Multi-Currency & Organization/Multi-Currency

Multi-Currency

Triple-currency recording, automatic exchange rate conversion, FX gain/loss tracking, and consolidation support

10 min read

Overview#

The multi-currency system handles three distinct currency perspectives for every transaction, enabling businesses to operate across borders while maintaining accurate financial records at every level.

Three-Currency Model#

  1. Document Currency -- The currency the transaction was entered in (e.g., a EUR invoice from a European customer)
  2. Functional Currency -- The legal entity's base operating currency (e.g., EUR for an EU subsidiary)
  3. Reporting Currency -- The group consolidation currency (e.g., USD for corporate reporting)

Key Capabilities#

  • Triple-currency recording -- Every transaction stores amounts in all three currencies
  • Rate tracking -- Exchange rates and rate types preserved on each transaction
  • Automatic conversion -- System applies rates to calculate functional and reporting amounts
  • FX gain/loss -- Foundation for calculating realized and unrealized FX differences
  • Entity-specific -- Each legal entity has its own functional currency
  • Consolidation ready -- Reporting currency enables group-level financial consolidation

Business Scenarios#

ScenarioHow It Works
Multi-national operationsUS parent with EU, UK, APAC subsidiaries -- each operates in local currency, all report to USD
Customer invoicingInvoice European customer in EUR from a USD entity. Document: EUR, Functional: USD.
Vendor paymentsPay UK supplier in GBP from a US entity. System records GBP, converts to USD.
Group consolidationRoll up all subsidiaries to parent USD reporting currency automatically.
ComplianceAudit trail shows exact rate used on every transaction, with source and type.
FX accountingCalculate FX gain/loss when payment rate differs from invoice rate.

How Currency Conversion Works#

When a transaction is created, the system automatically enriches it with currency information:

Step-by-Step Flow#

1. USER ENTERS TRANSACTION
   - Amount: 10,000 EUR (document currency)
   - Transaction date: January 15

2. SYSTEM LOOKS UP ENTITY CONFIGURATION
   - Functional currency: USD
   - Reporting currency: USD

3. SYSTEM LOOKS UP EXCHANGE RATE
   - EUR to USD spot rate on Jan 15: 1.08

4. SYSTEM CALCULATES AMOUNTS
   - Document amount:    10,000 EUR (entered)
   - Functional amount:  10,800 USD (10,000 x 1.08)
   - Reporting amount:   10,800 USD (same as functional)

5. SYSTEM RECORDS RATE METADATA
   - Rate: 1.08
   - Rate type: spot
   - Rate source: system

Entity Configuration#

Each legal entity defines its currency context:

EntityFunctional CurrencyReporting CurrencyUse Reporting
EU SubsidiaryEURUSDYes
UK SubsidiaryGBPUSDYes
US HeadquartersUSDUSDYes

Journal Posting with Multiple Currencies#

When a transaction posts to the general ledger, every journal line carries amounts in all three currencies:

Journal Entry (3 Currency Layers)

Line 1: Accounts Receivable
  Document:    10,000 EUR (debit)
  Functional:  10,800 USD (debit)
  Reporting:   10,800 USD (debit)

Line 2: Revenue
  Document:    10,000 EUR (credit)
  Functional:  10,800 USD (credit)
  Reporting:   10,800 USD (credit)

Balanced at all 3 currency levels.

This ensures that financial reports can be generated in any of the three currency perspectives with full accuracy.


Exchange Rate Management#

Rate Types#

Rate TypeDescriptionUse Case
SpotDaily market rate at transaction dateMost common, used for daily transactions
AverageAverage rate for the periodMonth-end valuations, simplifying volatility
ContractFixed rate per agreementLong-term contracts with locked rates
BudgetBudgeted/planned rateForecasting and budget comparisons

Rate Sources#

SourceDescription
ManualEntered directly by user
ECBEuropean Central Bank daily reference rates (28 EUR-based pairs)
US TreasuryUS Treasury Fiscal Data API (170+ USD-based pairs)
FrankfurterECB data as JSON with any base currency (fallback)

When multiple rates exist for the same currency pair and date, the system uses a priority order: manual rates take precedence over ECB, which takes precedence over US Treasury, which takes precedence over Frankfurter.

Managing Exchange Rates#

You can manage exchange rates through the AI assistant:

"Set the EUR to USD spot rate to 1.085 effective January 15"

The system automatically:

  • Creates the forward rate (EUR to USD = 1.085)
  • Creates the inverse rate (USD to EUR = 0.9217)
  • Validates currency codes (ISO 4217)
  • Prevents same-currency rates
  • Upserts if a rate for the same date and type already exists

Rates can also be updated and deleted. Deleting a rate removes both the forward and inverse entries.

Currency Conversion#

The system provides a conversion tool for quick calculations:

"Convert 10,000 EUR to USD using today's rate"

This returns the converted amount, rate used, and source of the rate.


Consolidation and Reporting#

Group-Level Reporting#

Because every transaction carries a reporting currency amount, group-level financial reports can aggregate across all entities in a single currency:

  • AR aging in reporting currency -- See outstanding receivables across all subsidiaries in USD
  • AP aging in reporting currency -- View payables across entities in a unified currency
  • Income statement consolidation -- Roll up revenue and expenses from all entities
  • Balance sheet consolidation -- Unified balance sheet across the organization

Entity-Level Reporting#

Entity-level reports use the functional currency, showing local operating performance:

  • An EU subsidiary sees its financials in EUR
  • A UK subsidiary sees its financials in GBP
  • Both roll up to USD for group reporting

FX Gain and Loss#

When FX Differences Arise#

FX gains and losses occur when exchange rates change between the time an invoice is recorded and when it is paid:

  1. Invoice recorded on Jan 1 at EUR/USD = 1.08 -- Invoice amount: $10,800
  2. Payment received on Feb 1 at EUR/USD = 1.10 -- Payment amount: $11,000
  3. FX gain of $200 (received more USD than expected)

Handling in the System#

  • Realized FX gain/loss -- Automatically calculated when payments are matched to invoices at different rates
  • Unrealized FX gain/loss -- Foundation exists for period-end revaluation of open positions
  • FX variances are posted to dedicated gain/loss accounts

Compliance#

The multi-currency system maintains full audit compliance:

  • Historical rates preserved -- The rate used at transaction time is stored, never restated retroactively
  • Rate traceability -- Every transaction records whether the rate was spot, contract, or manual
  • Source tracking -- Know if the rate came from ECB, manual entry, or another source
  • Consolidation -- Present group financials in a single reporting currency
  • Local reporting -- Show entity financials in functional currency for local regulatory requirements

Best Practices#

  1. Set up entity currencies early -- Configure functional and reporting currencies before entering transactions
  2. Keep exchange rates current -- Use automated rate sources (ECB, US Treasury) for daily updates
  3. Use spot rates for daily transactions -- Reserve average rates for period-end valuations
  4. Lock contract rates -- Use the contract rate type for long-term agreements with fixed exchange rates
  5. Review FX impact -- Monitor FX gains and losses as part of your monthly close process
  6. Reconcile in functional currency -- The reconciliation engine compares amounts in functional currency, naturally handling multi-currency matching

Subscribe to new posts

Get notified when we publish new insights on AI-native finance.