
Intercompany Elimination FX Differences: Where They Belong, and When They're Errors
Two correct ledgers, three exchange rates, and a difference nobody booked.
The quarter's eliminations are done, and the intercompany column on the group balance sheet doesn't net to zero. It's out by SGD 19,490. Every pair was matched, nobody can find the error, and the close is running late. So the difference goes to a line called "Consolidation difference". Next quarter it's bigger.
The usual suspect is an intercompany elimination FX difference: the two sides of a pair translated at different rates. That part isn't an error. It's what currency translation does to two correct ledgers. The trouble is that it's rarely the only thing in the number.
Split the SGD 19,500 and it's three things netted together. SGD 24,200 is exchange rates, which is structural and has a proper home. SGD 8,200, running the other way, is a recharge invoice one company never booked. And SGD 3,500 is a timing difference between two Singapore companies, which can't involve currency at all. The plug didn't just park an FX difference. It hid two errors inside it.
This post covers where the FX difference comes from, where each kind belongs, and how to tell it from an elimination that's genuinely one-sided. Invented figures throughout.
Why an intercompany elimination FX difference is structural
The natural assumption is that a pair should agree, so any gap is a mistake. Across currencies there are four reasons it won't, and none of them is a mistake.
Group translation uses three rates. Each ledger used one. A foreign subsidiary's P&L is translated at the rates on the transaction dates, usually approximated by an average, and its balance sheet at the closing rate. Equity stays at historical rates. The company on the other side recorded the transaction once, at the rate on the day. Say HoldCo, which reports in Singapore dollars, invoices its US subsidiary a USD 60,000 fee when the rate is 1.30. HoldCo books SGD 78,000 of revenue. The subsidiary books USD 60,000 of expense, which the group translates at the quarter's average of 1.33: SGD 79,800. Both ledgers are right, and the pair is out by SGD 1,800.
Only one side carries the currency. That invoice is a foreign-currency item in HoldCo's Xero and a home-currency item in the subsidiary's. Xero calculates an unrealised gain on HoldCo's side at the report date. The subsidiary has nothing to mirror it. And IAS 21 says that gain should survive consolidation: an intragroup monetary item can't be eliminated "without showing the results of currency fluctuations", because the group really is exposed to converting one currency into another. Some exchange differences on intercompany are the group's genuine result, not residuals to clear.
Xero revalues invoices, not journals. Unpaid foreign-currency invoices and bills, and foreign-currency bank accounts, move with the rate. Manual journals can only be entered in the base currency, so a loan posted by manual journal has no foreign amount for Xero to revalue. It stays at its drawdown rate. (Foreign-currency journals have been on Xero's ideas board since 2014, and aren't on its roadmap.) HoldCo lent the subsidiary USD 400,000 at 1.30 and booked SGD 520,000. At the closing rate of 1.36, the subsidiary's side translates to SGD 544,000. That's SGD 24,000 that neither ledger booked.
Xero's rates aren't necessarily the group's. Xero takes its rates from XE.com. Joiin and Fathom document Open Exchange Rates, and plenty of groups use rates set by the parent, its bank or its auditor. The fee balance at Xero's 1.358 on one side and the group's 1.36 on the other differs by SGD 120. Small, but it turns up on every cross-currency pair, every period.
Behind all four sits a fifth: Xero doesn't see the pair. Its own reports, including Xero Analytics, don't combine organisations. Consolidation sits outside Xero's core offering. For most groups, matching the pairs and explaining the differences happens outside Xero.
Where each difference belongs
Each structural difference has a home. None of them is a line called "Consolidation difference".
| What the difference is | Where it belongs | In the example |
|---|---|---|
| Exchange difference on a balance one side holds in a foreign currency | Group profit. It doesn't eliminate. | HoldCo's unrealised gain on the fee receivable |
| The same, on a loan with no settlement planned | Translation reserve, through other comprehensive income, in the group accounts only | The USD 400,000 loan, if it's never expected to be repaid |
| Intercompany income and expense translated at an average rate on one side | Translation reserve, or translate those lines at the counterparty's rate | SGD 1,200 on the fee |
| One balance at two rate sources or dates | One rate table; until then, a labelled FX line | SGD 120 on the fee balance |
| Anything that doesn't agree in the transaction currency | Nowhere. Fix it. | SGD 8,200 and SGD 3,500 |
The loan is the decision that matters. The SGD 24,000 is HoldCo's exchange gain on a US-dollar receivable, missing because the loan went in by manual journal. HoldCo's own accounts need it too, so the clean fix is a revaluation journal in HoldCo's Xero every period. Where it lands in the group accounts depends on a fact about the loan, not the arithmetic. If settlement is "neither planned nor likely to occur in the foreseeable future", the loan is part of HoldCo's net investment in the subsidiary, and its exchange differences go to the translation reserve instead of profit (IAS 21 paragraphs 15 and 32). Trade balances never qualify. A shareholder loan that funded the subsidiary's start-up often does. Same number, different line, decided once per loan.
The average-rate difference is the reserve's other half. IAS 21 allows an average rate as an approximation of the transaction-date rates, and the SGD 1,200 is that approximation's cost on one pair. The rest of the approximation already sits in the translation reserve, so that's the consistent home. Better still, translate intercompany lines at the counterparty's rate and the difference never appears. Some groups leave a small, stable one in an FX line in profit, which is defensible as a written policy rather than a monthly choice.
Partly owned subsidiaries take their share. The outside owners' share of anything sent to the translation reserve belongs to them (IAS 21 paragraph 41), one more reason the destination is worked out pair by pair. Our non-controlling interest guide covers the rest.
How to tell an FX difference from a one-sided elimination
In the total, an FX difference and an error look identical. Pair by pair, in the transaction currency, they look nothing alike. That's the whole test.
Lay the balance sheet pairs out in a matrix, each in its transaction currency and in the group currency.
| Pair | Agree in transaction currency? | Difference (SGD) | Rate effect (SGD) | Left over (SGD) |
|---|---|---|---|---|
| Fee receivable / payable | Yes, USD 60,000 | −120 | −120 | 0 |
| USD loan | Yes, USD 400,000 | −24,000 | −24,000 | 0 |
| Recharges | No: USD 15,000 v USD 9,000 | 8,130 | −30 | 8,160 |
| Singapore pair | No: SGD 42,000 v SGD 45,500 | −3,500 | 0 | −3,500 |
| Total | −19,490 | −24,150 | 4,660 |
The rate effect is arithmetic, not judgement: the transaction-currency amount times the difference between the two rates applied to it. Whatever is left over isn't FX.
Four habits make the split reliable:
- Match in the transaction currency first. If both sides say USD 60,000, any difference in Singapore dollars is a rate effect by construction. If they don't, the gap is a document problem that no exchange rate will explain.
- Calculate the rate effect. Don't infer it. "It's probably FX" is how the recharge got buried. Here the left-over is exactly USD 6,000 at the closing rate: one invoice the subsidiary never booked.
- Use same-currency pairs as the control. Two Singapore companies can't have an FX difference. If their pair is out, it's timing or coding, and the same cause is probably inside the cross-currency pairs too. Our guide to consolidating multiple SPVs in Xero lists the usual suspects.
- Read the shape. A rate effect is small against the balance, moves with the rate and changes sign when the rate turns. An error looks like a document: an exact invoice amount, a round number, a pair with one side empty, or a gap that reverses the following month.
Run the same matrix over the income and expense pairs, where the fee's SGD 1,200 sits.
What hitting the wall looks like
The group whose "Consolidation difference" grows every quarter. It's a US-dollar loan booked by manual journal three years ago and never revalued. The line tracks the exchange rate almost perfectly, and the parent's own accounts have been missing the gain all along. The rates and reserve mechanics are in our multi-currency reporting guide.
The auditor who asks what's in "Other gains". It's part exchange gain and part a recharge one subsidiary booked twice. Nobody can say how much of each without rebuilding the quarter. Our intercompany eliminations guide covers making the pairs findable in the first place.
The workarounds
- A plug to a balancing line. The quickest route. It ties the balance sheet, hides whatever's inside the number, and puts a translation effect in profit or equity by accident rather than by policy. Plug it to retained earnings and it resurfaces in the consolidated cash flow statement as a dividend nobody paid.
- A residual analysis in a spreadsheet. The matrix above, rebuilt every close. It works if someone keeps the transaction-currency amounts, rates and loan flags up to date.
- The elimination features in a consolidation app. Most give the difference a home automatically. Joiin can add a netting adjustment to equity, which its help centre says absorbs loan mismatches from "timing differences, FX revaluation differences". Spotlight Reporting posts exchange variances to "FX and other Adjustments" in the P&L and "FX Reserves" on the balance sheet, and suggests checking your reconciliations "if a larger value appears". Syft posts the net to a netting account you name. Fathom leaves the balance sheet out of balance until you add a currency translation account by hand. None of the help pages we read calculates the rate effect pair by pair, so a missing invoice can share a line with an exchange difference. Good tools for the standard case; test them against the checklist below.
- A BI or data warehouse build. Flexible, but someone has to design the matrix, rate table and loan flags, and keep them right.
- A build designed around your group's pairs. That's where we come in.
What to ask any consolidation tool or framework
- Does it match intercompany pairs in the transaction currency, not only in the group currency?
- Does it calculate the rate effect on each pair and show the left-over separately?
- Can intercompany income and expense be translated at the counterparty's rate, or the average-rate difference sent to the translation reserve?
- Can a loan be flagged as part of the net investment, so its exchange differences go to the translation reserve in the group accounts only?
- Does it use one rate table for revaluation and translation, or at least show the gap when the entities used another?
- Does an unexplained difference fail a check, or does it get absorbed into a balancing line?
Where Cheetah fits
Cheetah builds consolidated reports on top of Xero, designed around each group, and intercompany across currencies is where that pays off. We can put every pair in a matrix with both sides in the transaction currency and the group currency, calculate the rate effect and show the left-over on its own line. Each loan can carry its net-investment flag, so its exchange differences land in profit or in the translation reserve by rule, with rates from one table the group controls. An unexplained difference then fails a check against a tolerance you set, instead of disappearing into a balancing line.
It all arrives in Google Sheets with plain formulas and an Excel download, so anyone can trace a cell back to the ledger.
If your consolidation has a line called "Consolidation difference" that nobody can fully explain, it might be worth a conversation.
The short version
An intercompany elimination FX difference is structural, and each kind has a home: profit for a real exchange difference, the translation reserve for a net-investment loan or an average-rate artefact, one rate table for a source mismatch. Calculate the rate effect in the transaction currency, and whatever's left over isn't FX. That's the part worth investigating.
If you're weighing up how to build it, the routes are compared in Xero Custom Reports: 4 Ways to Build Them in 2026.
Frequently asked questions
- Why doesn't my intercompany elimination net to zero when the companies use different currencies?
- Because the two sides are translated at different rates. A foreign subsidiary's profit and loss is translated at an average rate and its balance sheet at the closing rate, while the company on the other side booked the transaction once, at the rate on the day. Only one side may carry the currency, so only one side books exchange gains and losses. And a loan entered in Xero by manual journal stays at its drawdown rate, because manual journals can only be entered in the base currency. None of that is an error.
- Where should the FX difference on an intercompany elimination go?
- It depends on what caused it. An exchange difference on a balance that one side holds in a foreign currency stays in group profit. On a loan whose settlement is neither planned nor likely, it goes to the translation reserve through other comprehensive income in the group accounts. A difference caused by translating intercompany income and expense at an average rate belongs in the translation reserve, or disappears if those lines are translated at the counterparty's rate. Anything that doesn't agree in the transaction currency isn't FX and should be fixed, not parked.
- Are exchange differences on intercompany loans eliminated on consolidation?
- No. IAS 21 says an intragroup monetary item can't be eliminated without showing the results of currency fluctuations, because the group is genuinely exposed to converting one currency into another. The exchange difference stays in group profit, unless the loan is part of the parent's net investment in the subsidiary, in which case it goes to the translation reserve in the consolidated accounts.
- How do I tell an FX difference from an intercompany mismatch?
- Compare the two sides in the transaction currency first. If both say USD 60,000, any difference in the group currency is a rate effect, and you can calculate it: the amount times the difference between the two rates used. If the transaction-currency amounts differ, or something remains after the rate effect, it's a missing or duplicated document, a timing difference or a coding error. Same-currency pairs make a good control, because they can't have an FX difference at all.
- Does Xero calculate the FX difference on intercompany eliminations?
- Not on standard Xero plans. Xero's own reports, including Xero Analytics, don't combine organisations, so there's no group elimination to calculate a difference on. Consolidation sits in Syft, which Xero owns, and Xero has started bundling it into its Xero Ultra plan, launched in Australia in July 2026 with a UK beta expected in autumn 2026. Otherwise the pairs are matched, translated and explained outside Xero.

A finance professional turned product builder, Jarvin has built hundreds of reports by hand and knows what financial and operational reporting demands: customisability, auditability, scalability, and security. Having automated that work reliably, he's now helping advisory firms and finance teams do the same.