You’re sitting in a consolidation review. Someone points to the intercompany receivables line. “Why isn’t this zero?” The room goes quiet. The FCCS specialist checks metadata. The accountant checks the trial balance. Neither sees the full picture.
This is where intercompany eliminations break. Not because the accounting is hard — you can’t owe money to yourself. But because the system mechanics, the metadata dependencies, and the FX complexity sit in different places. Accountants know the standard. FCCS specialists know the configuration. The gap between them is where troubleshooting dies.
Let’s close that gap.
TL;DR
The accounting requirement: IFRS 10.B86 and ASC 810-10-45-1 require elimination of all intragroup transactions. You can’t owe money to yourself.
The FCCS mechanics: Elimination happens automatically when 7 conditions are met: account flagged as intercompany, valid Plug account, valid ICP partner, consolidation % > 0%, common parent exists, partner is sibling/descendant, method = Subsidiary.
The FX complexity: Intercompany balances eliminate, but FX gains/losses on non-functional currency balances may survive. Under US GAAP, qualifying long-term loans can defer FX to CTA (ASC 830-20-35-3).
The common traps:
- Rate type mismatches create Plug differences
- FX accounts should never be flagged as
Is Intercompany - Elimination occurs at first common parent, not at each parent level
- Missing documentation kills CTA treatment for long-term loans
The Accounting Problem
IFRS 10.B86 and ASC 810-10-45-1 state the requirement:
Intra-group assets and liabilities, equity, income, expenses and cash flows relating to transactions between entities of the group shall be eliminated.
Translation: You can’t sell to yourself. You can’t owe money to yourself. From the group’s perspective, money moving between subsidiaries isn’t revenue — it’s just moving between pockets.
But here’s what the standard doesn’t tell you: What happens when the two entities use different currencies? What if the intercompany balance is denominated in a third currency? What survives consolidation and what doesn’t?
That’s where the mechanics matter. And where FX meets intercompany, things get interesting.
Intercompany balances eliminate in consolidation, but FX gains and losses on non-functional currency loans may survive as real economic exposure.
The Logic Flow (The Accountant’s View)
Same Currency: The Simple Case
Let’s start with the T-account view for a straightforward case. This is what the accountant needs to see to confirm the requirement is met.
Scenario: Parent Co (USD) owns Entity A (USD) and Entity B (USD). Entity A sells $100 worth of inventory to Entity B on credit.
Before Consolidation:
| Entity A | Entity B | |
|---|---|---|
| A/R - Entity B: $100 | Inventory: $100 | |
| Revenue: $100 | A/P - Entity A: $100 |
The Elimination:
| Account | Entity | IC Partner | Entity Input | Elimination | Contribution |
|---|---|---|---|---|---|
| Accounts Receivable | Entity A | Entity B | $100 | ($100) | $0 |
| Accounts Payable | Entity B | Entity A | $100 | ($100) | $0 |
| Revenue | Entity A | Entity B | $100 | ($100) | $0 |
| COGS | Entity B | Entity A | $100 | ($100) | $0 |
Clean elimination. Both sides match. Contribution shows zero for all intercompany balances. That’s the happy path.
But here’s the problem: Most global groups don’t have the luxury of same-currency transactions.
Cross-Currency: The Real World
Scenario: Parent Co (USD, parent currency) owns Entity A (USD functional currency) and EuroCo (EUR functional currency). Entity A loans $100,000 USD to EuroCo. Parent Co consolidates in USD.
Here’s where it gets tricky: The loan is denominated in USD. Entity A records it in USD (its functional currency). EuroCo records it in EUR (its functional currency). They’re both right — but they won’t match.
Step 1: What Each Entity Records
| Date | Rate | Entity A (USD) | EuroCo (EUR) |
|---|---|---|---|
| Jan 15 — Loan funded | €1 = $1.10 | Dr: Loan Receivable $100,000 Cr: Cash $100,000 |
Dr: Cash €90,909 Cr: Loan Payable €90,909 |
| Mar 31 — Period end | €1 = $1.25 | No revaluation needed (USD is functional) |
Revalue USD loan at new rate: $100,000 ÷ 1.25 = €80,000 Dr: Loan Payable €10,909 Cr: FX Gain €10,909 |
EuroCo’s loan payable dropped from €90,909 to €80,000 because the USD strengthened against EUR. The $100,000 USD principal is fixed — but in EUR terms, EuroCo owes less.
Step 2: What Gets Eliminated
Entity A’s loan receivable: $100,000 USD (no change, functional currency) EuroCo’s loan payable: $100,000 USD when translated to parent currency
Both translate to $100,000 at the parent level. The elimination works:
| Account | Entity | Elimination Amount |
|---|---|---|
| Loan Receivable | Entity A | ($100,000) |
| Loan Payable | EuroCo | $100,000 |
But look at what’s left behind:
What Survives Consolidation:
| Account | Amount | Where It Lives |
|---|---|---|
| FX Gain | €10,909 | EuroCo’s P&L → survives in Consolidated P&L |
| CTA Impact | $10,909 equivalent | Equity → Cumulative Translation Adjustment |
The Key Insight: The intercompany balances eliminate. The FX gain/loss does not.
Under US GAAP’s ASC 830-20-35-3 exception, long-term intercompany loans can defer FX gains and losses to CTA instead of hitting P&L.
Why? Because the FX gain represents real economic exposure. EuroCo genuinely benefited from the currency movement — it owes less in its functional currency. That gain survives consolidation. The intercompany balance eliminates, but the FX impact doesn’t.
But here’s where it gets nuanced: What if the intercompany loan is long-term in nature? The accounting standards provide specific guidance.
The FX Survival Question: When Do Intercompany FX Gains/Losses Survive?
The treatment depends on two factors:
- The nature of the intercompany transaction (trade vs. long-term investment)
- The accounting framework (US GAAP vs. IFRS)
Let’s look at what the standards actually say.
US GAAP: The ASC 830-20-35-3 Exception
ASC 830-20-35-3 allows FX gains/losses on intercompany loans “of a long-term-investment nature” to go to CTA (OCI) instead of P&L.
Translation: If the loan is effectively capital in substance — no intention to repay — FX goes to equity, not earnings.
Qualifying Criteria:
| Criterion | Practical Test |
|---|---|
| Long-term-investment nature | Management assertion required |
| No specified maturity | If maturity exists, intent to renew must be documented |
| No current intention to repay | “Timing uncertain” ≠ “not planned” |
| Consolidated or equity-method | No deferral for unconsolidated entities |
Does NOT Qualify: Trade payables/receivables, loans with specified maturity, interest on the loan (separate monetary item).
WarningMissing documentation at loan inception kills CTA treatment. Without contemporaneous board approval and written management assertion, the CTA treatment won’t survive audit scrutiny.
Example: Parent Co (USD) loans $50,000 to Mexico SA (MXN functional). Management asserts settlement is not planned. USD strengthens from MXN 10 to MXN 13. The FX loss reclassifies from P&L to CTA upon consolidation.
CTA on Disposal: When a foreign subsidiary is sold or substantially liquidated, accumulated CTA (including FX from qualifying intercompany loans) reclassifies from equity to P&L as part of the gain or loss on disposal.
IFRS: No Equivalent Exception
IAS 21 requires all FX gains/losses on monetary items to go to P&L. Period.
The nuance: IAS 21.32 allows exchange differences on monetary items that are part of the net investment in a foreign operation to go to equity. But intercompany loans generally don’t qualify — that’s reserved for equity investments.
US GAAP vs. IFRS:
| Scenario | US GAAP | IFRS |
|---|---|---|
| Trade A/R, A/P | P&L | P&L |
| Short-term loan | P&L | P&L |
| Long-term loan (no repayment intent) | CTA | P&L |
| Equity investment | CTA | CTA |
Practical impact: A USD loan from parent to EUR subsidiary creates P&L FX gains/losses under IFRS. Under US GAAP, if the loan qualifies, those move to CTA. For dual-reporters, this creates a reconciliation difference.
The Plug Account Problem: ERP-Level FX vs. Consolidation
Here’s the operational challenge: EuroCo’s ERP automatically generates FX gain/loss entries. When FCCS eliminates the loan, the FX entry remains — orphaned in the Plug account.
The Fix:
| Loan Type | Treatment |
|---|---|
| Qualifying (US GAAP) | Reclass FX from P&L to CTA via consolidation adjustment |
| Non-qualifying (IFRS, trade) | FX belongs in P&L — should survive, not eliminate |
CautionFX gain/loss accounts should not be flagged as
Is Intercompany. They’re not intercompany balances — they’re revaluations of existing balances. Flagging them triggers FCCS to look for a matching partner that doesn’t exist.
The trap: Flagging FX accounts as Is Intercompany = True creates unwanted Plug entries because FCCS can’t find a matching partner for the FX remeasurement.
The Plug Account: Where Mismatches Land
Same-currency intercompany should match. Cross-currency intercompany should match after translation. But what if they don’t?
Scenario: Entity A (USD) records A/R from EuroCo as $100,000. EuroCo (EUR) records A/P to Entity A as $95,000. Rate differences, timing differences, plain old data entry errors.
FCCS doesn’t care why they don’t match. It posts the elimination anyway — and puts the difference in a Plug account.
| Entry | Account | Entity | IC Partner | Amount |
|---|---|---|---|---|
| 1 | A/R | Entity A | EuroCo | ($100,000) |
| 2 | Plug - IC Difference | Entity A | FCCS_No Intercompany | $100,000 |
| 3 | A/P | EuroCo | Entity A | ($95,000) |
| 4 | Plug - IC Difference | EuroCo | FCCS_No Intercompany | $95,000 |
Net Plug balance: $5,000. That’s your mismatch. It sits there until you investigate. The Plug account is the “catch-all bucket” — it’s where every intercompany difference lands.
Plug Account: What It Is and Why It Matters
The Plug account is a single clearing account that catches mismatches. When Entity A’s intercompany receivable doesn’t match Entity B’s intercompany payable, the difference lands here.
Why Keep It Simple:
One Plug account (or one per account type) is standard practice. The Plug represents timing differences, rounding, or data errors — it’s not a permanent balance. It should be investigated and cleared.
What the Plug Tells You:
| Plug Balance | Meaning |
|---|---|
| Zero | All intercompany balances match ✓ |
| Non-zero | Mismatch exists — investigate data, rates, or timing |
| Persistent non-zero | Root cause: rate type mismatch, missing partner, account type mismatch |
NoteThe Plug account is a temporary home for differences. It’s not where differences live forever. If you have persistent Plug balances, fix the underlying data — don’t build complex account structures to manage them.
When Account Types Don’t Match
Here’s a trap that catches even experienced consolidators: What if Entity A records an intercompany asset and EuroCo records an intercompany expense?
Scenario: EuroCo pays Entity A’s invoice for consulting services, but Entity A hasn’t recorded it yet. EuroCo records:
|
|
Entity A hasn’t recorded the intercompany receivable. No matching asset.
What FCCS Does:
If the accounts are both flagged as Intercompany and have Plug accounts assigned, FCCS will eliminate what exists. But you can’t eliminate an asset against an expense — they’re different account types. The Plug account on each side receives the offsetting entry.
Result:
- Intercompany Expense (EuroCo): Eliminated, Plug receives offset
- No Intercompany Asset (Entity A): Nothing to eliminate
This is why intercompany matching is critical. The Plug account catches everything, but you still have to investigate it.
Common Account Type Mismatches:
| Entity A | Entity B | Issue |
|---|---|---|
| A/R (Asset) | A/P (Liability) | Clean elimination if amounts match |
| A/R (Asset) | Expense | Can’t eliminate — mismatched account types |
| Loan Receivable (Asset) | Loan Payable (Liability) | Clean elimination if amounts match |
| Revenue (P&L) | COGS (P&L) | P&L elimination — but what about profit in inventory? |
| Revenue (P&L) | A/P (Liability) | Entity B recorded payable but Entity A hasn’t recorded revenue yet |
The last one is common in period-end cut-off: Entity B received goods but Entity A hasn’t invoiced yet. Entity B records the payable; Entity A has no intercompany revenue to eliminate against. Plug catches the difference.
The Engine Room (The Technical View)
When Does FCCS Eliminate?
FCCS processes intercompany eliminations automatically during consolidation — but only when all conditions are met:
| Condition | Check | Why It Matters |
|---|---|---|
| 1. Account is Intercompany | Account metadata has Is Intercompany = True |
Flags the account for elimination |
| 2. Valid Plug Account | Account has Plug account assigned in metadata | Offsetting entry needs somewhere to go |
| 3. Valid Intercompany Partner | Intercompany dimension ≠ FCCS_No Intercompany |
Matches the transaction to its counterpart |
| 4. Consolidation % > 0% | Both Entity and Partner consolidate to common parent at >0% | No elimination if either party is outside the group |
| 5. Common Parent Exists | Entity and Partner meet at a common ancestor in the hierarchy | Elimination occurs at the first common parent where both are siblings |
| 6. Partner is Sibling or Sibling’s Descendant | Partner must be a sibling of Entity, or a descendant of a sibling | Prevents elimination between parent and subsidiary |
| 7. Consolidation Method = Subsidiary | Entity metadata shows Subsidiary (not Equity Method or Cost) | Equity-method entities don’t trigger automatic IC elimination |
How Common Parent Elimination Works:
In a multi-level hierarchy, FCCS eliminates at the first common ancestor where both entities meet as siblings. Consider this structure:
|
|
If Entity 100 has an intercompany receivable from Entity 200:
- Entity 100 consolidates to Parent A, then GrandParent
- Entity 200 consolidates to Parent B, then GrandParent
- Elimination occurs at GrandParent — the first common ancestor
The elimination posts to GrandParent’s Elimination member, not to Parent A or Parent B. This is because Parent A only sees Entity 100’s side of the transaction, and Parent B only sees Entity 200’s side. Only GrandParent can see both sides and eliminate them.
NoteIf you expect elimination at Parent A or Parent B, you’ll be disappointed. It doesn’t happen there because neither parent sees the complete picture.
Same-Entity ICP: An Edge Case
By default, FCCS won’t eliminate transactions where an entity records an intercompany balance with itself (ICP = the same entity). This is correct — you normally don’t owe money to yourself.
When You Might Need This:
- Reclassification entries within the same entity
- Opening balance adjustments
- Management reporting allocations
How to Override:
Set StrictElimCondition = False in FCCS application settings. This allows same-entity ICP elimination.
CautionThis is an edge case. Most implementations keep
StrictElimCondition = True(the default). If you need same-entity elimination, investigate the data model first — it usually signals a structural issue.
The Equity Method Exception:
Entities with consolidation method = “Equity” don’t trigger automatic intercompany elimination. Why? Because equity-method entities aren’t fully consolidated — only the share of net assets goes to the balance sheet, and the share of profit/loss goes to the income statement.
| Method | Intercompany Elimination? |
|---|---|
| Subsidiary | Yes (automatic) |
| Proportional | Yes (automatic) |
| Equity | No (manual adjustment required) |
| Cost | No |
Common Setup Mistakes:
| Mistake | Symptom | Fix |
|---|---|---|
Account not flagged Is Intercompany |
No elimination occurs | Set Is Intercompany = True in Account metadata |
| Missing Plug account | Elimination fails or posts incorrectly | Assign Plug account in Account metadata |
ICP = FCCS_No Intercompany |
No elimination occurs | Verify data has valid partner in Intercompany dimension |
| Wrong rate type on account | Translated amounts don’t match, large Plug balance | Check Account Type and Exchange Rate Type in metadata |
| Account type mismatch | Plug account fills, elimination incomplete | Ensure matching account types on both sides (A/R vs A/P, Revenue vs COGS) |
The Cross-Currency Mechanics
For entities with different functional currencies, the sequence matters:
Sequence:
- Entity A (USD functional) records in USD
- EuroCo (EUR functional) records in EUR
- EuroCo translates to parent currency (USD) — rate types applied (Average for P&L, Ending for BS, Historical for equity)
- FCCS eliminates — both sides now in parent currency
- Plug account catches any mismatch
Rate Types Matter:
| Account Type | Rate Type | Example Rate |
|---|---|---|
| Monetary Assets (Cash, A/R) | Ending Rate | €1 = $1.25 at period end |
| Monetary Liabilities (A/P, Loans) | Ending Rate | €1 = $1.25 at period end |
| Revenue | Average Rate | €1 = $1.20 (monthly avg) |
| COGS | Average Rate | €1 = $1.20 (monthly avg) |
| Equity | Historical Rate | Rate when transaction occurred |
The Trap: If Entity A and EuroCo use different rate types for the same transaction, the translated amounts won’t match. FCCS will eliminate anyway — and the Plug catches the difference.
Common Rate Type Mismatches:
| Entity A Rate Type | Entity B Rate Type | Result |
|---|---|---|
| Average Rate | Ending Rate | Different USD amounts → Plug difference |
| Historical Rate | Average Rate | Different USD amounts → Plug difference |
| Ending Rate | Ending Rate | Match ✓ |
| Average Rate | Average Rate | Match ✓ |
Investigation Tip: When Plug accounts show differences for cross-currency transactions, check if both entities used the same rate type. A $5,000 Plug difference might not be a data error — it could be Entity A using average rate (€1 = $1.20) while Entity B uses ending rate (€1 = $1.25).
Resolution Options:
- Adjust one entity to use the same rate type as the other
- Post a manual elimination adjustment to clear the Plug
- Accept the difference if it’s immaterial and document the cause
Example: Entity A records intercompany revenue at average rate. EuroCo records intercompany expense at historical rate (the rate when goods were received). The two sides translate to different USD amounts. Plug account shows the difference.
Configuration Dependencies
| Dependency | Location | Purpose |
|---|---|---|
| Is Intercompany | Account metadata | Flags account for elimination |
| Plug Account | Account metadata | Receives offsetting entry when balances don’t match |
| Intercompany Partner | Data POV (ICP dimension) | Matches transaction to counterpart |
| Consolidation % | Entity metadata | Determines if entity is in consolidation scope |
| Entity Hierarchy | Entity dimension | Determines common parent for elimination |
| Rate Types | Account metadata | Determines translation rate for cross-currency |
The Validation Query (The Bridge)
Smart View Layout
Here’s the layout that proves eliminations are working:
POV:
- Entity: [Subsidiary entity]
- Period: [Current month]
- Scenario: Actual
- Consolidation: Entity Input, Elimination, Contribution
- Data Source: FCCS_Intercompany Eliminations
- Intercompany: [Partner entity]
Rows:
|
|
Columns:
|
|
Expected Results:
| Account | Entity Input | Elimination | Contribution |
|---|---|---|---|
| A/R - IC | $100,000 | ($100,000) | $0 |
| A/P - IC | $100,000 | ($100,000) | $0 |
| Revenue - IC | $100,000 | ($100,000) | $0 |
| COGS - IC | $100,000 | ($100,000) | $0 |
| Plug - IC Diff | $0 | $5,000 (if mismatch) | $5,000 |
Validation Questions:
-
“Do intercompany receivables and payables net to zero in Contribution?”
- If yes → Eliminations working correctly
- If no → Check: (a) ICP dimension populated, (b) Plug account assigned, (c) Consolidation % > 0%
-
“Is the Plug account balance zero?”
- If yes → Matching is clean
- If no → Mismatch between entity and partner. Investigate the difference.
-
“Do FX gains/losses on intercompany loans survive elimination?”
- If yes → Expected behavior for loans denominated in non-functional currency
- If no → Check rate types and revaluation logic
Intercompany Match Report
FCCS includes a built-in Intercompany Match Report. Use it.
Location: Reports → Intercompany Matching
What it shows:
- Entities with unmatched intercompany balances
- Plug account balances by entity
- Partner mismatches
Common findings:
- Entity A recorded $100, Entity B recorded $95 → $5 difference in Plug
- Entity A recorded with ICP = Entity B, Entity B recorded with ICP =
FCCS_No Intercompany→ No elimination - Entity A recorded with ICP = Entity B, Entity B recorded with ICP = Entity C → No elimination
Day 2 Maintenance
New Intercompany Account
Steps:
- Create the account in Account dimension
- Set
Is Intercompany = True - Assign Plug account (existing or create new)
- Verify Plug account has
Is Plug Account = Truein metadata - Load data with valid Intercompany Partner (ICP dimension)
- Run consolidation, check Elimination member
CautionIf you forget the Plug account assignment, FCCS won’t error — it just won’t eliminate. You’ll see the data in Entity Input but nothing in Elimination.
New Subsidiary Added
Steps:
- Add entity to hierarchy with correct parent
- Set Consolidation method (Subsidiary, Proportional, etc.)
- Set Functional Currency in Entity metadata
- Configure Intercompany Partner for any intercompany accounts the new entity has
- Verify Plug account assignments for those accounts
- Run consolidation at parent level
Cross-Currency Balance Mismatch
Symptoms:
- Plug account has non-zero balance
- Elimination amounts don’t match between entity and partner
- Intercompany Match Report shows unmatched balances
Troubleshooting:
- Run Intercompany Match Report
- Identify entities with difference
- Check: (a) Both entities recorded the transaction, (b) Same amount in functional currency, (c) Same ICP partner, (d) Same account
- If amount differs: Adjust the incorrect entry
- If ICP differs: Correct the Intercompany Partner dimension
- If account differs: Reallocate to correct account
- For cross-currency: Check rate types on both accounts match (Ending for BS, Average for P&L)
- Re-run consolidation, verify Plug = 0
Year-End Close Prep
Checklist:
- Run Intercompany Match Report
- Resolve all unmatched balances (Plug = 0)
- Verify all intercompany accounts have valid Plug assignments
- Confirm ICP dimension populated for all intercompany data
- Check FX gains/losses on intercompany loans are correctly reported in P&L
- Validate Elimination member shows expected amounts
- Confirm Contribution member nets intercompany to zero
The Trap
The most common misunderstanding: “Intercompany elimination removes the transaction.”
No. It doesn’t remove the transaction from Entity Input. It posts an offsetting entry in the Elimination member. The transaction still exists in Entity Input — the Consolidation dimension shows what happens when you consolidate:
- Entity Input: What each entity recorded
- Elimination: What FCCS eliminated
- Contribution: Entity Input + Elimination = Net presentation
If you expect Elimination to zero out Entity Input, you’re looking at the wrong dimension. Look at Contribution. That’s where the net happens.
ImportantFX gains/losses on intercompany loans: Wait, isn’t the loan eliminated? Yes. But if the loan is denominated in a currency other than the entity’s functional currency, that entity recorded FX gains/losses in its P&L. Those gains/losses represent real economic exposure. They survive consolidation.
CautionThe real trap: Confusing Investment Elimination with Intercompany Elimination. Investment elimination removes the parent’s investment account against subsidiary equity (Pillar 4). Intercompany elimination removes transactions between entities (Pillar 5). They’re different. If you run investment elimination on intercompany receivables, nothing happens — wrong account, wrong partner, wrong logic.
Quick Reference
| What | Where | Why |
|---|---|---|
| Account flag | Is Intercompany = True (Account metadata) |
Tells FCCS to eliminate this account |
| Plug account | Account metadata | Receives offsetting entry when balances don’t match |
| Intercompany Partner | ICP dimension in data POV | Matches transaction to counterpart |
| Consolidation % | Entity metadata (Ownership %) | Determines if entity is in scope |
| Elimination location | Consolidation dimension → Elimination member | Where offsetting entries post |
| Data Source | FCCS_Intercompany Eliminations |
Identifies elimination entries |
| FX gains/losses | Survive in P&L | Real economic exposure on non-functional currency intercompany balances |
Key Insight:
|
|
What’s Next
This deep-dive covers Pillar 5 of the eleven consolidation pillars. The executive summary introduced all eleven — this is the detailed breakdown for intercompany eliminations.
The pattern is the same across all pillars: accounting requirement → system mechanics → validation → maintenance. Know the standard. Know the system. Build the bridge between them.
Intercompany eliminations aren’t complex because the accounting is hard. They’re complex because the configuration is specific, the FX impact survives, and the Plug account catches everything that doesn’t match. Get the setup right, and the system does the work. Get it wrong, and you’re chasing Plug balances through consolidation logs.
Sources
- Oracle FCCS Documentation: Intercompany Eliminations
- Oracle FCCS Documentation: Intercompany Dimension
- PwC Foreign Currency Guide: Accounting for Long-Term Intercompany Loans — ASC 830-20-35-3 exception for long-term-investment nature intercompany loans
- PwC Foreign Currency Guide: Intercompany Balances — FX gains/losses survive consolidation
- PwC Foreign Currency Guide: Elimination of Intercompany Profits — Historical rate for profit-in-inventory elimination
- IFRS 10 — Consolidated Financial Statements, paragraph B86
- IAS 21 — The Effects of Changes in Foreign Exchange Rates (no long-term-investment exception)
- ASC 810-10-45 — Consolidation: Presentation, paragraph 45-1
- ASC 830-20-35 — Foreign Currency Transactions, paragraph 35-3 (long-term-investment exception)