NetSuite Best Practices

Consolidated P&L Across NetSuite Subsidiaries: Five Report Problems, Their Fixes, and What to Automate

Multi-entity consolidation in NetSuite OneWorld: five consolidated report problems — side-by-side subsidiaries, FX rates, CTA, eliminations, mismatches — the fixes, and what to automate.

Kai Jenson, Advisor, NSGPT · February 7, 2026

The short version: In NetSuite OneWorld, a consolidated P&L is one selector in the report footer. The problems start after you've picked it. Five come up again and again:

  1. You can't see the subsidiaries side by side.
  2. A foreign subsidiary's numbers look wrong.
  3. The balance sheet carries a CTA figure nobody can explain.
  4. Intercompany activity doesn't eliminate.
  5. A subsidiary's own report won't agree with its slice of the consolidation.

Each has a known cause and a known fix, below. Answer those first. Automate the checks second.

Start here: what "(Consolidated)" adds up

On a financial statement, the Subsidiary Context selector sits in the report footer. Each parent subsidiary has a virtual "(Consolidated)" choice that sums it and all its children, elimination subsidiaries included. Four documented behaviours explain most surprises:

  • The default is the root parent. A statement opens on the top-level subsidiary unless you choose otherwise.
  • Currency follows the selection. Amounts show in the base currency of the subsidiary you selected. Subsidiaries with other base currencies are translated at consolidated exchange rates.
  • The selection sticks. Your choice persists each time you rerun the report, until you change it. Yesterday's consolidated run quietly becomes today's.
  • Restrictions filter it. A user whose role or view is limited to some subsidiaries sees a filtered context, so two people running "the consolidated P&L" can see different numbers.

Problem 1 — You can't see the subsidiaries side by side

This is what the board usually asks for: each subsidiary in its own column, with a consolidated total.

On the income statement and balance sheet:

  1. Set the Subsidiary Context to the parent's "(Consolidated)".
  2. Set the report footer's Column option to Subsidiary.

Each subsidiary gets a column. Oracle's rule is that amounts show in the selected subsidiary's base currency, with consolidated rates applied where the subsidiaries on the report have different base currencies. Before the report goes to the board, tie one foreign subsidiary's column to its own report times the period's average rate. To make the layout permanent, customize the statement and set it in View Columns By on Financial Report Builder's Edit Columns page.

Two limits keep it fast:

  • Columns. Financial Report Builder caps a report at 30 data columns. Seven subsidiaries plus a total is eight, comfortably inside.
  • No time columns. Oracle advises against time-based column values on reports that use a consolidated context. Build the board view as one reporting range by subsidiary (the month, the quarter or year-to-date, whichever you're presenting) and run the comparison range as a second report rather than adding comparison columns. Monthly columns across subsidiaries are also a common reason consolidated reports time out.

On the trial balance, the standard report doesn't offer subsidiary columns. That's why "consolidated trial balance by subsidiary" keeps coming up. Practitioners customize it under Reports > Financial > Trial Balance > Customize: add Subsidiary Name as the first, grouped column, and sort by it. That gives subsidiary-grouped rows, stacked rather than side by side. For true side-by-side columns with a total, build it as a saved search or in a SuiteAnalytics Workbook, or finish it in Excel.

One thing native reporting won't do: combine different reports, such as the P&L by entity, the balance sheet and A/R aging, into a single board package. Teams use dashboards, Excel or a reporting tool on top for that.

Problem 2 — A foreign subsidiary's numbers look wrong

Translation runs on consolidated exchange rates, kept under Lists > Accounting > Consolidated Exchange Rates for each period, subsidiary and book. There are three types, and each account is assigned one:

rate type used for
Current most asset and liability accounts
Average all income-statement accounts, such as income and expense
Historical the capital section of the balance sheet, including equity and dividends

Two things go wrong:

  • The rate is missing. Oracle's documentation is explicit: if you haven't set consolidated rates, NetSuite uses an exchange rate of 1. A euro subsidiary's revenue lands in a dollar consolidation as if a euro were a dollar. Nothing errors.
  • The account has the wrong rate type. Income-statement accounts should translate at Average, so an expense account set to anything else is a setup error. A forum thread shows what it looks like: a consolidated P&L run January to December applied December's rate to every month's expenses. The account was set to Current, so the end date's rate was used across the whole range. Check the rate type on the account record.

The fix: check the rates table for the period before you look at a single transaction. Then complete Calculate Consolidated Exchange Rates on the Period Close Checklist. Once that task is marked complete, the period's rates are locked, so get them right first. If a wrong rate is already locked in, raise it with NetSuite support before posting workarounds.

Problem 3 — The balance sheet carries a CTA figure nobody can explain

Cumulative Translation Adjustment isn't an error. It's how NetSuite makes a multi-currency consolidated balance sheet balance. Different accounts translate at different rates, so the translated balance sheet doesn't net to zero, and CTA is the difference. It's calculated on the fly in consolidated reports, not posted to the account.

Oracle's own example, a GBP subsidiary consolidating into USD:

GBP rate type rate USD
Assets 250 Current 2.0 500
Liabilities 100 Current 2.0 200
Retained earnings 100 Average 2.5 250
Equity 50 Historical 3.0 150

Assets translate to 500. Liabilities and equity translate to 200 + 250 + 150 = 600. CTA of (100) in equity brings that side down to 500, and the balance sheet balances. (Oracle's example is simplified. Retained earnings sits at the average rate because it's built from income-statement results. In a real balance sheet, each year's earnings carry that year's rates, so prior years behave like historical amounts.)

Explaining a normal CTA to the board is simpler than the mechanics. CTA moves when exchange rates move against a foreign subsidiary's net assets. If sterling weakens against the dollar, the UK subsidiary's net assets are worth fewer dollars, and CTA absorbs the difference in equity instead of running it through the P&L. Month to month, a CTA movement roughly tracks each foreign subsidiary's net assets times the change in its rate.

The fix: don't try to journal CTA away. Because it's a calculated balancing figure, anything else out of line lands in it too. An odd or moving CTA is a symptom. Check, in order:

  1. Missing consolidated rates, which default to 1.
  2. Historical rates on equity. Compare the Historical column in the rates table with the rate when the capital went in.
  3. Intercompany that didn't eliminate (Problem 4). The elimination run posts its currency gains and losses to a separate CTA-E (CTA – Elimination) account. A CTA-E balance that keeps growing period after period usually means intercompany balances that aren't netting.
  4. Intercompany legs in different periods: one side booked in September, the other in October.

Problem 4 — Intercompany activity doesn't eliminate

When the consolidated P&L shows revenue one subsidiary earned from another, elimination didn't do its job. NetSuite's rules:

  • Elimination runs only from the Period Close Checklist, through Eliminate Intercompany Transactions, after the period's other close tasks.
  • Revaluation and rates come first. Run Revalue Open Foreign Currency Balances and Calculate Consolidated Exchange Rates before it; the resulting gains and losses post to CTA-E. When you run revaluation, select every subsidiary. One practitioner traced intercompany balances that stopped netting to a revaluation run on the parent alone, the default selection.
  • One run at a time. Concurrent elimination runs aren't supported. Don't close the period until the run shows Complete.
  • Currency differences stay behind. If an amount isn't eliminated because of a currency difference, Oracle's instruction is a manual journal entry to eliminate it.
  • Elimination journals post to an elimination subsidiary. That's why "(Consolidated)" includes elimination subsidiaries, and why a subsidiary's own report never shows them.

The fix: before you blame the elimination, confirm the intercompany pairs agree. For each pair of subsidiaries, the due-to and due-from, and the intercompany revenue and expense, must match in amount and period. Elimination removes what matches. It can't repair what doesn't.

Two habits the forums warn against. Don't filter intercompany accounts off the balance sheet to make it look clean; that hides the imbalance rather than fixing it. And if a subsidiary carries both an intercompany receivable and payable that net to zero, the cash movement was probably recorded as a journal. Settle it through intercompany netting or a bill payment instead. Elimination cleans up the consolidated report; it doesn't clear the open items underneath.

Problem 5 — A subsidiary's report won't agree with its slice of the consolidation

Run a subsidiary on its own, find its contribution inside the consolidated report, and the numbers differ. That's usually correct, and the difference has three parts:

  1. Currency. The standalone report is in the subsidiary's base currency. The consolidated one is translated: each month of the P&L at that month's average rate, and the balance sheet at current or historical rates.
  2. Eliminations. The consolidated view includes elimination subsidiaries; the standalone view doesn't.
  3. CTA, on the balance sheet, which exists only in consolidation.

The fix: reconcile in that order. Translate the standalone P&L month by month at each month's average rate and add the months, then adjust for eliminations; for the balance sheet, add CTA. What's left after those three is a real difference worth chasing. The usual culprits are a transaction dated in one period and posted to another, or a role that sees fewer subsidiaries than you think.

The consolidation order of operations

  1. Agree intercompany pairs across subsidiaries, before anything is locked.
  2. Create intercompany adjustments, if you use automated intercompany expense adjustments.
  3. Revalue open foreign-currency balances, for every subsidiary.
  4. Check, then calculate, consolidated exchange rates. They're locked once ticked.
  5. Eliminate intercompany transactions, and wait for Complete.
  6. Review: consolidated against the sum of the subsidiaries, with currency, eliminations and CTA explained.
  7. Close.

What to automate in a multi-entity consolidation, and what not to

NetSuite OneWorld already does the mechanical parts of a multi-entity consolidation: translation at consolidated rates, the CTA calculation and the elimination journals. Rebuilding those elsewhere is rarely where the time goes.

The time goes on the checks around them, each one a question someone asks the ledger by hand every month:

  • Is a consolidated rate entered for every subsidiary currency this period, and none sitting at 1?
  • Does every account carry the rate type it should?
  • Does every intercompany pair agree, in amount and in period?
  • After elimination, do the intercompany accounts net to zero, and is CTA-E at zero?
  • Which subsidiary's operating income moved most against last month, in the reporting currency?

Those are what to automate. They're also the kind of question NSGPT answers inside NetSuite, in plain language, with the query and the rows attached. To be precise about the boundary: its pre-built income statement, balance sheet and trial balance read each subsidiary's ledger in that subsidiary's own currency. They don't translate currencies or reproduce CTA. On a multi-currency group they don't replace NetSuite's consolidated report; they serve the per-subsidiary side of the reconciliation in Problem 5. The checks above get a query written for the question, which you read before relying on the answer: rates entered, each account's rate type (stored on the account record), intercompany pairs. NSGPT doesn't run the elimination or close the period. Your team does that, with the checks already answered.

Controllers & Accounting shows where this fits a controller's close, and Asking the ledger lists the statements and why the accounting book decides the number. If your consolidation has a check your team runs by hand every month, bring it to a walkthrough.

Kai Jenson

Advisor, NSGPT

Kai Jenson advises NetSuite finance teams on AI agents, forecasting, and analytics — writing from real NSGPT customer builds.

← All articles

See What Finance Teams Build with NSGPT

NetSuite-integrated AI agents, forecasting, and analytics — built and operated by your finance leads on live data.