OdooWiki OCA HUB
Uncategorised License: AGPL-3

This module adds new kinds of dashboards on a specific new type of view.

auto_awesome What this module does

AI-generated from the code · Odoo 15.0

Create custom KPI dashboards inside Odoo using configurable widgets (numbers, meters, counters, graphs) fed by Python code or model functions, and publish them as menus for selected user groups.

This module adds a new kind of dashboard to Odoo, built from individual indicators called KPIs. Managers configure KPIs under the new "KPI Dashboards" menu (visible to the "Manage KPI Dashboards" group), where each KPI can be computed either by Python code or by calling a function on a chosen model, with optional arguments. Each KPI has a display widget (integer, number, meter, counter or graph), a prefix and suffix, and can be refreshed on the fly or stored and refreshed by a scheduled action ("Generate cron"). Values can be recomputed manually with "Compute now", and history can be kept at a chosen interval, viewable through "Show history" with buttons to see the value or its raw form.

Dashboards are assembled by placing KPI items on a grid: each item has a row, column and size, and the system blocks overlapping widgets or widgets wider than the dashboard's number of columns. Items can carry colours, context expressions and colour expressions, and can link to actions (reports, window actions, URLs, server actions) that open from the KPI. A "Generate menu" button creates a real menu entry for the dashboard, restricted to the groups defined on the dashboard. Dashboards can also be added to the standard Odoo dashboard board. Access is read-only for regular users, while the manager group can create and edit everything.

Depends on

busboardbase_sparse_field

Menus it adds

KPI Dashboards
Models and fields (8)
  • kpi.kpi · new modelargs, code, name, value, active, kwargs, prefix, suffix, widget, cron_id, function, model_id, action_ids, history_ids, computed_date, store_history, compute_on_fly, computed_value, value_last_update, computation_method, dashboard_item_ids, store_history_interval, store_history_interval_number
  • ir.ui.view · extends an existing modeltype
  • kpi.dashboard · new modelname, width, active, menu_id, item_ids, margin_x, margin_y, group_ids, background_color, number_of_columns, widget_dimension_x, widget_dimension_y, compute_on_fly_refresh
  • kpi.kpi.action · new modelaction, kpi_id, context
  • kpi.kpi.history · new modelname, value, kpi_id, widget, raw_value
  • kpi.dashboard.item · new modelrow, name, color, column, kpi_id, size_x, size_y, end_row, end_column, font_color, dashboard_id, modify_color, compute_on_fly, modify_context, special_context, modify_color_expression, modify_context_expression
  • kpi.dashboard.menu · new modelmenu_id, dashboard_id
  • ir.actions.act_window.view · extends an existing modelview_mode

Text generated by AI (DeepSeek) from reading the Odoo 15.0 code on GitHub; it may contain mistakes, so check the code before deciding. The module is very large and only part of the code was read. View the code on GitHub

Availability by version

Reviewed: 2026-11-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 4 confirmed, 5 with no information of 9 versions.

Sources · Odoo 15.0

Confirmed on 2026-11-03 in branch 15.0 of OCA/reporting-engine.

terminal Installation and usage

OCA documentation · Odoo 15.0

Configure KPIs

#. Access `Dashboards > Configuration > KPI Dashboards > Configure KPI`
#. Create a new KPI specifying the computation method and the kpi type

   #. Number: result must contain a `value` and, if needed, a `previous`
   #. Meter: To show a percentage value, result must contain `value`. `value` must be a positive integer between 0 to 100. Meter is implemented with GaugeMeter (https://github.com/Mictronics/GaugeMeter). It can be customized by setting parameters for GaugeMeter in result. See https://github.com/Mictronics/GaugeMeter#parameter-definitions for details.
   #. Graph: result must contain a list on `graphs` containing `values`, `title` and `key`

#. In order to compute the KPI you can use a predefined function from a model or
   use the code to directly compute it.

Using KPI with code

Define the code directly on the code field. You can use self and model as the kpi element The script should create a variable called result as a dictionary that will be stored as the value. For example, we can use:

result = {}
result['value'] = len(model.search([('id', '=', %s)]))
result['previous'] = len(model.search([('id', '!=', %s)]))

Configure dashboards

#. Access `Dashboards > Configuration > KPI Dashboards > Configure Dashboards`
#. Create a new dashboard and specify all the standard parameters on `Widget configuration`
#. Append elements on KPIs
#. You can preview the element using the dashboard view
#. You can create the menu entry directly using the `Generate menu` button

No verified information in OCA: Installation, Usage.

info

Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.