Appearance
Multi-Entity & Intercompany Reconciliation
Clients that operate as a group of related entities — a parent with subsidiaries, sister companies under a holding, or partial-ownership arrangements — need their period-end financials presented at both the standalone and consolidated levels. Kraal handles consolidation, intercompany elimination, and minority-interest treatment in the automated close workflow.
Entity setup
Every entity in a multi-entity client is registered with:
- Display name and ERP company name
- Default currency
- Ownership percentage (parent → subsidiary)
- Consolidation method (full / equity / cost — auto-resolved from ownership when not explicitly set)
- Intercompany account configuration (receivable, payable, revenue, expense, distributions, investment, subsidiary equity)
- Optional elimination policy for tolerance, in-transit window, and cross-currency handling
Manage entities under the client's accounting workspace; see Client Setup & Close Workflow for the broader setup steps.
Consolidation method by ownership
| Ownership | Method | What it means at close |
|---|---|---|
| ≥ 50% | Full consolidation | Subsidiary's full GL is merged into the consolidated pack; intercompany activity is eliminated; minority-interest (NCI) recorded for the unowned share when below 100% |
| 20–49% | Equity method | A single synthetic line "Equity in earnings of Subsidiary" appears on the parent's P&L; matching investment line on the BS; subsidiary's GL is not merged |
| < 20% | Cost method | Subsidiary skipped from consolidation entirely; held at cost on the parent's BS |
When the parent owns 100%, no NCI is recorded. Between 50% and 99%, Kraal posts the minority share to a Non-Controlling Interest line in both the P&L (deducting minority earnings) and the BS (equity section).
Intercompany elimination
When two related entities transact with each other, the consolidated result must not double-count revenue, expense, receivables, or payables. Kraal's intercompany engine matches counterpart pairs and emits elimination entries:
- AR / AP pair — a receivable on Entity A and a payable on Entity B for the same intercompany transaction. Eliminate both.
- Revenue / Expense pair — intercompany sales on A and intercompany purchases on B.
- Distribution pair — a distribution received on the parent and a distribution declared on the sub.
- Investment / Equity pair — parent's investment-in-sub account and the sub's subsidiary equity account.
Each pair produces a balanced elimination journal entry that reverses the inflated consolidated balance. Mismatched pairs (one side has a balance the other doesn't, or amounts differ) are flagged as imbalances requiring review before the consolidated pack can be released.
Matching modes
Kraal matches counterparts in three passes:
- One-to-one with paired-account hint — when each side declares the other as its paired account, even slight amount mismatches still match (with the difference reported)
- One-to-one by amount — same amount within configured tolerance
- Subset matching (N:1) — one receivable nets against multiple payables (or vice-versa). Useful when a single invoice nets against several smaller credits
You can disable subset matching per entity if the client prefers strict one-to-one only.
Tolerance and in-transit window
Two settings on the elimination policy address real-world matching needs:
- Tolerance (default $0.01) — allows for cent-level rounding differences between the two sides of the same transaction
- In-transit window (default off, configurable in days) — when a transaction is booked on one side just before period-end but the counterpart books it a few days into the next period, Kraal looks forward by the configured number of days when checking the counterpart side. Matched in-transit items are flagged so the reviewer can confirm the timing
When the parent's and subsidiary's currencies differ, Kraal normalizes both sides to the parent's reporting currency before comparing. If a period-end FX rate is unavailable for one of the currencies, that cross-currency pair will not match and the imbalance is surfaced with a clear note (fx_missing_currencies).
Reviewing eliminations
The intercompany reconciliation close item produces:
- A list of matched eliminations with the paired accounts, amount, and category
- A list of imbalances that need review before the consolidated pack can be released
- Posting-ready elimination JE proposals that, once reviewed, can be posted to the consolidation entity (or kept as memo-only)
Imbalances block the consolidated pack — Kraal will not release a pack with unexplained intercompany differences. To clear an imbalance:
- Confirm both sides booked the transaction in the same period (use in-transit window if just-after-period-end is OK)
- Reconcile the amount difference (might be FX, might be a booking error)
- If the transaction is genuinely one-sided (rare — usually points to a missed entry), add the missing side before re-running
Consolidated reporting
Once eliminations are clean, Kraal produces a consolidated pack with:
- Consolidated trial balance — sum of subsidiary TBs after elimination
- Consolidated P&L — including NCI line and equity-method earnings
- Consolidated BS — including investment-in-affiliate (equity method) and NCI equity
- Per-entity sub-packs — the underlying standalone pack for each subsidiary, for drill-down
The consolidated pack lives alongside standalone packs in the Financial Packs surface. Reviewers can navigate between consolidated and standalone views using the entity selector.
Cross-currency consolidation
For groups with subsidiaries reporting in different currencies, Kraal translates each subsidiary's results into the parent's reporting currency using the period-end consolidation rate. The translation happens after elimination so that intercompany pairs are eliminated in a single currency rather than across translation noise.
See FX Revaluation for how each subsidiary's foreign-currency monetary accounts are revalued before consolidation runs.
Configuration patterns
For a clean multi-entity setup:
- Register the parent first with the consolidation reporting currency as its default
- Add subsidiaries with their actual functional currency and the correct ownership percentage from the parent
- Configure intercompany accounts on each entity — these are the accounts where intercompany activity lands and against which eliminations are emitted
- Configure elimination policy if you need a non-default tolerance, in-transit window, or subset-match opt-out
Troubleshooting
- The consolidation skipped my subsidiary — check the ownership percentage. Below 20% is cost method (not consolidated); 20–49% is equity method (single synthetic line, no GL merge)
- Intercompany imbalance won't clear — the imbalance list shows the amount difference; common causes are FX between two currencies (set the period-end rate), in-transit timing (enable the window), or a genuine missing entry
- NCI line shows but I own 100% — confirm the ownership percentage on the subsidiary; Kraal posts NCI for anything < 100%
- Equity-method earnings missing — the synthetic line is only emitted when the subsidiary has a net-income result; a zero P&L produces no equity-method entry that period
- Cross-currency match failed — confirm a period-end exchange rate exists for both subsidiary currencies pointing to the parent's reporting currency