The pattern: confirm multi-currency is enabled, enable Dated Exchange Rates, ingest historical rates, automate ongoing rate updates, document the restatement policy. The feature is one-way (cannot be cleanly disabled) and operationally demanding; plan deliberately with finance before enabling.
- Confirm multi-currency is enabled on the org
Setup, Company Information. Multi-currency is a prerequisite for Dated Exchange Rates and is itself one-way; ensure both are intentional.
- Enable Dated Exchange Rates
Setup, Manage Currencies, Activate Advanced Currency Management. The feature is one-way; cannot be cleanly disabled. Coordinate with finance.
- Ingest historical rates for the period in scope
Pull rates from the provider for the relevant historical period (typically the last 3 to 5 years). Insert as DatedConversionRate rows.
- Build automation for ongoing rate updates
Scheduled Apex or Flow that pulls from the provider weekly or monthly and inserts new period rows. Manual entry does not scale.
- Configure the effective date per relevant object
Opportunity uses Close Date by default; verify. Custom objects need explicit effective date configuration.
- Document the rate-change policy with finance
When are rate restatements allowed, who authorizes, how is the change communicated. The policy prevents accidental restatement of closed periods.
- Audit conversion accuracy quarterly
Sample historical opportunities, verify converted amounts match the period's actual rate. The audit catches missed periods and rate misconfigurations.
Required; cannot enable Dated rates without multi-currency.
How many historical periods to maintain. Balance accuracy against performance.
Bloomberg, Reuters, central bank, or other. The source of truth for rates.
Opportunity Close Date, Order Activation Date, custom field per custom object.
When and how to change rates for closed periods. Document with finance.
- Dated Exchange Rates is one-way; once enabled, cannot be cleanly disabled. Coordinate with finance before flipping.
- Missing rates for a period fall back to the static ConversionRate. The fallback produces inconsistent historical numbers; missed periods need to be caught explicitly.
- Changing a rate for a closed period restates historical conversions. Document the restatement policy explicitly to prevent accidents.
- Effective date misconfiguration produces wrong conversions even with correct rates. Verify each object's effective date matches finance expectations.
- Very deep historical rate data can slow large reports. Optimize by archiving very old periods or accepting approximate rates for ancient data.