VERSICH

Odoo Reporting: QWeb, Spreadsheets, and Dashboards

odoo reporting: qweb, spreadsheets, and dashboards

Introduction 

Odoo reporting turns operational data into documents, performance summaries, and information for decisions. Not every reporting requirement needs the same tool. 

Odoo gives you several options: built-in pivot and graph views for quick analysis, QWeb for formatted documents, Odoo Spreadsheets for flexible analysis, dashboards for shared metrics, and, for cross-system analysis, an external BI tool such as Power BI. The right choice depends on who needs the information, how they will use it, and how often it changes. 

This guide compares these options and shows how to build reports that stay useful as your business requirements change. It also explains why two reports can show different numbers and how to prevent it. 

Choose the Right Odoo Reporting Method 

Start with the purpose of the report, not its appearance. 

Method 

Best Suited For 

Example 

Needs Development?

Built-in views (pivot, graph, list) 

Quick analysis of one app's data 

Sales Analysis by salesperson and month 

No 

QWeb reports 

Formatted business documents 

Invoices, quotations, delivery slips 

Studio for layout changes, a developer for custom logic 

Odoo Spreadsheets 

Detailed analysis and calculations 

Sales comparisons, expense analysis, budget tracking 

No 

Dashboards 

Monitoring key performance indicators 

Sales pipeline, inventory levels, revenue trends 

Little or none 

SQL views and BI tools 

Analysis across many models or systems 

Margin by customer across ERP, CRM, and billing 

Yes 

These methods complement each other. A dashboard summarizes performance, a spreadsheet supports further analysis, and a QWeb report produces a formal document for a customer. Choose by the output you need, not by which format is easiest to create. 

Start With Built-In Odoo Reporting: Pivot, Graph, and List Views 

Before you build anything, check the Reporting menu of the relevant app. Odoo's two generic reporting views are the pivot view and the graph view. 

  • Pivot view: aggregates records and breaks them down by rows and columns. You group by fields, drill into the detail, and download the result as an .xlsx file. 

  • Graph view: visualizes the same data as bar, line, or pie charts, so patterns and trends stand out. 

  • Filters, groupings, and favorites: combine them to answer a question once, then save the search so your team can reuse it. 

Many "custom report" requests are answered by a saved filter and a pivot. For example, the Sales Analysis report grouped by salesperson and month gives a sales manager a performance view without any development. Build something custom only after you confirm the standard views cannot do the job. 

Odoo QWeb Reports for Invoices, Quotes, and Business Documents 

QWeb is Odoo's templating system for generating reports in HTML and PDF formats. A report combines a template, the business records it prints, and a report action that makes it available in the application. Odoo renders QWeb PDFs with wkhtmltopdf by default; Odoo 20 adds Paper Muncher as an alternative engine.

Use QWeb when a business needs a consistent, formatted document that contains: 

  • Customer and company details 

  • Product descriptions, quantities, and prices 

  • Payment terms and totals 

  • Branding, headers, footers, and page layouts 

  • Conditional content based on the document or business rules 

For example, a distributor may need a quotation that includes product details, delivery terms, and company branding. A standard report may be enough at first. A custom template becomes necessary when the document must follow a particular layout or include additional business information. 

Three Ways to Customize a QWeb Report 

  • Odoo Studio report editor: a no-code route for layout changes. Studio is part of Odoo Enterprise. 

  • Template inheritance in a custom module: a developer extends the standard template instead of copying it, which keeps upgrades manageable. 

  • Custom report data: a developer adds a Python report model when the document needs data that the record itself does not provide. 

When standard report layouts cannot meet your requirements, Odoo development services can help you build custom QWeb templates, report logic, and dashboards around your business processes. 

Before You Customize a QWeb Report 

  • Identify which fields the document needs, where the data comes from, and how it behaves across multiple pages. 

  • Test longer descriptions, missing values, several currencies, different languages, and realistic record data. 

  • Keep business logic out of the template where you can, so the report stays readable. 

  • Review custom templates when you upgrade Odoo, because changes to the underlying views or report structures can break them. 

Explore our Odoo customization services when you want to your reporting requirements to adapt the system while keeping future upgrades in mind. 

Odoo Spreadsheets for Flexible Business Analysis 

Odoo Spreadsheets support formulas, pivot tables, charts, linked Odoo data, and global filters. Users explore information, compare performance, and combine data for analysis. Common use cases include: 

  • Comparing sales performance across periods 

  • Analyzing expenses by department or category 

  • Reviewing product or inventory trends 

  • Comparing targets with actual results 

  • Combining related metrics into an analysis for management 

A spreadsheet fits best when users need to change filters, adjust calculations, or investigate details beyond a high-level KPI. 

That flexibility carries a responsibility: calculations and metric definitions must stay understandable. Document important formulas, use clear labels, and verify that filters and source data match the intended reporting period. When a spreadsheet draws on several sources, check that they use compatible date ranges, company settings, and definitions. A spreadsheet can calculate a value correctly and still mislead if the underlying data is inconsistent. 

Odoo Dashboards for Tracking Business Performance 

Dashboards bring selected metrics into one view, so users can monitor performance without opening several reports. In Odoo 19, dashboards are built with Odoo Spreadsheets, with data sources connected to the database. Depending on permissions and configuration, users interact with filters, customize views, and open the underlying data. Check the documentation for your release, because menus and features change between versions. 

A useful dashboard answers specific business questions, such as: 

  • Are sales opportunities progressing toward the monthly target? 

  • Which products are approaching low-stock levels? 

  • How does current revenue compare with the previous period? 

  • Which outstanding invoices need attention? 

Avoid displaying every available metric. Prioritize a small set of indicators that support a decision or an action. For each KPI, define its meaning, calculation, data source, reporting period, and intended audience. A sales manager and a finance manager may need different views even when both use revenue data. 

Review access permissions before you share a dashboard, so users see only the information they are authorized to access. When you customize a standard dashboard, duplicate it first. Odoo's documentation warns that standard dashboards can be reinstalled during upgrades, which can overwrite changes made directly to the original. 

Custom Odoo Reports With SQL Views and BI Tools 

Some questions outgrow standard views and spreadsheets. When a report spans many models, years of history, or several systems, you need a different approach. You have two main routes: 

  • SQL view models: a developer defines a read-only model backed by a database view, so Odoo can show the result in list, pivot, and graph views with normal access control. Community tools such as the OCA BI SQL Editor support this approach. Plan for maintenance and version compatibility. 

  • External BI tools: Power BI and similar tools combine Odoo data with CRM, billing, marketing, and other sources, and handle large data volumes and richer visuals. 

Why Odoo Reports and Dashboards Show Different Numbers 

Differences between reports undermine trust in the data, even when each report works correctly. The common causes are: 

  • Different date ranges: one report uses the invoice date, another the order date or payment date. 

  • Different filters: a report excludes canceled, draft, inactive, or unconfirmed records. 

  • Different metric definitions: sales orders, invoiced revenue, and cash received are different stages of a transaction, so they are different measures. 

  • Different company contexts: multi-company environments include different entities or currencies depending on the report configuration. 

  • Different access permissions: users see different records based on their access rights and record rules. 

  • Different aggregation methods: totals differ when one report counts individual records and another groups transactions or related records. 

When two reports disagree, compare their source models, filters, dates, permissions, and formulas before you assume the database is wrong. 

Define Each KPI Once 

Keep a shared definition for every important KPI, and use it in every report and dashboard. For example, "monthly sales" could mean any of these: 

Definition 

Date Used 

Source Records 

Booked sales 

Order confirmation date 

Confirmed sales orders 

Invoiced revenue 

Invoice date 

Posted customer invoices 

Cash received 

Payment date 

Registered payments 

Pick one, name it clearly, and label the report with it. 

Keep Odoo Reports Fast 

A report that takes minutes to load stops being used. Protect performance as your data grows: 

  • Filter by date range and company instead of loading the full history. 

  • Keep dashboards to a small number of metrics, because every data source adds load time. 

  • For values you report often, ask a developer to store the computed field, because a non-stored computed field is recalculated every time it is read. 

  • Move heavy aggregation into grouped queries or SQL views instead of looping through records in a template. 

  • Schedule large exports for off-peak hours. 

  • Test with production-sized data before you release a report. 

If reports remain slow as your data grows, read our guide on how to optimize a slow Odoo database for additional ways to investigate database performance. 

Improve Odoo Reporting Without Creating More Maintenance Work 

Treat custom reports as part of the application, not as one-off documents that never need review. Follow these practices: 

  • Start with standard reporting: Confirm whether an existing list, pivot, chart, or report already meets the requirement. 

  • Define metrics before building: Agree on formulas, filters, and reporting periods. 

  • Keep templates reusable: Avoid duplicating the same business logic across reports. 

  • Control access: Review who can view, edit, and share reporting information. 

  • Test changes: Check calculations, formatting, filters, and permissions with representative records. 

  • Review after upgrades: Confirm that custom reports and dashboards still behave as intended. 

Conclusion: Build Odoo Reports That Support Better Decisions 

Effective Odoo reporting starts with a clear question, the right reporting method, and consistent data definitions. Pivot and graph views answer quick questions, QWeb produces documents, spreadsheets support analysis, dashboards track performance, and SQL views or BI tools handle the largest questions. Use each for what it does best, and define every KPI once. If your reports need more than Odoo’s standard views, Talk to our Odoo team about building them around your KPIs. 

Frequently Asked Questions

What is the difference between QWeb reports and Odoo Spreadsheets?

QWeb generates formatted documents such as invoices and quotations. Odoo Spreadsheets support calculations, data analysis, pivot tables, and charts.

Can Odoo dashboards display live data?

Yes. Odoo dashboards use connected data sources that retrieve current information when you open or refresh them. The result depends on the data source, configuration, and how the underlying data is updated.

Can I create custom reports in Odoo?

Yes. You can customize existing reports, create QWeb templates, build spreadsheets and dashboards, or add SQL views for complex analysis.

Do I need Odoo Studio to customize reports?

No. Studio is a no-code option in Odoo Enterprise. Developers can customize QWeb templates in any edition.

Can I export Odoo reports to Excel?

Yes. The pivot view lets you download the data as an .xlsx file, and Odoo Spreadsheets work with spreadsheet formats directly.

Why might two Odoo reports show different totals?

Differences come from date ranges, filters, metric definitions, company settings, access permissions, or aggregation methods. Compare these settings before you change the report or the data.

When should I use Power BI with Odoo?

Use Power BI when you need to combine Odoo with other systems, analyze large data volumes, or build richer visuals than Odoo's built-in tools provide.

Tags: