Intercompany Transactions and Consolidation
The moment a group has more than one legal entity, a whole layer of complexity appears — and it’s one of the most common sources of “why won’t the books close?”
Why intercompany exists
Each legal entity keeps its own complete books. A transaction between two of them appears twice, from both sides:
Company A (Bangladesh factory) sells to Company B (UAE trading arm) for 100,000
Company A's books: Company B's books:
Intercompany AR Dr 100,000 Inventory Dr 100,000
Revenue Cr 100,000 Intercompany AP Cr 100,000
COGS Dr 70,000
Inventory Cr 70,000
Both are individually correct. But the group as a whole hasn’t sold anything to anyone — it just moved its own goods. At consolidation, that 100,000 of revenue and 100,000 of cost, plus the AR and AP, must be eliminated.
Elimination
Group consolidation:
Revenue (A) Dr 100,000 ← remove the internal sale
COGS (B) Cr 100,000
Intercompany AP (B) Dr 100,000 ← remove the internal balance
Intercompany AR (A) Cr 100,000
Unrealised profit in inventory
If B hasn’t sold the goods onward yet, B’s inventory sits at 100,000 but cost the group only 70,000. The 30,000 profit is unrealised and must be eliminated:
Group COGS / retained earnings Dr 30,000
Inventory Cr 30,000
When B eventually sells to a real customer, the profit is realised and the elimination reverses. Tracking this requires knowing, per inventory item, how much intercompany markup is embedded in it — which is why groups need a group valuation view of inventory alongside the legal one. See Cost and Management Accounting on transfer pricing.
Types of intercompany transaction
| Type | Example |
|---|---|
| Trading | Goods sold between entities |
| Services | Shared IT, management fees, R&D recharges |
| Financing | Intercompany loans, interest, cash pooling |
| Cost allocations | HQ overhead pushed to subsidiaries |
| Royalties / licences | IP holding company charging operating entities |
| Asset transfers | Moving a machine between entities |
| Dividends | Subsidiary to parent |
Every one has both a legal reality (real invoices, real tax) and a group reality (nothing happened). Tax authorities scrutinise all of them under transfer pricing rules — see BEPS and the OECD guidelines.
Automatic intercompany postings
Well-configured ERPs post both sides automatically:
User posts in Company A: charge 50,000 of IT cost to Company B
System generates:
Company A:
Intercompany receivable (B) Dr 50,000
IT cost recovery Cr 50,000
Company B:
IT expense Dr 50,000
Intercompany payable (A) Cr 50,000
Both documents linked by a cross-company document number.
Configuration: a matrix of clearing accounts per entity pair.
From \ To 1000 2000 3000
1000 — 1600-2000 1600-3000
2000 1600-1000 — 1600-3000
3000 1600-1000 1600-2000 —
Intercompany reconciliation
The recurring pain. A’s receivable from B should exactly equal B’s payable to A. It routinely doesn’t:
| Cause | Example |
|---|---|
| Timing | A posts in March, B receives the invoice in April |
| FX | Different currencies, different rates applied |
| Disputes | B disagrees with the charge |
| Missing postings | One side never booked it |
| Wrong partner | Posted against the wrong entity |
| Rounding | Small, cumulative |
Reconciliation process:
- Both entities report intercompany balances by partner, monthly
- System matches by partner + document reference
- Differences above tolerance go to a dispute list with a named owner on each side
- Must be cleared before consolidation closes
This is why groups impose a hard intercompany cut-off several days before the group close, and why “IC reconciliation” is its own full-time role in large groups.
If you build this: the trading_partner field (the counterparty entity) must be mandatory and validated on every intercompany posting. Automate the matching. Publish a daily, not monthly, mismatch report — finding a break on day 2 is trivial, finding it on day 25 is a crisis.
The consolidation process
1. Each entity closes its local books
2. Local GAAP → group GAAP adjustments (different depreciation, provisions, revenue recognition)
3. Currency translation to group currency
- Assets/liabilities at closing rate
- P&L at average rate
- Equity at historical rate
- Difference → Cumulative Translation Adjustment (CTA) in equity
4. Aggregate all entities
5. Eliminate intercompany balances (AR/AP, loans)
6. Eliminate intercompany P&L (revenue/COGS, services, interest)
7. Eliminate unrealised profit in inventory and fixed assets
8. Eliminate investment in subsidiaries against their equity
9. Calculate non-controlling interests (minority share of partly-owned subs)
10. Consolidate at equity method for associates (20–50% ownership)
11. Produce group statements + notes + segment reporting
Consolidation methods by ownership
| Ownership | Method | Treatment |
|---|---|---|
| >50% (control) | Full consolidation | 100% of assets/liabilities/P&L, with non-controlling interest for the outside share |
| 20–50% (significant influence) | Equity method | One line: “Investment in associates” + share of profit |
| Joint control | Equity method (IFRS 11) or proportionate for joint operations | Depends on the arrangement |
| <20% | Financial instrument | Fair value under IFRS 9 |
Ownership can be indirect and multi-layered (A owns 80% of B, B owns 60% of C → A’s effective interest in C is 48%, but A controls C, so C is fully consolidated with a 52% non-controlling interest). Getting the control vs ownership distinction right is the core of consolidation logic.
Non-controlling interests (NCI)
If the parent owns 80% of a subsidiary, 100% of the sub’s assets and results are consolidated, and 20% is then shown as belonging to outside shareholders:
Consolidated profit 1,000,000
Attributable to owners of the parent 920,000
Attributable to non-controlling interests 80,000
Tools
| Approach | When |
|---|---|
| ERP consolidation module (SAP Group Reporting, Oracle FCCS, Dynamics consolidation) | Everything is in one ERP |
| Dedicated EPM/CPM tool (OneStream, Tagetik, Board, Anaplan, Workiva) | Multiple source systems, complex ownership, heavy disclosure needs |
| Spreadsheets | Small groups. Common, risky, and an audit finding waiting to happen |
Group chart of accounts mapping
Entities may post to local charts. Consolidation needs one group chart:
Local (BD) 4010 "বিক্রয় - স্থানীয়" → Group 400000 Revenue - Domestic
Local (BD) 4020 "বিক্রয় - রপ্তানি" → Group 400100 Revenue - Export
Local (AE) 5100 "Sales" → Group 400000 Revenue - Domestic
The mapping is master data, effective-dated, and must be complete — an unmapped account either disappears from the group accounts or lands in a suspense line. Automate the “unmapped accounts with a balance” check as a blocking step in the close.
Multi-GAAP / parallel ledgers
Rather than adjusting at consolidation, post to parallel ledgers throughout the year:
Ledger 0L — IFRS (group standard, leading)
Ledger 2L — Local GAAP (statutory)
Ledger 3L — Tax basis
Common transactions post to all ledgers. Where treatments differ (depreciation life, provision recognition, lease treatment, revenue timing), ledger-specific documents post to just one. Consolidation then reads the IFRS ledger with no adjustment layer.
This is cleaner but requires the discipline to be maintained continuously. Add ledger_id to your journal tables from the start even if you launch with one ledger.
Developer checklist
trading_partner(counterparty entity) mandatory on every intercompany account posting- Intercompany clearing account matrix configured for every entity pair
- Automatic both-sides posting for intercompany documents, linked by a common reference
- Daily intercompany mismatch report, not monthly
- Currency translation uses the right rate type per line type
- Group chart mapping completeness check as a blocking close step
- Elimination entries post to a separate consolidation ledger, never to the entities’ books
- Ownership percentages are effective-dated (acquisitions and disposals happen mid-year)
- Consolidation is re-runnable and idempotent