# Run a monthly intercompany elimination

This guide is for group accountants closing the books each month. When companies inside a group trade with each other, those internal transactions inflate revenue, expenses, receivables and payables on a consolidated view. **Intercompany Elimination** is NexWave's tool for stripping them out without touching the operating companies' own ledgers. You run it once per month per source company, and it creates three Journal Entries inside a dedicated **elimination company** that auto-reverse next period for the balance-sheet side and absorb internal income on the P&L side.

For the conceptual reference (architecture, validation rules, doctype field list), see the [Intercompany Elimination module reference](/doc/d728bccb-f459-495e-ab42-be39db517e0d).

## How it works in one screen

NexWave assumes a group structure that looks like this:

```
NexWave Group  (parent, Is Group)
├── NexWave            (operating company A, NZD)
├── NexWave Australia  (operating company B, AUD)
└── NexWave Eliminations  (dedicated elimination company, NZD)
```

When you create a child company under a parent group, NexWave clones the parent's chart of accounts into the child. That is what makes elimination matching work: the same account name (or number, if you use account numbers) exists on every company under the group. The elimination engine finds the source company's account, then finds the matching account in the elimination company by **Account Number + Account Name** (if the source has a number) or **Account Name + Root Type** (if it does not).

Each month you create one **Intercompany Elimination** document per source company. It does two things at calculate time:


1. **Balance-sheet side**: walks every account in the source company that has *Include in Elimination* ticked, computes the period movement (closing balance at To Date minus opening balance at From Date), and proposes the reverse as the elimination amount.
2. **P&L side**: finds every Sales Invoice the source company raised in the period to a customer flagged *Is Internal Customer*, sums the income accounts hit, and proposes the reverse. It also picks up the GST output tax on those invoices and reverses it too.

When you submit, NexWave posts three Journal Entries in the elimination company, all stamped with **Entry Type** = *Intercompany Elimination Entry* so you can find them later:

| Journal | Posting date | Purpose |
|---------|--------------|---------|
| BS Elimination | To Date      | Reverses the period movement of marked balance-sheet accounts |
| BS Reversal | The day after To Date | Reinstates the same balances so the next period's opening is correct |
| P&L Elimination | To Date      | Reverses internal income (offset to Intercompany COGS) and tax (offset to CTA) |

The BS pair zeroes out only for that period; the P&L entry stands because P&L accounts roll into Retained Earnings at year-end through the Period Closing Voucher anyway.

## Before you start

You will need:

* A **group company tree** with one parent group company, the operating companies that trade with each other, and one dedicated **elimination company**. The elimination company must be a sibling of the operating companies under the same parent group.
* The elimination company set up with **Is Elimination Company** ticked and an **Intercompany Elimination Account** (a leaf Equity account, used as a Cumulative Translation Adjustment / CTA). See *One-time setup* below.
* An **Intercompany COGS Account** in the elimination company (a leaf Expense account). The elimination engine credits this for every dollar of internal income it reverses.
* Each intercompany **balance-sheet account** in the source company (typically Intercompany Receivable and Intercompany Payable) flagged with **Include in Elimination**.
* Each related-company **Customer** record flagged **Is Internal Customer**, with **Represents Company** pointing to the related company.
* **Matching accounts** in the elimination company for every source-side account the calculation will touch (the BS-flagged accounts, every income account hit by intercompany sales, and every GST account on intercompany Sales Invoices). The fastest way to guarantee this is to create the accounts at the parent group level so they cascade automatically to every child company including the elimination company.
* All internal trading for the period invoiced and posted before you start the elimination.
* Permission as Accounts Manager or System Manager.

## One-time setup

These steps configure the group for elimination. You only need to do them once.

### A. Create the elimination company

Go to **Accounting > Company > New** and create the elimination company as a child of the parent group:

* **Company Name**: a clear name like *NexWave Eliminations*.
* **Default Currency**: same as the source company you will eliminate from. (For multi-currency groups, you will typically want one elimination company per source-company currency. Account currencies must match across source and elimination, so a single multi-currency elimination company only works if you replicate every account in every currency you trade in.)
* **Parent Company**: the parent group (for example, *NexWave Group*).
* **Create Chart of Accounts Based On**: *Existing Company*, and pick the source company. This clones the source's chart so the matching logic works out of the box.

Once saved, open the company record again, switch to the **Accounts** tab, and scroll to the **Intercompany Elimination** section:

* Tick **Is Elimination Company**.
* In **Intercompany Elimination Account**, pick (or create) a leaf **Equity** account. This account acts as the Cumulative Translation Adjustment (CTA) sink: the BS Elimination journal balances against it when the marked accounts have a non-zero net movement, and the P&L Elimination journal posts the offset for tax-line reversals against it as well.

 ![Elimination Company Accounts tab with Is Elimination Company ticked and the CTA account set](https://docs.nexwaveapp.com/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzL2YxMTg5ZTEzLTdlMTQtNDA1ZC04MDI1LWMxZmI0Y2Y2MTg0ZC8yZjBlODRjOC04NTNhLTQ2Y2ItODIzMy0zMzY3YTA4MzNhZDUvMDEtZWxpbWluYXRpb24tY29tcGFueS5wbmciLCJ0eXBlIjoiYXR0YWNobWVudCIsImlhdCI6MTc5MjYyMTgwMCwiZXhwIjoxNzkyNzA4MjAwfQ.4XikIheqb_Jv8U7mdEPua4LkjisTpUHyAHLtMOx8jrA)

> **Important:** an elimination company is for consolidation entries only. Do not raise sales or purchases in it, do not run payroll through it, and do not let users post day-to-day transactions there. Mixing operational entries with elimination entries makes the elimination company's reports meaningless.

### B. Create matching accounts in the elimination company

Every account the calculation touches must exist in the elimination company. The matching rules:

* If the source account has an **Account Number**, the match is on **Account Number + Account Name + Company**, with **Is Group** unticked on the elimination-company account.
* If it has no number, the match is on **Account Name + Root Type + Company**, again with **Is Group** unticked.

If a match is missing at calculate time, NexWave aborts with a hard error pointing at the missing account. There is no soft-fallback.

The cleanest setup for a parent-group structure is to create accounts at the **parent group level**: NexWave automatically cascades them to every child company. So if you create *2150 - Intercompany Receivable* in NexWave Group, it appears as *2150 - Intercompany Receivable - NW* in NexWave, *2150 - Intercompany Receivable - NWA* in NexWave Australia, and *2150 - Intercompany Receivable - NWE* in NexWave Eliminations, all with matching numbers and names.

You need matching accounts for at least:

* Each intercompany **balance-sheet** account you flag for elimination (typically *Intercompany Receivable* and *Intercompany Payable*).
* Each **income account** the source company posts to from intercompany Sales Invoices (typically a dedicated *Intercompany Sales Income*).
* Each **tax account** that appears on those Sales Invoices' tax tables (typically your country's GST output account).

You also need two accounts that live only in the elimination company:

* The **CTA account** (leaf Equity).
* The **Intercompany COGS Adjustment** account (leaf Expense).

### C. Flag intercompany balance-sheet accounts in the source company

Open each intercompany BS account in the source company (for example, *2150 - Intercompany Receivable - NW*) and tick **Include in Elimination**. The flag only appears on Asset, Liability and Equity accounts: P&L elimination is driven by the customer flag, not the account flag, so it is not offered for Income or Expense accounts.

 ![Account form with Include in Elimination ticked on the source-company intercompany receivable](https://docs.nexwaveapp.com/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzL2YxMTg5ZTEzLTdlMTQtNDA1ZC04MDI1LWMxZmI0Y2Y2MTg0ZC82NjE1NDRhOS1lYTI4LTQxOGUtODlmZi04MGIwNDNjZWM3ZTUvMDItaW5jbHVkZS1pbi1lbGltaW5hdGlvbi5wbmciLCJ0eXBlIjoiYXR0YWNobWVudCIsImlhdCI6MTc5MjYyMTgwMCwiZXhwIjoxNzkyNzA4MjAwfQ.fevb_7x6o0npeUUkI49q67fhWKdNYCcnf5GibTYTo8M)

### D. Flag intercompany customers as Internal

Each related company that buys from the source needs a Customer record on the source. Open the customer, expand the **Internal Customer** section, tick **Is Internal Customer**, and set **Represents Company** to the related company. Optionally, in the **Accounting** tab, override the default receivable account for the source company so intercompany sales hit your dedicated intercompany receivable account instead of the standard Debtors account.

 ![Customer record showing the Internal Customer section](https://docs.nexwaveapp.com/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzL2YxMTg5ZTEzLTdlMTQtNDA1ZC04MDI1LWMxZmI0Y2Y2MTg0ZC9hN2YzYWYzOC0yMmI1LTRlNjgtYmIwYS1jZjMwZWUyNDM0NTgvMDMtaW50ZXJuYWwtY3VzdG9tZXIucG5nIiwidHlwZSI6ImF0dGFjaG1lbnQiLCJpYXQiOjE3OTI2MjE4MDAsImV4cCI6MTc5MjcwODIwMH0.0WDDOe3vhXoIJaz2TrJRng4i60dbhlrEWpFiZ6Cko0M)

> **Audit warning:** the elimination engine picks up *every* customer flagged Internal anywhere in the system, regardless of which company they represent. If a customer is flagged Internal by mistake, their sales will be eliminated as if they were intercompany. Audit your Internal Customer list periodically.

## Run the monthly elimination

Once setup is in place, the monthly cycle is short.

### Step 1: Create a new Intercompany Elimination

Go to **Accounting > Intercompany Elimination > + Add Intercompany Elimination**. Fill in:

| Field | Value |
|-------|-------|
| Source Company | The operating company whose internal trading you are eliminating |
| Elimination Company | The elimination company (filtered automatically to those with **Is Elimination Company** ticked) |
| From Date / To Date | Typically the first and last day of the calendar/reporting month |
| Intercompany COGS Account | A leaf Expense account in the elimination company. The P&L elimination credits this for every dollar of internal income it reverses |

Leave **Accounting Dimensions** (Cost Centre, Project, custom dimensions) blank for a standard run, or set them if you want every elimination JE line stamped with a specific dimension. Save as draft.

> **Overlap rule:** you cannot create two non-cancelled Intercompany Eliminations whose date ranges overlap for the same source company. Cancel a previous run before creating one for an overlapping period.

### Step 2: Click Calculate Eliminations

The button sits in the top-right of the form. NexWave runs both calculations and populates two tables.

**What it computes for the BS side:**

* For every account in the source company with **Include in Elimination** ticked, NexWave computes the **period movement** (closing balance at To Date minus opening balance at From Date) using the account's own currency.
* For accounts with type **Receivable** or **Payable**, the movement is broken down by party. You will see one row per (account, party) pair, with **Party Type** and **Party** populated.
* For other BS accounts (intercompany loans, etc.), one row per account.
* The **Elimination Amount** column is always the negative of the original balance: a $11,100 net debit movement becomes a $-11,100 elimination, which the BS journal will post as a credit on the matching elimination-company account.

**What it computes for the P&L side:**

* NexWave finds every voucher in the period where the source company posted to a customer flagged **Is Internal Customer**.
* For those vouchers, it sums the GL entries by income account: only accounts whose **Root Type** is *Income* and whose **Account Type** is *Income Account*, *Direct Income* or *Indirect Income* are included. Each qualifying income account becomes a row.
* For Sales Invoices specifically, it also picks up every account on the **Sales Taxes and Charges** table, sums their GL entries, and adds them as additional rows with the **Tax** flag ticked.
* The **Elimination Amount** is again the negative of the original net amount. The P&L journal will debit each income/tax line in the elimination company to reverse the credit.

 ![Intercompany Elimination form in Calculated state showing both BS and P&L tables populated](https://docs.nexwaveapp.com/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzL2YxMTg5ZTEzLTdlMTQtNDA1ZC04MDI1LWMxZmI0Y2Y2MTg0ZC8yNTNjYWIyNy00OWE5LTQxY2MtYmQ3Yy1kNGEwOGNmNTNiYmYvMDQtaWUtZm9ybS1jYWxjdWxhdGVkLnBuZyIsInR5cGUiOiJhdHRhY2htZW50IiwiaWF0IjoxNzkyNjIxODAwLCJleHAiOjE3OTI3MDgyMDB9.Ulbzfm9wNQfUT5FXpvbN8EWOLE3_qeC9lhRgzWHiPPU)

The status moves from *Draft* to *Calculated*. You can re-run **Calculate Eliminations** as often as you want before submitting (each run replaces both tables), so feel free to iterate while you investigate the numbers.

### Step 3: Verify the source numbers

Two helpers let you drill into where each number came from.

**View Source > BS Source Ledger** routes to the General Ledger for the source company, filtered to the date range and the BS-flagged accounts. The Balance column makes it obvious whether the period movement matches what you expected.

 ![General Ledger showing source movements on the intercompany receivable account](https://docs.nexwaveapp.com/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzL2YxMTg5ZTEzLTdlMTQtNDA1ZC04MDI1LWMxZmI0Y2Y2MTg0ZC85Y2EzMTk2NS1jZDExLTQ3MWItOTQyNi1jYTljMTM0M2JhYzcvMDUtYnMtc291cmNlLWxlZGdlci5wbmciLCJ0eXBlIjoiYXR0YWNobWVudCIsImlhdCI6MTc5MjYyMTgwMCwiZXhwIjoxNzkyNzA4MjAwfQ.IilbtSwOSg8W_2ZTYPKT71PdTuY-DLSItiQjvea9V40)

**View Source > P&L Source** opens an in-form dialog listing every GL entry that fed the P&L table: the Sales Invoices and their income/tax lines, with links back to each voucher.

 ![P&L Source Entries dialog showing the GL entries that feed the P&L elimination](https://docs.nexwaveapp.com/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzL2YxMTg5ZTEzLTdlMTQtNDA1ZC04MDI1LWMxZmI0Y2Y2MTg0ZC9mZjdiZWVhYS04YzkwLTRkYjAtOTQ3Mi0xN2ZhNmZiMDE3NWIvMDYtcGwtc291cmNlLWRpYWxvZy5wbmciLCJ0eXBlIjoiYXR0YWNobWVudCIsImlhdCI6MTc5MjYyMTgwMCwiZXhwIjoxNzkyNzA4MjAwfQ.PlIo-qlwGQ8tmfT9OWMcMMN3nCpSFzCgfgdtEEq6NBM)

If the dialog shows entries you did not expect, the most common cause is a customer flagged Internal who should not be: open the customer record, untick **Is Internal Customer**, then re-run **Calculate Eliminations**.

### Step 4: Submit

When the numbers look right, click **Submit**. NexWave creates three Journal Entries in the elimination company and shows a **View Journals** dropdown for getting to each one.

 ![Submitted Intercompany Elimination form with View Journals dropdown open](https://docs.nexwaveapp.com/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzL2YxMTg5ZTEzLTdlMTQtNDA1ZC04MDI1LWMxZmI0Y2Y2MTg0ZC9iMTBjZjdiZi1hNGU5LTQyMDUtOTA1OC00MjZkNzEyODg4ZDIvMDctaWUtZm9ybS1zdWJtaXR0ZWQucG5nIiwidHlwZSI6ImF0dGFjaG1lbnQiLCJpYXQiOjE3OTI2MjE4MDAsImV4cCI6MTc5MjcwODIwMH0.Aaq7jXTBORARJhFktyz8ccjAcvlgpEukV0xamMBLhgo)

The three journals:

| Journal | Posting date | What it posts |
|---------|--------------|---------------|
| **BS Elimination** | To Date      | One line per BS detail row in the elimination company's matching account, debit/credit reversed; the CTA account absorbs any net difference so the JE balances |
| **BS Reversal** | The day after To Date | The same lines as the BS Elimination, with debit and credit swapped, so the next period's opening balance is restored |
| **P&L Elimination** | To Date      | One line per P&L detail row (income or tax) in the elimination company's matching account, debit/credit reversed; the **Intercompany COGS Account** absorbs the income side, and the **CTA account** absorbs the tax side |

All three carry **Entry Type** = *Intercompany Elimination Entry*, which makes them easy to filter out (or filter to) in any GL report.

## Worked example: NexWave Group, March 2026

The screenshots above are taken from this example end-to-end. The setup:

* **NexWave** (NZD source) and **NexWave Eliminations** (NZD, dedicated elimination company), both children of *NexWave Group*.
* Customer **NexWave Australia** flagged Internal, representing the *NexWave Australia* company; receivable account on NexWave overridden to *2150 - Intercompany Receivable - NW*.
* *2150 - Intercompany Receivable - NW* flagged **Include in Elimination**.
* *5950 - Intercompany COGS Adjustment - NWE* configured as the Intercompany COGS Account on the elimination doc.
* *3950 - Intercompany Elimination Suspense - NWE* set as the company's CTA account.

Three intercompany transactions hit NexWave during March 2026:

| Date | Document | Net | GST 15% | Total |
|------|----------|-----|---------|-------|
| 5 Mar 2026 | Sales Invoice | NZD 10,000.00 | 1,500.00 | 11,500.00 |
| 20 Mar 2026 | Sales Invoice | NZD 4,000.00 | 600\.00 | 4,600.00 |
| 28 Mar 2026 | Payment Entry | (5,000.00) | n/a     | (5,000.00) |

Period movement on NexWave (source) for March 2026:

* *2150 - Intercompany Receivable - NW*: +11,500 + 4,600 − 5,000 = **+11,100 (debit)**
* *4150 - Intercompany Sales Income - NW*: −10,000 − 4,000 = **−14,000 (credit, $14,000 net income)**
* *GST - NW*: −1,500 − 600 = **−2,100 (credit, $2,100 GST owing)**

After running Calculate Eliminations on the *01-03-2026 → 31-03-2026* document, the populated tables match those numbers exactly: one BS row for $11,100, one P&L income row for $14,000, one P&L tax row for $2,100.

**On submit, the three Journal Entries:**

**BS Elimination, posted 31 March 2026:**

 ![BS Elimination Journal Entry posted in NexWave Eliminations on 31-03-2026](https://docs.nexwaveapp.com/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzL2YxMTg5ZTEzLTdlMTQtNDA1ZC04MDI1LWMxZmI0Y2Y2MTg0ZC8wOTA1ZTVkNi04YmRlLTQxNTktYTA5MC0xNWE2NjVlY2I5OTkvMDgtYnMtZWxpbWluYXRpb24tamUucG5nIiwidHlwZSI6ImF0dGFjaG1lbnQiLCJpYXQiOjE3OTI2MjE4MDAsImV4cCI6MTc5MjcwODIwMH0.P_D40FExDzlg_cFI3lKEeeXPZCOeUL_uV0lIFWzwvkk)

| Account | Party | Debit | Credit |
|---------|-------|-------|--------|
| 2150 - Intercompany Receivable - NWE | NexWave Australia (Customer) |       | $11,100.00 |
| 3950 - Intercompany Elimination Suspense - NWE (CTA) |       | $11,100.00 |        |

**BS Reversal, posted 1 April 2026 (the day after To Date):**

 ![BS Reversal Journal Entry posted in NexWave Eliminations on 01-04-2026](https://docs.nexwaveapp.com/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzL2YxMTg5ZTEzLTdlMTQtNDA1ZC04MDI1LWMxZmI0Y2Y2MTg0ZC9jOTVkZTA5Ni1jNWU4LTQ2YmUtOWQzOC02YTE0MTY5ODQ2NmIvMDktYnMtcmV2ZXJzYWwtamUucG5nIiwidHlwZSI6ImF0dGFjaG1lbnQiLCJpYXQiOjE3OTI2MjE4MDAsImV4cCI6MTc5MjcwODIwMH0._8_-p9bp97E63X4mDWdBG29x4PZpQtiWaDU_1dwZu34)

| Account | Party | Debit | Credit |
|---------|-------|-------|--------|
| 2150 - Intercompany Receivable - NWE | NexWave Australia (Customer) | $11,100.00 |        |
| 3950 - Intercompany Elimination Suspense - NWE (CTA) |       |       | $11,100.00 |

**P&L Elimination, posted 31 March 2026:**

 ![P&L Elimination Journal Entry posted in NexWave Eliminations on 31-03-2026](https://docs.nexwaveapp.com/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzL2YxMTg5ZTEzLTdlMTQtNDA1ZC04MDI1LWMxZmI0Y2Y2MTg0ZC84M2FiZTc3ZC00YjE0LTQxOWYtYmI4YS1iZDE3NGNjYTM5N2YvMTAtcGwtZWxpbWluYXRpb24tamUucG5nIiwidHlwZSI6ImF0dGFjaG1lbnQiLCJpYXQiOjE3OTI2MjE4MDAsImV4cCI6MTc5MjcwODIwMH0.dkNwhUvyMla3m3TaqgbWuXD9mMX6Plw7eMaqKJSW8Pw)

| Account | Debit | Credit |
|---------|-------|--------|
| 4150 - Intercompany Sales Income - NWE | $14,000.00 |        |
| GST - NWE | $2,100.00 |        |
| 5950 - Intercompany COGS Adjustment - NWE |       | $14,000.00 |
| 3950 - Intercompany Elimination Suspense - NWE (CTA) |       | $2,100.00 |

The reader-friendly version: income elimination ($14,000 Dr) is balanced by COGS ($14,000 Cr), so internal sales income nets to zero on a consolidated P&L. Tax elimination ($2,100 Dr) is balanced by CTA ($2,100 Cr), removing the GST output tax on internal sales from the consolidated GST liability. The CTA balance accumulates intercompany GST suspense over time and is typically cleared once a year with a manual JE if it ends up materially non-zero.

## How elimination flows through your reports

After submission, three sets of reports change:

* **The source companies' standalone reports** are unchanged. NexWave's own P&L still shows the $14,000 of internal sales income and the $11,100 movement on Intercompany Receivable. This is intentional: each operating company's books are a record of what happened, not what the consolidated view should show.
* **The elimination company's reports** show only the three elimination JEs and any prior periods' eliminations. Run a Trial Balance on NexWave Eliminations to see the cumulative CTA position.
* **The consolidated reports** (Balance Sheet and Profit and Loss filtered to the parent group) sum across the parent + operating children + elimination company. The internal income on NexWave's P&L is now offset by the elimination journal in NexWave Eliminations, so the consolidated P&L reads correctly.

To find every elimination JE quickly, run the General Ledger (or Journal Entry list) and filter by **Voucher Type = Intercompany Elimination Entry**.

## Cancelling and re-running an elimination

### Cancelling

Open the submitted Intercompany Elimination and click **Cancel**. NexWave automatically cancels all three linked Journal Entries; you do not need to cancel each one manually. The status moves to *Cancelled*.

### Amending (re-running the same period after a fix)

From the cancelled doc, use **Menu > Amend**. NexWave creates a new draft pre-filled with the same source company, elimination company, dates, and COGS account, linked to the original via the **Amended From** field. The two detail tables and the three Journal Entry links do not carry over: re-run **Calculate Eliminations** to repopulate them, then submit. Three brand-new Journal Entries are created.

### Adjusting after submission without cancelling

You cannot. There is no in-place edit of a submitted Intercompany Elimination. The only way to change the numbers is cancel → amend → resubmit.

## Common pitfalls

* **"Account ... not found in Elimination Company".** A source-side BS or income account doesn't have a matching account in the elimination company. Create the missing account using the matching rules (Account Number + Account Name if numbered, otherwise Account Name + Root Type), and run **Calculate Eliminations** again. Best avoided by creating accounts at the parent group level so they cascade.
* **An external customer was flagged Internal.** Their sales get silently included in P&L elimination. Drill into **View Source > P&L Source** and check the customer on each source voucher; un-flag any that should not be Internal, then re-calculate.
* **Multi-currency mismatch.** The source account is in USD but the matching elimination-company account was created in NZD. The journal submission fails. Account currencies must be identical between source and elimination for any account that gets eliminated.
* **The BS Reversal lands in a closed period.** The reversal posts on To Date + 1, which is normally fine for a month-end run. If you ran an elimination for a period whose end date is the same calendar day as a Period Closing Voucher, the reversal might lag the close. Move the close date or shift the reversal date manually before posting Period Closing Voucher.
* **Backdated elimination after the next month is already posted.** The BS Reversal will land in the next period's opening, potentially distorting current-month opening balances if the next month's eliminations have already been posted. Cancel the next month's eliminations before back-dating, then re-run them in order.
* **Forgetting to flag a newly added intercompany BS account.** If you add a new Intercompany Loan account this period and don't tick **Include in Elimination**, it is silently excluded from the calculation. Audit your account flags before each month-end run.
* **Elimination company runs operational transactions.** Once any operational sales/purchases are posted in the elimination company, its own reports become noise. Restrict permissions on the elimination company so only month-end finance users can post to it.

## Multi-currency caveats

The validator and the JE generator both work in account currency. Two implications:

* Account currencies must match between source and elimination for every account the calculation touches. If the source-side intercompany receivable is USD, the matching elimination-company account must also be USD.
* For groups operating in multiple base currencies (NZD parent, AUD subsidiary, etc.), the practical approach is one elimination company per source-company currency, each receiving eliminations in its own currency. A single multi-currency elimination company also works but means replicating every account in every currency you trade in.

The CTA account on the elimination company also acts as a rounding sink across multi-currency lines and balances any sub-cent translation differences in the BS journal.

## Pre-flight checklist

Quick reference before you submit each month:

- [ ] Elimination Company exists, **Is Elimination Company** ticked, CTA account set on it.
- [ ] Elimination Company has matching accounts for every source-side intercompany asset/liability/equity, every income account hit by intercompany sales, and every tax account on intercompany Sales Invoices.
- [ ] Source-side intercompany BS accounts have **Include in Elimination** ticked.
- [ ] Internal-trading customers have **Is Internal Customer** ticked AND **Represents Company** set correctly.
- [ ] **Intercompany COGS Account** picked on the Intercompany Elimination doc (Expense, leaf, in the elimination company).
- [ ] No prior Intercompany Elimination for the same source company overlaps your period.
- [ ] All internal trading for the period has been invoiced and posted.
- [ ] The fiscal year covering To Date + 1 (the BS Reversal date) is linked to the elimination company in the Fiscal Year doctype.

## Related documentation

* [Intercompany Elimination module reference](/doc/d728bccb-f459-495e-ab42-be39db517e0d): conceptual reference for fields, validation rules, and the underlying calculation engine.
* [Intercompany Journal Entry](/doc/851028fb-d5cd-49cc-b002-acdc855f3094): the source-side intercompany trading mechanism that creates the receivables and payables this elimination then nets out.
* [Chart of Accounts](/doc/9befd043-c477-4cd0-a9e6-5b8a8709cf7e): how to set up the account tree and parent-group cascade pattern.
* [Journal Entry](/doc/ee0f37b0-33ea-41a8-8f42-dd261ee18739): manual journal posting (the elimination journals are created automatically but use this format).
* [Accounting](/doc/85b00666-859d-4e2b-9bac-6c1dd3848464): financial management overview.