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.
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:
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.
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
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
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
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
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
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
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
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
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
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
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: conceptual reference for fields, validation rules, and the underlying calculation engine.
Intercompany Journal Entry: the source-side intercompany trading mechanism that creates the receivables and payables this elimination then nets out.
Chart of Accounts: how to set up the account tree and parent-group cascade pattern.
Journal Entry: manual journal posting (the elimination journals are created automatically but use this format).
Accounting: financial management overview.