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.
Operating intercompany entries before close
Intercompany activity does not have to wait for the close engine. During the month, the accounting workspace can prepare preview-first inter-entity journal entries for operating activity between related entities.
The user selects the source entity, destination entity, amount, description, posting date, and account hints. Kraal builds a balanced preview and returns a submit action only when the entry is scoped and reviewable. Previewing does not post to the ledger; posting requires an explicit submit step and a writable accounting scope.
Use this operating workflow to record the underlying intercompany activity. The close engine still handles period-end matching, imbalances, elimination proposals, and consolidated pack review.
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.
Consolidated report tabs also support consolidating a selected set of entities (for example one regional sub-group) instead of all active entities. Intercompany balances with entities outside the selection are treated as external and are not eliminated; the report's review guidance says so whenever a partial scope is used. See Multi-Entity & Consolidated Reporting for the day-to-day reporting workflow.
Cross-currency consolidation
For groups with subsidiaries reporting in different currencies, Kraal translates each subsidiary's results into a single presentation currency — by default the parent entity's currency, or another currency chosen on the consolidated report. Rates come from the exchange rates maintained in the accounting system (as of the period end); Kraal never invents a rate. Elimination amounts are translated with the same rates so elimination columns line up with statement rows.
If no rate exists for a subsidiary's currency, that subsidiary's amounts stay untranslated and the report is flagged review required, listing the exact currencies that need rates. Add the missing rate and re-run before relying on the consolidated totals.
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