Odoo for multi-entity groups — a practical guide to consolidation
How to run Odoo across multiple legal entities with clean inter-company accounting, consolidated reporting, FX revaluation, and proper audit trails. From 2-entity groups to 30-subsidiary consolidations.
Why multi-entity accounting is hard
Running a group with multiple legal entities is where accounting systems either excel or quietly break. A typical mid-market group has 3-10 entities (domestic operating company, international subsidiaries, holding companies, special-purpose vehicles) and needs:
- Separate legal books per entity with local currency and tax compliance
- Intercompany transactions tracked cleanly in both directions
- Transfer pricing rules that match tax policy
- FX revaluation at month-end
- Consolidated group reporting in a single presentation currency
- Elimination entries to remove intercompany revenue and balances from the consolidated view
- Audit trails sufficient for external auditors across jurisdictions
Most mid-market systems (QuickBooks, Xero, early-stage NetSuite) don't handle this cleanly. The typical workaround: each entity runs its own accounting, finance rebuilds the consolidation in Excel monthly, and the close takes two weeks.
Odoo handles this natively. Here's how, and what the trade-offs are.
Structural choices: one database vs many
Two ways to run multi-entity on Odoo:
Approach A: Single database, multiple companies
All entities live in one Odoo database, configured as separate companies. Users have access to specific companies based on role. Shared master data (customers, vendors, products) optional.
Pros: Fastest consolidation (all data in one system), simpler user management, shared chart of accounts possible, easier audit for group-level auditors.
Cons: Requires careful access control to prevent cross-entity visibility where legally restricted. Database grows with total group activity. Odoo.sh resource tier may need to scale.
Best for: 2-15 entities with similar operating characteristics, especially when group management wants consolidated real-time visibility.
Approach B: Separate databases, consolidation layer
Each entity has its own Odoo instance. A consolidation process (scheduled scripts or manual) rolls up data to a parent database for reporting.
Pros: Maximum isolation per entity (for regulated industries or entities with very different profiles). Each entity can upgrade independently.
Cons: Slower close (consolidation layer adds lag), more operational complexity, higher infrastructure cost.
Best for: Complex groups with 15+ entities, especially across regulatory regimes requiring strong isolation (banking + non-banking, for example).
Configuring Approach A: single database multi-company
1. Create companies
In Odoo, each legal entity is a "company" record with its own:
- Base currency (USD, EUR, CAD, AED, etc.)
- Chart of accounts (can share with other companies or be unique)
- Fiscal years and periods
- Tax configuration
- Sequences (invoice numbering, PO numbering)
2. Configure intercompany rules
For every pair of companies that transact together, set up:
- Intercompany customer/vendor records (each company acts as customer and vendor to the other)
- Default intercompany accounts in chart of accounts (due to/from accounts)
- Optional: automatic mirror-posting (entry on Company A auto-creates entry on Company B)
3. Set up consolidation reporting
Odoo Consolidation module (included in Enterprise) defines:
- Which companies roll up to which parent
- Presentation currency for consolidated reports
- Elimination rules for intercompany balances
- Consolidation period alignment
4. FX revaluation
Configure multi-currency on each company:
- Source of exchange rates (ECB, Bank of Canada, or custom feed)
- Update frequency (daily or period-end)
- Unrealized gain/loss account
- Consolidation rate method (historical, average, current)
Month-end revaluation runs as a scheduled job. Journal entries post automatically.
What consolidated reporting looks like
After configuration, group-level reports in Odoo show:
- Consolidated P&L in presentation currency with each entity as a column, plus eliminations, plus consolidated total
- Consolidated balance sheet with intercompany balances eliminated
- Cash flow rolled up across entities
- Transfer pricing report showing intercompany pricing and margins
These run on-demand in minutes, not days of spreadsheet assembly. Drill-down from consolidated view to entity view to specific transaction view works fluidly.
Handling complex patterns
Minority interest / non-controlling interest
For subsidiaries less than 100% owned, Odoo handles non-controlling interest calculation. Minority share of net assets and P&L is computed and presented in consolidated reports.
Step acquisitions
When a group acquires additional shares of an existing subsidiary, Odoo supports historical cost vs fair-value tracking and step-acquisition accounting.
Joint ventures and equity method
Investments in joint ventures or significant-influence entities can be accounted for using the equity method in Odoo, with proper roll-forward of investor's share of earnings.
Transfer pricing compliance
Configure transfer pricing rules per country pair:
- Cost-plus markup
- Resale-minus margin
- Comparable uncontrolled price (CUP)
- Profit split methods
Odoo applies rules automatically on intercompany transactions and produces the documentation auditors require.
Shared service center models
One entity providing services (IT, HR, finance) to others: configure intercompany service billing with proper transfer pricing and VAT handling.
Monthly close cycle
With this setup, the typical close cycle for a 4-entity group:
- Days 1-2: Entity-level closes (bank rec, accruals, period close) run in parallel
- Day 3: Intercompany reconciliation. Odoo flags any mismatch between entities.
- Day 4: FX revaluation runs automatically; results reviewed
- Day 5: Consolidation report generated; CFO review and sign-off
5 days, not 14. We've taken clients from 14-day closes to 5-day closes consistently across 40+ multi-entity implementations.
Handling specific jurisdictions
US (multi-state)
Sales tax per jurisdiction via Avalara or TaxJar integration. State nexus tracking. 1099 reporting per entity.
EU (multi-country)
VAT per member state. MOSS/IOSS for digital services. Intra-EU intercompany goods with proper reverse charge handling.
GCC (UAE, Saudi Arabia)
Gulf VAT at 5%. E-invoicing compliance for Saudi Arabia. UAE corporate tax.
UK
VAT with MTD (Making Tax Digital) compliance. Separate entities with UK-specific chart requirements.
Canada
GST/HST/PST per province. Canadian tax slip reporting (T4A, T5 where applicable).
Odoo handles all of these natively; our job is proper configuration per entity.
Typical cost for multi-entity implementation
| Group size | Timeline | Cost premium over single-entity |
|---|---|---|
| 2-3 entities | +2-3 weeks | +$15-30K |
| 4-7 entities | +4-6 weeks | +$30-70K |
| 8-15 entities | +6-10 weeks | +$70-150K |
| 16+ entities | +10-16 weeks | +$150-300K |
The cost premium is mostly intercompany configuration, transfer pricing setup, consolidation design, and testing across entities.
Conclusion
Odoo handles multi-entity accounting natively and well. For 2-15 entities, single-database multi-company is typically the right structural choice. For larger or more complex groups, federated deployment with a consolidation layer works.
The key is configuration discipline: set up intercompany rules, transfer pricing, and FX revaluation correctly once, and the monthly close process becomes routine rather than heroic.
If you're running a multi-entity group and finance is burning days on consolidation, talk to us. We can assess your current setup and estimate what Odoo consolidation would look like.
Related reading: Real cost of Odoo implementation · Odoo vs NetSuite · Building upgrade-safe custom modules