The official Odoo 19 ORM changelog highlights two understated but structural changes: dynamic dates in domains and GROUPING SETS support for pivot views. They directly affect time filters, dashboards, automation and custom reports used by finance, sales, inventory and operations.
These are not promises of ready-made business indicators. They are framework capabilities. Reporting only improves when an integrator uses them appropriately and a migration confirms that existing rules retain the same meaning.
Dynamic dates: define a period that moves
Odoo 19 can express relative dates in a domain through a dedicated language. The official change illustrates “now minus five minutes” and the period from the previous Monday to the current Monday. The domain selector can consequently use its range operator without relying on complex older constructions around context_today and relativedelta.
The operational value is tangible: an “overdue orders” list, an automation for “invoices overdue by seven days”, or a “previous week’s interventions” control must move with the calendar. A mistakenly stored absolute date creates a filter that silently ages; a dynamic expression recalculates its boundary when it runs.
Time zones and period boundaries remain business decisions
Simpler syntax does not decide whether “today” follows the user, the company or the server. Nor does it define the fiscal week, a warehouse cut-off time or overnight activity. Date and Datetime fields do not have the same granularity.
For a Belgian company and French subsidiary sharing one database, legal time is usually aligned, but calendars, working days and closing procedures may differ. A wider international group must also test daylight-saving transitions and users in other time zones. The business requirement should therefore be written before the technical domain.
GROUPING SETS: fewer queries, not less governance
GROUPING SETS is an SQL feature that calculates several aggregation levels in one query. Its support in the Odoo 19 ORM serves pivot views that request, for example, totals by company, team and period together with their subtotals.
The expected benefit lies in building and running aggregations, but the feature does not guarantee that every complex dashboard automatically becomes fast. Data volume, computed fields, access rules, indexes, measures and customisations still shape performance. Measurements need production-like data.
What an Odoo 19 migration should inventory
Domains do not only live in views. They appear in favourite and shared filters, actions, automation rules, computed fields, record rules, reports, custom modules and integration calls. A migration that only checks whether menus open can miss a broken date boundary or an automation operating on a different record set.
- Inventory critical shared time filters and saved searches.
- Identify domains using
context_today,relativedeltaor evaluated code. - Document the business meaning of “day”, “week”, “month” and “overdue”.
- Compare results and volumes before and after migration at date boundaries.
- Test each automation with a controlled clock and time zone.
- Benchmark heavy pivots with the same dimensions, rights and volumes.
Standard configuration or custom development?
A simple user filter can often remain standard configuration. A rule that triggers a sensitive action, combines several calendars or feeds an external interface should be versioned, tested and monitored like code. Likewise, a standard pivot may be sufficient for exploration; a contractual financial statement requires stable definitions for measures, scope and rounding.
These changes are not a sufficient reason to migrate on their own. They become useful where a project suffers from fragile time domains or expensive pivot reporting. They then belong in an Odoo migration strategy, a customisation audit and a programme for reliable KPI management.
Underside analysis: test meaning before speed
We recommend creating a compact catalogue of dated scenarios: the day before month-end, the first day of the month, a daylight-saving transition, weekly close and fiscal year-end. For each one, the team records the expected records. This becomes a regression suite for domains, automation and reports.
For pivots, test accuracy and performance separately. Totals must first reconcile with source entries and the user’s access rights; response time comes next. This discipline prevents teams from accelerating a report with the wrong scope or replacing a custom development without functional evidence.
Official sources
- Odoo 19 — ORM changelog.
- Odoo — dynamic dates in domains implementation.
- Odoo — GROUPING SETS support for pivots.
Underside helps companies audit, migrate and develop Odoo environments. For critical reporting, the goal is to preserve the meaning of each indicator before optimising its execution.