
How to Handle Intercompany Eliminations in Xero: A Practical Month-End Walkthrough
The month-end ritual nobody put in the job description.
If you run more than one entity on Xero, intercompany eliminations are the part of close that doesn't have a button. Xero will happily give you each entity's P&L and balance sheet. It will not net out the sale that one of your companies made to another, or the loan sitting as a receivable on one ledger and a payable on the other. That's on you.
So "how to handle intercompany eliminations in Xero" isn't really a question about a Xero feature — because there isn't one. It's a question about a process you run, every cycle, with the tools you've got. This post is the practical version: the actual steps, in order, plus the parts that quietly go wrong if you skip the setup.
If you want the deeper "why is this so hard and what does proper automated logic look like" version, that's a separate, more conceptual deep-dive. This one is the roll-up-your-sleeves walkthrough.
First, accept what Xero does and doesn't do here
Quick reality check so the rest of the steps make sense. If your entities all sit inside a single Xero organisation separated by tracking category, you have some options at the report layer. But most real groups run separate Xero organisations — different legal entities, often different countries — and for those, Xero has no native consolidation or elimination feature at all. No cross-org aggregation, no automatic netting, nothing.
That means handling eliminations comes down to four jobs you do outside Xero: get the data out, identify what's intercompany, match the two sides, and remove it from the group view. Everything below is just doing those four jobs well enough that next month is easier than this month.
Step 1: Set up so eliminations are findable in the first place
This is the step everyone skips and then pays for. You cannot eliminate what you can't reliably identify. Most of the month-end pain isn't the netting — it's hunting through ledgers trying to work out which transactions were internal.
Fix that at the source, once:
Use dedicated intercompany accounts. On each entity's chart of accounts, create separate accounts for intercompany activity rather than letting it blend into the normal ones. A current asset called Intercompany Receivable — [Other Entity], a current liability called Intercompany Payable — [Other Entity], and equivalent P&L accounts for intercompany sales and recharges. The moment internal balances live in their own accounts, identifying them stops being detective work.
Adopt a naming convention you never break. Whatever marker you choose — an Interco prefix, an [IC] tag, a consistent account-code range — apply it everywhere, in every entity. Consistency is what makes the elimination repeatable. A convention that's followed 90% of the time is a convention that breaks your group P&L 10% of the time.
Tag the counterparties in Xero contacts. When one entity invoices another, the customer/supplier record should clearly be the related entity, named consistently across all orgs. This is what lets you (or a tool) confirm a transaction is genuinely intercompany rather than guessing from the account alone.
Carry a consistent reference. Put the same reference on both sides of an intercompany transaction where you can. It's the cheapest way to match a receivable to its payable later without a forensic exercise.
None of this is glamorous. All of it turns the next eleven month-ends from a hunt into a checklist.
Step 2: Pull the data out the right way
When you export, take the underlying numbers, not the pretty report. Export each entity's trial balance (or the account-level P&L and balance sheet data), not the formatted PDF P&L with its subtotal rows and merged cells. Formatted reports are built for reading, not for being a data source — they break the moment you try to do arithmetic across them.
Get every entity onto the same footing: same period, same close status, same currency convention. If two entities aren't closed to the same point, your eliminations will chase a moving target.
Step 3: Identify what actually needs eliminating
If you did Step 1, this is now a filter rather than a search. You're looking for the internal transactions that would otherwise be double-counted at group level. In practice they fall into a handful of buckets:
- Intercompany sales and recharges — one entity bills another for goods, services, management fees, or shared-cost allocations. Both the revenue and the matching cost have to go.
- Intercompany receivables and payables — the balance-sheet other side of those invoices. The receivable on one ledger and the payable on the other net to nothing for the group.
- Intercompany loans — the note receivable on the lender's books, the note payable on the borrower's, plus the interest income and interest expense they generate. Both the balance-sheet and P&L sides need eliminating.
- Intercompany dividends — distributions inside the group aren't group income.
- Investment in subsidiaries — the parent's carrying value of the subsidiary against the subsidiary's equity, for a full consolidation.
You don't need to memorise the theory of each to handle them — the deep-dive unpacks all five. For the month-end process, the point is simply: every internal flow has two sides sitting on two different ledgers, and your job is to find both.
Step 4: Match the two sides — and expect them not to agree
This is the actual hard part, and the one people underestimate. In theory, the intercompany receivable at Entity A equals the intercompany payable at Entity B. In practice it frequently doesn't, and the gap is where close time disappears.
The usual culprits:
- Timing differences. Entity A books the sale in March; Entity B books the purchase in April. For one period the two sides don't line up, even though everything is correct.
- FX differences. If the two entities are in different currencies, the same transaction translates to different numbers on each side depending on the rate used. The economic event matches; the translated figures don't.
- Coding inconsistencies. Someone coded one side to the wrong account, or to a generic account instead of the intercompany one. Now it's hiding.
Match them anyway — by counterparty, amount, and reference — and investigate every gap before you eliminate. A clean elimination on top of an unreconciled mismatch just buries the error inside a group number that looks tidy. Reconcile first, eliminate second. Always that order.
Step 5: Post the elimination
Once both sides are identified and reconciled, remove them from the group view. Critically, you do this at consolidation — not by editing either entity's Xero books. Each entity's standalone accounts are correct and need to stay that way for local tax and audit; the elimination only lives in the group layer.
Mechanically, in a spreadsheet model that usually means an eliminations column or tab that sits between the entity columns and the group total:
- For an intercompany sale: a negative to group revenue and a negative to the matching group cost, equal in size. Net effect on group profit: nil, but both inflated lines come back to reality.
- For an intercompany balance: a negative to the group receivable and a negative to the group payable.
- For a loan: eliminate the receivable against the payable on the balance sheet, and the interest income against the interest expense on the P&L.
Keep each elimination as an explicit, labelled line — not a plug. "Eliminate IC sales A→B, March, ref INV-1042" is auditable. A single mystery adjustment that makes the totals tie is not, and it's the thing that falls over the moment someone asks a real question.
Step 6: Prove it with the reconciliation check
Don't trust the model just because it balances. Run the check that proves the elimination did what it should:
- Group revenue and group costs each dropped by exactly the intercompany amount.
- Net intercompany receivables across the group equal net intercompany payables — ideally both zero after elimination.
- Group profit is unchanged by any elimination that should be profit-neutral (sales, recharges, loans). If eliminating an intercompany sale moved group profit, something is mismatched and you've found a real error, not finished the job.
That last test is the single most useful one. A correct intercompany elimination almost never changes group profit. When it does, stop and find out why.
Where this quietly falls apart
The manual process works. It also degrades in predictable ways:
- Someone adds an account in one entity and forgets the group mapping, so transactions silently fall outside the elimination logic.
- A new intercompany relationship appears — a new entity, a new recharge type — and the model doesn't know about it.
- An FX rate goes stale, and the two sides of an FX-affected elimination stop netting cleanly.
- The person who built the model leaves, taking the undocumented logic with them.
Every one of these produces a group P&L that looks fine and is wrong. The fragility isn't the arithmetic — it's that the arithmetic depends on a human remembering a dozen conventions every single month.
When to stop doing this by hand
If your group's intercompany is small and stable, the process above is entirely manageable — run it, document it, move on. Third-party consolidation tools handle the standard cases well too, if your intercompany looks like the textbook examples.
The groups that struggle are the ones whose intercompany doesn't look standard: regional shared services billing on bespoke allocations, holding structures with layered loan flows, franchise networks with two-sided royalty arrangements, or any group whose mapping has grown over years into something no vendor template anticipates. That's usually the point where the monthly ritual stops being worth the risk.
Cheetah builds elimination logic directly into custom reports on top of Xero — counterparty checks against your Xero contacts, account-name pattern matching, custom pairing rules per group, FX-aware netting, and an audit trail back to every source transaction. It runs the steps above every cycle without anyone reconstructing the spreadsheet, and produces a group P&L that survives the auditor's first question. We've helped firms like Book&Entries and CAP Advisory get there.
Worth a look if your eliminations are currently a journal someone copy-pastes each month, or a quarterly cleanup of what should have netted off automatically.
Handling intercompany eliminations in Xero comes down to the same discipline every cycle: set up so it's findable, match both sides honestly, eliminate only at the group layer, and prove it didn't move profit. Do that, and eliminations stop being the part of close everyone dreads.

Jarvin is a product builder who's spent years deep in the worlds of finance and software. From his years of building reports manually, he understands the unique needs of businesses in financial and operational reporting – security, auditability, scalability, and most importantly, customisation.
He has built hundreds of the most complex reports the hard way, figured how to automate them reliably, and is now on a mission to help businesses and advisory firms do the same.