Intercompany is conceptually trivial and operationally brutal. A business cannot make a profit by selling to itself, so intragroup activity has to come out before the group reports. The receivable at one entity should equal the payable at the other. In practice it almost never does on the first pass, because the two sides were recorded on different days, at different FX rates, in different accounts, in different systems, by people who have never met.

ChatFin sits above the ERP estate rather than replacing it. It reads both sides of every intercompany transaction from their source systems, matches them continuously, isolates the FX and timing components of every difference, and posts eliminations with lineage back to the underlying rows.

Intercompany Matching
Elimination Entries
FX & Translation
Transfer Pricing
Multi-Entity Consolidation
Audit Trail
ERP Integration

Why intercompany breaks, every single month

The failure modes are boringly consistent. Naming them is the first half of fixing them.

Timing differences: Entity A records the sale on 31 March. Entity B posts the purchase on 2 April. Neither is wrong. Both are unmatched at month-end.
Currency mismatches: The same transaction booked at two different rates on two different days. The difference is real but it is not a business event, and it should never be plugged into a P&L line.
Inconsistent coding: One entity uses an intercompany control account; the other buries it in trade payables. The transaction is invisible to a matching routine that only looks at the IC accounts.
Missing counterparts: One side posts. The other does not, or posts to the wrong entity. This is the expensive one, because you only find it by looking.
System fragmentation: Entities on different ERPs, different charts of accounts, different close calendars. Normalizing the data is often more work than the matching itself.
Policy drift: Different depreciation methods, different revenue-recognition treatment, different cut-off rules. Eliminations built on inconsistent policy produce a balanced consolidation that is still wrong.

Continuous matching beats month-end matching

The structural fix is not a better spreadsheet. It is moving the match from period end to the moment of posting. When a matching engine reads both entities' ledgers daily, a mismatch surfaces while both preparers still remember the transaction, which converts a multi-day investigation into a same-day exception review. This is the mechanism behind the 60% to 80% reductions teams report: not faster matching, but far less to match.

Daily pair reconciliation: Every IC receivable matched to its counterparty payable as it posts, across entities, currencies, and ERPs.
Difference decomposition: Each break split into its timing, FX, and coding components. “$83,412 unexplained” becomes “$81,000 timing, $2,412 FX rate difference, $0 real.”
Tolerance-based routing: Breaks above tolerance route to a named owner at both entities with the two source rows side by side. No email chain, no PDF of a trial balance.
Exception aging: Open intercompany breaks aged like AR. What gets aged gets cleared.
ChatFin reconciliation engine: matching, exception routing, and full audit trail

Automating the eliminations themselves

Once both sides agree, the elimination is mechanical, and mechanical work should not be a manual journal entry typed at 11pm on day four.

Rule-based elimination entries: IC revenue and cost of sales, IC receivables and payables, loan principal and interest, management fees, and cost allocations eliminated by rule, consistently, every period.
Unrealized profit on inventory: Intragroup margin on goods still held inside the group tracked by layer and released in the period the asset is sold externally, not too early, not carried too long.
Investment elimination: Parent's investment account eliminated against subsidiary equity, with NCI calculated rather than plugged.
FX handled at the right rate: Elimination entries posted at the correct rate so translation adjustments land in CTA where they belong, instead of cluttering OCI with unexplained noise.
Full lineage: Every elimination traceable to the matched pair that produced it. The audit question “why is this entry here” has a one-click answer.

"A group with thirty entities running daily intercompany activity in eight currencies does not have a spreadsheet problem. It has an arithmetic problem that grows quadratically while the team stays the same size."

Transfer pricing: the part that becomes a tax problem

Transfer pricing is where intercompany stops being an accounting inconvenience and starts being an exposure. The markup on an intragroup service charge is a policy; whether the policy was actually applied, consistently, in every entity, every month, is an evidence question, and evidence is exactly what manual intercompany processes fail to produce.

Policy enforcement at posting: The agreed markup applied and checked as intragroup charges are raised, not reconstructed from memory during an audit.
Deviation detection: Charges that fall outside the documented policy range flagged in the period they occur.
Contemporaneous documentation: Every intragroup charge linked to the agreement, the method, and the calculation that produced it. Documentation assembled continuously rather than rebuilt under deadline.
Entity-level margin visibility: What each entity actually earns after intragroup charges, which is the number the tax authority will ask about.

The ERP reality

Almost no multi-entity group runs one ERP. Acquisitions arrive with their own systems, regional entities keep local packages for statutory reasons, and the “single instance” migration has been on the roadmap for three years. Any intercompany approach that requires a homogeneous ERP estate is solving a problem you do not have yet. ChatFin reads the entities where they are (NetSuite, SAP Business One and S/4HANA, Oracle Fusion, JD Edwards, Acumatica, Sage Intacct, Dynamics 365), normalizes the chart of accounts in the AI layer, and writes eliminations back to the consolidating entity.

Fourteen finance tools collapsed to one surface: one login, one schema, one truth

Match Intercompany Daily. Eliminate by Rule. Document Continuously.

ChatFin automates intercompany matching, elimination entries, FX treatment, and transfer pricing documentation across mixed ERP estates, deployed on the systems you already run, with every figure traceable to the source row in the source entity.

The group that reconciles intercompany daily does not have a faster close. It has a close where intercompany was never on the critical path.

Book a Demo

Related Articles