Group Consolidation
Roll every legal entity in a group into one consolidated reporting set with real IAS 21 translation, intercompany elimination, and NCI split.
Why this module
Group Consolidation
A CTA that actually moves
Balance-sheet items convert at the closing rate, P&L at a time-weighted average rate weighted by days in effect. The gap is the CTA. A flat rate gives zero CTA, a real FX move gives a real adjustment. No naive endpoint average.
Every number has a source
Each run line is tagged parent, subsidiary, elimination, CTA, or NCI. You can see exactly where any consolidated figure came from, which is the difference between a number you can defend and one you cannot.
Posted-only, balanced, idempotent
Only posted member moves and posted eliminations feed a run. Eliminations must balance to post. Recompute rebuilds from scratch rather than stacking. The consolidated set is reproducible every time.
Day in the life
Month-end group close in four states
You open this period's run and hit Compute. The engine pulls each member's posted trial balance, translates the foreign subsidiary at closing and time-weighted average rates, applies your balanced intercompany eliminations, carves out the 30 percent non-controlling interest on the partly-owned entity, and writes the CTA difference as a tagged line so the set balances. You scan the source-tagged lines, confirm the figures trace, and move the run to reviewed, then closed. The closed run is locked in the UI and the whole transition is in the chatter. Next month you do it again, and recompute rebuilds cleanly rather than doubling up.
Edge cases
The cases most modules quietly ignore.
In the shipped code today, each one a place where a cheaper module silently does the wrong thing.
A rate that changes mid-period is weighted by the number of days each spot rate was in effect, not a naive average of the two endpoints. That is what IAS 21 actually asks for.
A single-day or inverted period falls back to the closing rate, and a period with no rate change inside it falls back to the midpoint rate, instead of dividing by zero.
When the average and closing rates are equal the CTA collapses to zero. No unconditional plug entry is forced. A genuine FX movement is required to produce a CTA, and a regression test asserts this.
Only posted member moves and only posted eliminations feed a run. Draft, unposted, or cancelled entries never leak into the consolidated set.
Re-running Compute deletes the prior run lines before rebuilding, so a recompute is never additive. The same inputs always give the same consolidated set.
Adding the parent company as a member is blocked with a validation error, so the parent is never double-counted in its own consolidation.
P&L accounts use a period-bounded sum while balance-sheet accounts use a cumulative-to-date sum. Each account type is read with the correct date window.
What is inside
Built to do the job, end to end.
- Consolidation entity. Name, presentation currency, root company, and member companies each with an ownership percentage and a consolidation method of full, equity, or proportional.
- Per-period run engine. Pulls each member's posted balances, translates to the presentation currency at closing and time-weighted average rates, and assembles a source-tagged consolidated set.
- IAS 21 CTA line. Computes the closing-rate versus average-rate balancing difference and records it as a tagged kind=cta run line against the configured equity translation-reserve account. No GL entry is posted.
- NCI computation. Subsidiary net assets, equity plus the current-period result, multiplied by one minus ownership percentage, recorded as its own non-controlling-interest run line for full-method members below 100 percent.
- Intercompany elimination. Free-form elimination journals against the consolidated set, enforced debit-equals-credit on post, with an audit trail per elimination.
- Run lifecycle and audit. Draft to computed to reviewed to closed. State changes are tracked in the chatter. Reset-to-draft is Accounting Manager only, and closed runs are read-only in the UI.
Honest about the edges
What this does not do, so nothing surprises you.
- The CTA is recorded as a tagged consolidation run line against the configured equity translation-reserve account. It does not post a journal entry to your live general ledger.
- Read-only on closed runs is enforced in the UI and backed by the chatter audit trail. It is not a hard model-level write lock, so an Accounting Manager with direct ORM access is not blocked.
- There is no subsidiary chart-of-accounts remapping to a group standard. Consolidated lines are keyed by the raw subsidiary account, so member charts should already align.
- This is the consolidation foundation. Deferred-tax consolidation, equity-method investment mechanics, IFRS 8 segment reporting, and Excel template export are not included.
- Translation relies on the currency rates present in Odoo. A time-weighted average is only as accurate as the rate history you have loaded for the period.
Odoo 19 consolidation, Odoo Community group consolidation, multi-entity consolidation Odoo, IAS 21 currency translation Odoo, intercompany elimination Odoo, non-controlling interest NCI Odoo, consolidated trial balance Odoo, CTA translation reserve consolidation, multi-company financial consolidation, full equity and proportional method consolidation
Languages
Available in 19 languages
The interface ships translated out of the box. Switch language in Odoo and the fields, menus, and messages follow.
Please log in to comment on this module