Have you ever been:
- Tired of waiting for a developer every time you need a new report?
- Need client-ready PDFs that actually look like your brand?
- Want to replace wkhtmltopdf headaches with reliable Python output?
- Banded Repoet Writer is the answer
Every Odoo team eventually runs into the same problem: the standard reports are close, but not quite right—and tailoring them usually means hiring a developer, learning QWeb, or settling for “good enough”. Wilson Works built Banded Report Writer to remove that trade‑off.
Built by Odoo functional consultants who’ve lived the pain first‑hand, Banded Report Writer brings true banded reporting (think Crystal Reports) into Odoo. Reports are defined in clean, validated JSON, rendered in pure Python, and delivered as professional PDFs—with no QWeb, no wkhtmltopdf, and no custom code. Functional consultants, business analysts, and end users can design, deploy, and iterate entirely from the Odoo UI.
Banded Report Writer is available in three editions for both the community and enterprise Odoo editions: a fully featured Free core engine, a Community Library for sharing and discovering reports across the Odoo community, and Pro, which adds images, watermarks, runtime parameters, SQL data sources, snippet libraries, and scheduled email delivery. The Free and Community Library editions are available for direct download below. Pro is published on the Odoo Apps Store.
Free vs Pro Feature Comparison
The Banded Report Writer is a comprehensive, free report engine for Odoo. The optional Pro module extends it with advanced features for professional report design, automation, and integration.
Note: Installing Pro automatically extends the free module — all existing reports continue to work unchanged.
Everything Pro Adds At a Glance
Below is the full feature comparison between Free and Pro. Pro covers images and watermarks, runtime parameters, SQL data sources, snippet libraries, Print & Send, scheduling, enhanced JSON editing, and the Pro tutorial set.
Core Report Engine
| Feature | Free | Pro |
|---|---|---|
| Band-based layout (report header, page header, detail, page footer, report footer) | ✅ | ✅ |
| Multi-page reports with automatic page breaks | ✅ | ✅ |
| Page sizes — A4, Letter, Legal | ✅ | ✅ |
| Portrait and landscape orientation | ✅ | ✅ |
| Configurable margins (top, bottom, left, right) | ✅ | ✅ |
| Developer PDF Preview (in-browser, no download) | ✅ | ✅ |
| JSON schema validation with typo detection and suggestions | ✅ | ✅ |
| Report Builder wizard (guided report creation) | ✅ | ✅ |
| Debug layout mode (visualise band boundaries) | ✅ | ✅ |
| Generate PDF button (download) | ✅ | ✅ |
Data Sources & Queries
| Feature | Free | Pro |
|---|---|---|
| ORM data sources with Odoo domain filters | ✅ | ✅ |
| Parent-child (master-detail) data sources via One2many fields | ✅ | ✅ |
| Dot-notation for related fields | ✅ | ✅ |
| Dynamic domain variables ({company_ids}, {today}, {active_ids}) | ✅ | ✅ |
| SQL data sources — direct SQL queries | — | ✅ |
| Cross-table JOINs for complex multi-table reporting | — | ✅ |
| Parameterized SQL queries with safe %(name)s binding | — | ✅ |
Field Types & Formatting
| Feature | Free | Pro |
|---|---|---|
| Static text labels | ✅ | ✅ |
| Dynamic field values with {field_name} placeholders | ✅ | ✅ |
| Currency formatting — locale-aware with per-record symbol | ✅ | ✅ |
| Number formatting — locale-aware with thousands separator | ✅ | ✅ |
| HTML to plain text conversion | ✅ | ✅ |
| Image fields — render images in any band | — | ✅ |
| Image size modes — fit, stretch, original | — | ✅ |
| Conditional image rendering with render_if | — | ✅ |
Layout & Styling
| Feature | Free | Pro |
|---|---|---|
| Text alignment — left, right, center | ✅ | ✅ |
| Vertical alignment — top, middle, bottom | ✅ | ✅ |
| Bold and italic text (band and field level) | ✅ | ✅ |
| Font families — Helvetica, Times, Courier | ✅ | ✅ |
| Text color — hex #RRGGBB or named colors | ✅ | ✅ |
| Band backgrounds — solid or alternating row colors | ✅ | ✅ |
| Band borders and underlines | ✅ | ✅ |
| Named panels — positioned rectangles with backgrounds | ✅ | ✅ |
| Rounded corners (curved) | ✅ | ✅ |
| Watermarks — text or image on every page | — | ✅ |
| Watermark customization — opacity, rotation, font, color | — | ✅ |
Grouping, Totals & Summaries
| Feature | Free | Pro |
|---|---|---|
| Multi-level grouping by any field | ✅ | ✅ |
| Group header and footer bands (per level) | ✅ | ✅ |
| Aggregate functions — SUM, COUNT, AVG, MIN, MAX | ✅ | ✅ |
| Subtotals at each group level | ✅ | ✅ |
| Report footer with grand totals | ✅ | ✅ |
| Nested/hierarchical grouping (multiple levels) | ✅ | ✅ |
| Automatic page breaks per group | ✅ | ✅ |
| Continuation text for multi-page groups | ✅ | ✅ |
Report Parameters & Prompts
| Feature | Free | Pro |
|---|---|---|
| Runtime parameter prompts — dynamic wizard | — | ✅ |
| Date range parameters — 25+ built-in presets | — | ✅ |
| Selection/dropdown parameters | — | ✅ |
| Text, number, and boolean parameters | — | ✅ |
| Parameter values in domains | — | ✅ |
| Run Reports menu — opt-in quick-access for prompted & non-prompted reports | — | ✅ |
| Cron-ready defaults — unattended execution | — | ✅ |
Publishing, Print, Email & Scheduling
| Feature | Free | Pro |
|---|---|---|
| Publish to Action Menu wizard | ✅ | ✅ |
| Cross-model report actions | ✅ | ✅ |
| Print & Send — bind to Odoo’s Print button | — | ✅ |
| Default Report mode — replace built-in reports | — | ✅ |
| Scheduled reports via cron | — | ✅ |
| generate_pdf_attachment() — server-side PDF | — | ✅ |
| generate_and_email() — generate and send via email | — | ✅ |
JSON Editing & Productivity
| Feature | Free | Pro |
|---|---|---|
| JSON editor with syntax highlighting | ✅ | ✅ |
| JSON schema validation on save | ✅ | ✅ |
| Typo detection with suggestions | ✅ | ✅ |
| Report Builder wizard | ✅ | ✅ |
| JSON Compact All Fields | — | ✅ |
| JSON Expand All Fields | — | ✅ |
| JSON Expand Band | — | ✅ |
Reusable Components
| Feature | Free | Pro |
|---|---|---|
| Constants — report-level layout variables | ✅ | ✅ |
| Constants — band-level, scoped to a specific band | ✅ | ✅ |
| Palette definition for style consistency | ✅ | ✅ |
| Layout references — {name.x}, {name.width} | ✅ | ✅ |
| Named panels — store x, y, width, height | ✅ | ✅ |
| Snippet Libraries — reusable JSON fragments | — | ✅ |
| Band snippets — standard headers, footers | — | ✅ |
| include_snippet at any JSON level | — | ✅ |
Learning Resources
| Feature | Free | Pro |
|---|---|---|
| 11 progressive tutorials (Tutorial 01–11) | ✅ | ✅ |
| 7 Pro tutorials (Tutorial Pro 01–07) | — | ✅ |
| In-app User Guide | ✅ | ✅ |
| In-app Quick Reference | ✅ | ✅ |
| Pro User Guide | — | ✅ |
| Pro Schema reference | — | ✅ |
Summary
| Free | Pro | |
|---|---|---|
| Total features | 100+ | 140+ |
| Data source types | ORM | ORM + SQL |
| Report actions | Action Menu | Action Menu + Print & Send |
| Automation | Manual | + Cron, email |
| Media | Text only | + Images + Watermarks |
| Parameters | — | 5 types, 25+ presets |
| Tutorials | 11 | 11 + 7 Pro |
Free vs Pro Feature Comparison
The Banded Report Writer is a comprehensive, free report engine for Odoo. The optional Pro module extends it with advanced features for professional report design, automation, and integration.
Note: Installing Pro automatically extends the free module — all existing reports continue to work unchanged.
Everything Pro Adds At a Glance
Below is the full feature comparison between Free and Pro. Pro covers images and watermarks, runtime parameters, SQL data sources, snippet libraries, Print & Send, scheduling, enhanced JSON editing, and the Pro tutorial set.
Core Report Engine
| Feature | Free | Pro |
|---|---|---|
| Band-based layout (report header, page header, detail, page footer, report footer) | ✅ | ✅ |
| Multi-page reports with automatic page breaks | ✅ | ✅ |
| Page sizes — A4, Letter, Legal | ✅ | ✅ |
| Portrait and landscape orientation | ✅ | ✅ |
| Configurable margins (top, bottom, left, right) | ✅ | ✅ |
| Developer PDF Preview (in-browser, no download) | ✅ | ✅ |
| JSON schema validation with typo detection and suggestions | ✅ | ✅ |
| Report Builder wizard (guided report creation) | ✅ | ✅ |
| Debug layout mode (visualise band boundaries) | ✅ | ✅ |
| Generate PDF button (download) | ✅ | ✅ |
Data Sources & Queries
| Feature | Free | Pro |
|---|---|---|
| ORM data sources with Odoo domain filters | ✅ | ✅ |
| Parent-child (master-detail) data sources via One2many fields | ✅ | ✅ |
| Dot-notation for related fields | ✅ | ✅ |
| Dynamic domain variables ({company_ids}, {today}, {active_ids}) | ✅ | ✅ |
| SQL data sources — direct SQL queries | — | ✅ |
| Cross-table JOINs for complex multi-table reporting | — | ✅ |
| Parameterized SQL queries with safe %(name)s binding | — | ✅ |
Field Types & Formatting
| Feature | Free | Pro |
|---|---|---|
| Static text labels | ✅ | ✅ |
| Dynamic field values with {field_name} placeholders | ✅ | ✅ |
| Currency formatting — locale-aware with per-record symbol | ✅ | ✅ |
| Number formatting — locale-aware with thousands separator | ✅ | ✅ |
| HTML to plain text conversion | ✅ | ✅ |
| Image fields — render images in any band | — | ✅ |
| Image size modes — fit, stretch, original | — | ✅ |
| Conditional image rendering with render_if | — | ✅ |
Layout & Styling
| Feature | Free | Pro |
|---|---|---|
| Text alignment — left, right, center | ✅ | ✅ |
| Vertical alignment — top, middle, bottom | ✅ | ✅ |
| Bold and italic text (band and field level) | ✅ | ✅ |
| Font families — Helvetica, Times, Courier | ✅ | ✅ |
| Text color — hex #RRGGBB or named colors | ✅ | ✅ |
| Band backgrounds — solid or alternating row colors | ✅ | ✅ |
| Band borders and underlines | ✅ | ✅ |
| Named panels — positioned rectangles with backgrounds | ✅ | ✅ |
| Rounded corners (curved) | ✅ | ✅ |
| Watermarks — text or image on every page | — | ✅ |
| Watermark customization — opacity, rotation, font, color | — | ✅ |
Grouping, Totals & Summaries
| Feature | Free | Pro |
|---|---|---|
| Multi-level grouping by any field | ✅ | ✅ |
| Group header and footer bands (per level) | ✅ | ✅ |
| Aggregate functions — SUM, COUNT, AVG, MIN, MAX | ✅ | ✅ |
| Subtotals at each group level | ✅ | ✅ |
| Report footer with grand totals | ✅ | ✅ |
| Nested/hierarchical grouping (multiple levels) | ✅ | ✅ |
| Automatic page breaks per group | ✅ | ✅ |
| Continuation text for multi-page groups | ✅ | ✅ |
Report Parameters & Prompts
| Feature | Free | Pro |
|---|---|---|
| Runtime parameter prompts — dynamic wizard | — | ✅ |
| Date range parameters — 25+ built-in presets | — | ✅ |
| Selection/dropdown parameters | — | ✅ |
| Text, number, and boolean parameters | — | ✅ |
| Parameter values in domains | — | ✅ |
| Run Reports menu — opt-in quick-access for prompted & non-prompted reports | — | ✅ |
| Cron-ready defaults — unattended execution | — | ✅ |
Publishing, Print, Email & Scheduling
| Feature | Free | Pro |
|---|---|---|
| Publish to Action Menu wizard | ✅ | ✅ |
| Cross-model report actions | ✅ | ✅ |
| Print & Send — bind to Odoo’s Print button | — | ✅ |
| Default Report mode — replace built-in reports | — | ✅ |
| Scheduled reports via cron | — | ✅ |
| generate_pdf_attachment() — server-side PDF | — | ✅ |
| generate_and_email() — generate and send via email | — | ✅ |
JSON Editing & Productivity
| Feature | Free | Pro |
|---|---|---|
| JSON editor with syntax highlighting | ✅ | ✅ |
| JSON schema validation on save | ✅ | ✅ |
| Typo detection with suggestions | ✅ | ✅ |
| Report Builder wizard | ✅ | ✅ |
| JSON Compact All Fields | — | ✅ |
| JSON Expand All Fields | — | ✅ |
| JSON Expand Band | — | ✅ |
Reusable Components
| Feature | Free | Pro |
|---|---|---|
| Constants — report-level layout variables | ✅ | ✅ |
| Constants — band-level, scoped to a specific band | ✅ | ✅ |
| Palette definition for style consistency | ✅ | ✅ |
| Layout references — {name.x}, {name.width} | ✅ | ✅ |
| Named panels — store x, y, width, height | ✅ | ✅ |
| Snippet Libraries — reusable JSON fragments | — | ✅ |
| Band snippets — standard headers, footers | — | ✅ |
| include_snippet at any JSON level | — | ✅ |
Learning Resources
| Feature | Free | Pro |
|---|---|---|
| 11 progressive tutorials (Tutorial 01–11) | ✅ | ✅ |
| 7 Pro tutorials (Tutorial Pro 01–07) | — | ✅ |
| In-app User Guide | ✅ | ✅ |
| In-app Quick Reference | ✅ | ✅ |
| Pro User Guide | — | ✅ |
| Pro Schema reference | — | ✅ |
Summary
| Free | Pro | |
|---|---|---|
| Total features | 100+ | 140+ |
| Data source types | ORM | ORM + SQL |
| Report actions | Action Menu | Action Menu + Print & Send |
| Automation | Manual | + Cron, email |
| Media | Text only | + Images + Watermarks |
| Parameters | — | 5 types, 25+ presets |
| Tutorials | 11 | 11 + 7 Pro |


