Odoo consultants for regulated manufacturers · code you keep

Development · Odoo guide

How do I build a KPI dashboard in Odoo?

Build KPIs with Odoo Spreadsheet dashboards in Enterprise, native graph/pivot views on custom SQL models, or BI tools connected to PostgreSQL read replicas. Define measures on sale.report, stock moves, or MRP OEE fields, refresh on cron for heavy metrics, and place tiles on board views or website dashboards for executives with drill-down to underlying list views.

By Chase Robbins, Operator & Founder at The ERP Firm · Last updated October 24, 2026

Steps

  1. List KPIs: OTIF, inventory turns, MO variance, DSO, and backlog age.
  2. Create SQL view models (models.Model with _auto=False) for performant aggregates.
  3. Add graph and pivot views in XML with filters by company and date range.
  4. In Enterprise, add Spreadsheet dashboard snippets linked to pivot data sources.
  5. Schedule ir.cron to materialize heavy KPIs into kpi.snapshot tables if needed.
  6. Secure dashboards with groups; hide cost fields from operations roles.
  7. Validate numbers against accounting and inventory subledgers monthly.

Common mistakes

  • Live pivot on stock.move without date domain timing out.
  • Mixing invoice and delivery metrics without documented definition.
  • Duplicating KPI logic in spreadsheet and Python with different results.
  • No company filter on multi-company databases.
  • Exposing payroll KPIs on shared dashboards.

Odoo version notes

Spreadsheet dashboards are Enterprise highlights in Odoo 16–18. Community uses pivot/graph on custom models or Metabase external. Odoo 18 expands data connectivity—verify license. KPI boards should be retested after upgrade when account.report engines change.

When to bring in help

If the fix touches custom modules, regulated traceability, or production outages, a focused rescue sprint beats months of trial and error. See our Odoo service.

FAQ

Follow-up questions

Can I use Odoo Studio for KPIs?
Studio can add computed fields and views; heavy aggregates still need SQL views.
External BI tools?
Read-only replica to Power BI or Looker is common; watch replication lag for operations KPIs.
Real-time inventory KPI?
Use stock.quant and reserved quantity fields with warehouse filters; refresh via bus or cron.

Book a scoping call for your Odoo environment.

Bring your version, user count, and the workflow that is blocked today.

Book a scoping call