Multi-currency
Invoicing and billing a customer in a foreign currency, with the gain or loss on revaluation posted for you.
Accounting → Currency.
The rule underneath: documents hold their own currency and rate; the general ledger is always in your home currency. That is what keeps a trial balance meaningful when you trade in five currencies.
Rates come from a daily feed, or you enter them by hand. A document uses the rate on its date; you can override it per document when a contract fixed a rate.
Realised gain or loss arises when you get paid. An invoice raised at 1.10 and settled at 1.15 produces a real difference in home currency, and it posts to Exchange Gain/Loss automatically — you do not calculate it.
Unrealised gain or loss is on balances you still hold. Revaluation (Accounting → Currency → Revalue) restates open foreign-currency receivables, payables and bank balances at the period-end rate and posts the difference. It is reversible, so a revaluation you ran on the wrong date can be undone.
Reports can be run in the transaction currency or the home currency.