Horizontal Groups Odoo 18
By Braincuber Team
Published on December 29, 2025
Finance director preparing quarterly board presentation creates financial reporting nightmare: balance sheet showing all companies combined preventing subsidiary-specific analysis board requiring separate Company A Company B performance comparison, 200-line financial report vertically scrolling requiring 15 pages printing 30 minutes board review time frustrating executives, multi-year comparison impossible existing format showing 2024 data only preventing trend analysis YoY growth identification, consolidated report mixing current assets long-term liabilities unclear categories making anomaly detection difficult, and manual Excel exports reformatting filtering copying data 4 hours monthly wasting finance team productivity—generating presentation delays decision-making inefficiencies poor data visibility analysis paralysis and inability presenting tailored financial views stakeholders requiring flexible customizable report filtering grouping visualization enabling quick insights comparative analysis and executive-ready presentations without manual data manipulation.
Odoo 18 Horizontal Groups enable flexible financial reporting through custom report filtering defining domain rules restricting data display, company-specific views showing balance sheet P&L per subsidiary, year-based filtering limiting reports specific fiscal periods, side-by-side comparison displaying related categories horizontally saving space improving readability, multi-period analysis comparing current year versus prior year budget versus actual, account grouping organizing current assets operating expenses logical horizontal categories, domain customization creating rules based company_id date_range account_type custom fields, report template integration applying horizontal groups balance sheet P&L cash flow, visual clarity enhancement arranging data rows streamlining executive review, and export-friendly formatting supporting clean PDF Excel outputs—reducing report preparation time 75 percent through automated filtering eliminating manual data manipulation via domain rules enabling instant multi-company comparison through group selection supporting strategic decision-making through clear comparative financial views and achieving executive-ready presentations through optimized horizontal layouts professional formatting systematic data organization.
Horizontal Group Features: Custom filtering, Domain rules, Company-specific views, Year-based filtering, Side-by-side comparison, Account grouping, Template integration, Visual clarity, Export formatting, Multi-period analysis
Understanding Horizontal Groups
Concept and purpose:
What Are Horizontal Groups:
Horizontal groups are filters applied to financial reports controlling which data displayed based on custom criteria. Instead of traditional vertical account listing horizontal groups arrange related categories side-by-side improving visual clarity enabling comparison.
Key Characteristics:
- Domain-based filtering using Odoo domain syntax
- Applied to specific reports Balance Sheet P&L Cash Flow
- Multiple groups can be created for different analysis needs
- Horizontal layout displays data across rows not vertically
- Improves readability especially for multi-period multi-company reports
Vertical vs Horizontal Layout:
| Layout | Organization | Use Case |
|---|---|---|
| Vertical | Accounts listed top to bottom | Traditional single-column reports |
| Horizontal | Categories arranged left to right | Comparative multi-category analysis |
Accessing Horizontal Groups
Configuration Location:
- Go to Accounting → Configuration → Accounting → Horizontal Groups
- List view shows existing horizontal groups
- Displays: Group Name, Associated Reports
Creating Horizontal Group
New Group Creation:
- In Horizontal Groups list click New
- Configuration form opens
- Fill group details
Group Configuration Fields:
- Name: Descriptive group name e.g. Company Wise 2024 Only Budget vs Actual
- Reports: Select which financial reports use this group:
- Balance Sheet
- Profit and Loss
- Cash Flow Statement
- Custom financial reports
Adding Domain Rules
Defining filter criteria:
Adding Filter Lines:
- In horizontal group form click Add a Line
- Pop-up window opens
- Configure domain rule
Domain Configuration:
Field Name:
Descriptive label for this filter rule appearing in report options. Example: Main Company Only 2024 Fiscal Year Current Assets.
Domain:
Odoo domain syntax defining filter criteria. Examples:
[('company_id', '=', 1)]
# Filter: Only Company ID 1 records
[('date', '>=', '2024-01-01'), ('date', '<=', '2024-12-31')]
# Filter: Only 2024 dates
[('account_id.code', '=like', '1%')]
# Filter: Only accounts starting with 1 (assets)Common Domain Examples:
Company-Specific Filter:
[('company_id.name', '=', 'Main Company')]Date Range Filter:
[('date', '>=', '2024-01-01'), ('date', '<=', '2024-12-31')]Account Type Filter:
[('account_id.user_type_id.name', '=', 'Current Assets')]Multiple Conditions (AND):
[('company_id', '=', 1), ('date', '>=', '2024-01-01')]Multiple Conditions (OR):
['|', ('company_id', '=', 1), ('company_id', '=', 2)]Applying Horizontal Groups
Using in Reports:
- Go to Accounting → Reporting
- Select report: Balance Sheet P&L or Cash Flow
- Report displays with horizontal group selector
- Click horizontal group dropdown
- Select desired group e.g. Company Wise
- Report filters immediately applying domain rules
Visual Impact:
Before horizontal group:
- All companies all years all data mixed
- 200-line report difficult navigation
- No filtering options
After applying Company Wise group:
- Only selected company data displayed
- Filtered relevant accounts
- Cleaner focused report
- Easier analysis and presentation
Use Case Examples
Use Case 1: Multi-Company Analysis
Scenario: Corporation with 3 subsidiaries needs individual balance sheets
Create 3 Horizontal Groups:
- Company A Balance Sheet
- Domain:
[('company_id.name', '=', 'Company A')] - Shows only Company A accounts
- Domain:
- Company B Balance Sheet
- Domain:
[('company_id.name', '=', 'Company B')] - Shows only Company B accounts
- Domain:
- Company C Balance Sheet
- Domain:
[('company_id.name', '=', 'Company C')] - Shows only Company C accounts
- Domain:
Result: Board presentation includes 3 separate clean balance sheets one per subsidiary enabling performance comparison.
Use Case 2: Year-Over-Year Comparison
Scenario: CFO needs compare 2024 vs 2023 performance
Create 2 Horizontal Groups:
- 2024 Financial Data
- Domain:
[('date', '>=', '2024-01-01'), ('date', '<=', '2024-12-31')]
- Domain:
- 2023 Financial Data
- Domain:
[('date', '>=', '2023-01-01'), ('date', '<=', '2023-12-31')]
- Domain:
Process: Generate P&L for 2024 group. Generate second P&L for 2023 group. Compare side-by-side identifying growth trends.
Use Case 3: Account Category Focus
Scenario: Controller analyzing only current assets
Create Horizontal Group:
- Current Assets Only
- Domain:
[('account_id.user_type_id.name', '=', 'Current Assets')] - Filters balance sheet showing only current asset accounts
- Excludes long-term assets liabilities equity
- Domain:
Benefit: Focused analysis on liquidity working capital management without distraction from other balance sheet categories.
Benefits of Horizontal Groups
Enhanced Readability
Cleaner focused reports easier interpretation
Quick Filtering
Instant data filtering no manual work
Multi-Period Comparison
YoY analysis budget vs actual
Company Separation
Individual subsidiary reporting
Export-Friendly
Clean PDF Excel outputs
Custom Criteria
Flexible domain-based filtering
Best Practices
Create Descriptive Group Names Indicating Filter Purpose: Generic name Horizontal Group 1 equals confusion which filter for what purpose. Descriptive name Company A 2024 Current Year or Budget vs Actual Q1 2024 immediately communicates filter purpose enabling quick selection appropriate analysis reducing selection errors saving time.
Test Domain Syntax Before Saving Preventing Report Errors: Invalid domain syntax [('company_id' = 1)] missing comma equals report error crash user confusion. Test domain developer mode executing search verifying records returned. Valid syntax [('company_id', '=', 1)] ensures successful filtering. Testing prevents production errors maintaining user confidence.
Use Horizontal Groups for Executive Presentations Improving Clarity: Board members dont want 200-line unfiltered financial statements. Create Company-Specific Year-Specific groups generating clean focused reports. Executives appreciate concise relevant data enabling faster decision-making. Professional presentations using horizontal groups demonstrate financial sophistication enhancing credibility.
Conclusion
Odoo 18 Horizontal Groups enable flexible financial reporting through custom report filtering domain rules company-specific views year-based filtering side-by-side comparison account grouping template integration visual clarity enhancement and export-friendly formatting. Reduce report preparation time through automated filtering eliminating manual data manipulation via domain rules enabling instant multi-company comparison through group selection supporting strategic decision-making through clear comparative financial views achieving executive-ready presentations through optimized horizontal layouts professional formatting systematic data organization improving stakeholder communication through focused relevant reporting and enhancing financial analysis through customizable flexible report filtering achieving operational efficiency executive satisfaction and data-driven decision-making.
