VanillaPM
translation in beta
Войти Начать бесплатно Dashboard

Handle multi-currency & FX gain/loss

Learn Finance · Fund & Financial Accounting · Task B6. Record foreign-currency transactions and the gains and losses the exchange rate creates — the right way, under IAS 21.

What it is

A donor funds you in USD; you spend in Bangladeshi taka (BDT). Between the day the grant is valued and the day you spend, the exchange rate moves — and that movement is a real foreign- exchange (FX) gain or loss you have to record.

IAS 21 (The Effects of Changes in Foreign Exchange Rates) sets the rules: - Record each transaction at the spot rate on its date. - Monetary items (cash, receivables, payables — things that are fixed amounts of money) are retranslated at period-end to the closing rate; the change is an FX gain/loss. - Non-monetary items (equipment, prepayments) stay at their original rate — they're not retranslated. - Realised gain/loss happens on settlement (you actually convert); unrealised happens at period-end revaluation (you still hold the item, but its taka value changed).

Why it matters

  • The rate move is real money. If the dollar strengthens between receipt and spend, your taka go further — a genuine gain. Ignore it and your books don't reflect reality.
  • Donor reports are usually in the grant currency. You must reconcile taka spend back to USD at the right rates, or the donor report won't tie to the award.
  • Mixing the rate up distorts the project. Booking everything at today's rate, or at the budget rate, hides whether an overspend was real or just currency.

Where you do it in VanillaPM

Everything below is in Finance → Accounting and at the project level. A step-by-step:

  1. Freeze the project FX snapshot. Fix the project's rates at a point in time, so budget-vs-actual is compared on a consistent basis rather than drifting with every daily move. Re-baselining the rates is a deliberate, logged act.

  2. Hold each bank in its own currency. BankAccount balances are kept in their native currency; payroll carries its own PayrollFxRate snapshot taken at calculate time, so a historical run reproduces exactly.

  3. Pay at spot, and book the difference. A foreign payment posts the expense at the spot rate; the gap between spot and the carried rate is a realised FX gain or loss, booked to the dedicated roles FX gains (4300) / FX losses (5950) — so currency movement is visible as its own line, never buried in the expense.

Honest boundary: the realised, transactional side (gain/loss on settlement, the 4300/5950 roles, the project FX snapshot) is solid. Whether a period-end revaluation run retranslates all open monetary items to the closing rate automatically is a Phase-0 verification item for this track — teach the IAS 21 concept, and confirm the revaluation step in your instance before relying on it.

Walked example — Hilsa Health Initiative

The grant is $300,000, recorded when USD 1 = BDT 110 → BDT 33,000,000 of funding value.

Event Rate Effect
Grant valued at receipt 110 BDT 33,000,000 recognised as the taka equivalent
Pay a $10,000 supplier bill, settled when rate is 115 115 you need BDT 1,150,000 to settle a bill carried at BDT 1,100,000
Realised FX loss Dr 5950 FX loss 50,000 (BDT) / Cr Bank — the 50,000 extra taka

The dollar got more expensive in taka, so settling the dollar bill cost more taka than it was booked at — a BDT 50,000 realised loss, recorded to 5950, separate from the programme cost.

The numbers

FX gain/loss = amount × (settlement rate − booking rate), in your reporting currency.

$10,000 × (115 − 110) = BDT 50,000. Because you paid out foreign currency that became dearer, it's a loss (5950). Had the rate fallen to 108, settling would have cost BDT 20,000 less than booked — a gain to 4300. The programme expense itself doesn't change; only the FX line moves.

Controls & evidence

  • A documented rate source and the rate used on each foreign transaction (spot, dated).
  • FX gains/losses booked to 4300/5950, kept out of programme cost lines.
  • The project FX snapshot recorded, so budget-vs-actual is on a consistent basis.
  • At period-end, monetary items retranslated (per IAS 21) — confirm the revaluation step.

Best practices & pitfalls

  • Do book transactions at the rate on their date, not a single convenient rate.
  • Do keep FX gain/loss in its own account — it's a financing effect, not a programme cost.
  • Pitfall: retranslating non-monetary items (equipment, prepayments). IAS 21 says don't — they stay at historical rate.
  • Pitfall: hiding a currency loss inside the programme line, making a project look overspent when it was really the rate. Separate the two so each is clear.

Practise question

Q1. You hold a $5,000 payable booked at BDT 110/USD. At period-end the rate is BDT 120/USD and the bill is still unpaid. Is there an FX gain or loss, is it realised or unrealised, and how much?

Answer: An unrealised loss (you still hold the monetary item, so it's a period-end revaluation, not a settlement). 5,000 × (120 − 110) = BDT 50,000 loss — the dollars you owe now cost more taka. It becomes realised only when you actually settle.

Terms used here

  • Spot rate — the exchange rate on a transaction's date.
  • Monetary vs non-monetary items — fixed amounts of money (retranslated) vs assets like equipment (not).
  • Realised vs unrealised — gain/loss on settlement vs at period-end revaluation.
  • FX snapshot — a frozen set of rates for consistent comparison.
  • Related: Reconcile the bank & close the period — where period-end revaluation happens.

How an auditor / donor expects this

They check transactions were booked at dated spot rates, monetary items were retranslated at period-end, gains/losses sit in 4300/5950 (not buried in programme cost), and taka spend reconciles to the grant currency at the right rates. Currency is a common place for errors to hide; keeping the FX effect on its own line is what makes the donor report defensible.