Back to Blog

June 27, 2026

Odoo Finally Lets You Build Custom Tax Reports From Scratch With a Visual Report Engine

Odoo adds a custom tax report builder to its accounting module, letting businesses define their own report lines, formulas, and tax tag mappings — addressing one of the most frequently requested features for companies with non-standard tax reporting requirements.

Odoo custom tax report builder showing report line configuration and generated tax report output

Every accounting team has that one tax report. The one that doesn’t quite fit any of the standard templates. Maybe it’s a municipal tax filing with local-specific line items, or a sector-specific regulatory report that combines standard tax data in non-standard ways, or an internal management report that needs to roll up tax obligations across multiple entities with different structures.

Until now, Odoo users in this situation had two options: modify the existing tax reports through technical customization (requiring developer involvement), or export the raw data and build the report in a spreadsheet. Neither was great. The first option meant paying for developer time every time the report format changed. The second meant manual work that defeated the purpose of having an integrated accounting system.

Odoo has now shipped a custom tax report builder that puts this capability directly in accountants’ hands. No code, no exports, no developer tickets. You define the report structure, map it to your tax tags, and the system generates the report from live transaction data.

The Engine Selector Changes Everything

The report builder starts with a concept called the “engine” — the calculation method that drives how each report line pulls its numbers. The primary engine for custom tax reports is “Tax Tags,” which connects report lines to the tax tags already assigned to journal entries through Odoo’s tax configuration.

This is a crucial design decision. Rather than asking accountants to write formulas that reference specific accounts or tax codes, the builder leverages the tagging infrastructure that already exists in every Odoo accounting setup. If you’ve properly configured your taxes with tags — which Odoo’s standard localization packages do automatically — building a custom report is essentially a matter of selecting which tags appear on which lines.

The practical effect: an accountant who understands their tax obligations can build a compliant report without understanding anything about Odoo’s technical architecture. The builder abstracts the complexity of querying journal entries, filtering by tax treatment, and aggregating amounts across periods — all of which happens automatically once the report structure is defined.

Building a Report: Lines, Codes, and Formulas

Creating a custom tax report follows a structured process. You define report lines — each representing a row in the final output — and assign each line a code and a calculation method. The code is an identifier (like “ST01” for sales tax line one) that other lines can reference in their own formulas.

For straightforward lines, the calculation method is “balance” — the system simply aggregates all journal entry amounts tagged with the corresponding tax tag. For computed lines, you write formulas that reference other line codes. A net tax payable line, for instance, might use the formula “ST01 - IT01” to subtract input tax credits from sales tax collected.

The formula system is deliberately simple. It supports basic arithmetic operations between line codes, not arbitrary expressions. This constraint is intentional — it prevents the kind of spaghetti formulas that make spreadsheet-based reports unmaintainable, while still covering the calculation patterns that tax reports actually need.

Report Variants for Multi-Jurisdiction Filing

One feature that addresses a genuine pain point for international businesses is report variants. A single report definition can have multiple variants, each representing a different filing context — different states, different entity types, or different reporting periods with different rules.

Consider a business operating in three Australian states with slightly different payroll tax reporting requirements. Instead of maintaining three separate reports with largely identical structures, you create one report with three variants. Each variant can override specific lines or thresholds while inheriting the common structure. When the common structure changes, all variants update automatically.

For multinational organizations, variants can represent different country filings that share a common logical structure but differ in specifics. The European VAT framework is a natural fit: the basic concept of output tax minus input tax is universal, but the specific line items, rates, and groupings vary by member state.

Why Accountants Have Been Asking for This

Custom tax reporting has been one of the most persistent feature requests in the Odoo community for years. The standard tax reports that ship with Odoo’s localization packages cover the common cases well — standard VAT returns, BAS statements, sales tax summaries — but they’re rigid. Any deviation from the standard format meant going outside the system.

The people who felt this most acutely were accountants at businesses with atypical tax situations. Companies in special economic zones with modified tax treatment. Businesses that straddle multiple tax jurisdictions. Organizations with reporting obligations to industry-specific regulatory bodies that use non-standard report formats.

For these users, the custom report builder isn’t a nice-to-have. It’s the feature that determines whether Odoo can be their sole accounting system or just one piece of a multi-tool workflow. Every report that has to be built in a spreadsheet is a workflow that lives outside the audit trail, outside the access controls, and outside the automated scheduling that Odoo provides for its native reports.

The Broader Reporting Picture

The custom tax report builder fits into a larger pattern of Odoo investing in accounting flexibility. Previous releases have added analytic distribution models, custom chart-of-accounts structures, and configurable fiscal year periods. The tax report builder is the missing piece that brings the same configurability to the output side of accounting — what comes out of the system, not just what goes in.

For accounting firms that manage multiple clients on Odoo, the builder has particular appeal. Instead of maintaining custom development for each client’s unique reporting needs, the firm can configure reports through the UI and include them in client onboarding templates. When regulations change, updating a report definition takes minutes rather than development cycles.

The feature also creates an interesting dynamic for the Odoo partner ecosystem. Report configurations can be shared between implementations, creating opportunities for localization partners to package industry-specific or jurisdiction-specific report templates without writing a line of code. A tax advisor who builds the perfect report structure for, say, Australian Fringe Benefits Tax reporting can distribute that configuration to every Australian Odoo implementation they support.

For the accountants who have been building these reports in spreadsheets, the message is simple: the spreadsheet era is ending. Not because spreadsheets are bad tools — they’re extraordinary — but because tax reports built outside the accounting system will always be stale by the time someone looks at them. A report that recalculates from live journal data every time you open it is a fundamentally different artifact than one that was accurate three days ago when someone last refreshed the export.

Ready to experience Odoo AI?

Join hundreds of teams using DearERP to customize Odoo in minutes, not weeks. Plans start at $29/month.