This module provides the basis for creating key performance indicators, including static and dynamic thresholds (SQL query or Python code), on local and remote data sources.
The module also provides the mecanism to update KPIs automatically. A scheduler is executed every hour and updates the KPI values, based on the periodicity of each KPI. KPI computation can also be done manually.
A threshold is a list of ranges and a range is:
- a name (like Good, Warning, Bad)
- a minimum value (fixed, sql query or python code)
- a maximum value (fixed, sql query or python code)
- color (RGB code like #00FF00 for green, #FFA500 for orange, #FF0000 for red)
auto_awesome What this module does
AI-generated from the code · Odoo 19.0Create and track Key Performance Indicators (KPIs) inside Odoo, computed from Python code or SQL queries on local or external databases, with colour-coded thresholds and automatic hourly updates.
This module adds a KPI area under the Spreadsheet Dashboard menu. Users with the "Manage KPI's" group can define KPIs, categories, thresholds and ranges.
- A KPI has a name, category, threshold, periodicity (minute/hour/day/week/month) and a computation type: Python, SQL on the local Odoo database, or SQL on an external data source. The code must return a single value.
- Each KPI shows its latest value, colour and last execution date, and keeps a history of every computation. A "Compute KPI Now" button runs it manually.
- Thresholds group ranges. A range has a name, a colour and a minimum and maximum that can be fixed values, Python code or SQL queries (local or external). Ranges must not overlap; the system blocks overlapping ranges and flags invalid ones with a message.
- A scheduled job runs every hour and recomputes active KPIs whose next execution date has passed, then schedules the next run according to the periodicity.
- The KPI value is coloured according to the range it falls into, and this colour is shown on the KPI dashboard kanban and list views.
- Configuration menus cover KPIs, Categories, Ranges, Data Sources and Thresholds. Records are filtered per company.
Depends on
Required by other modules
Menus it adds
Models and fields (5)
- kpi · new modelname, color, value, active, kpi_code (KPI Code), kpi_type, company_id, category_id, dbsource_id, description, history_ids, periodicity, threshold_id, last_execution (Last execution), periodicity_uom, next_execution_date (Next execution date)
- kpi.history · new modeldate (Execution Date), name, color, value, kpi_id, company_id
- kpi.category · new modelname, description
- kpi.threshold · new modelname, valid, kpi_ids, range_ids, company_id, invalid_message (Message)
- kpi.threshold.range · new modelname, color, valid, max_code (Maximum Computation Code), max_type, min_code (Minimum Computation Code), min_type, max_error (Maximum Error), max_value (Maximum Value), min_error (Minimum Error), min_value (Minimum Value), company_id, threshold_ids, invalid_message (Message), max_dbsource_id, max_fixed_value (Maximum Fixed Value), min_dbsource_id, min_fixed_value (Minimum Fixed Value)
Text generated by AI (DeepSeek) from reading the Odoo 19.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 5 confirmed, 4 with no information of 9 versions.
Sources · Odoo 19.0
Confirmed on 2026-11-03 in branch 19.0 of OCA/reporting-engine.
terminal Installation and usage
OCA documentation · Odoo 19.0Usage
Source · Odoo 19.0Example of usage:
No verified information in OCA: Installation, Configuration.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
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.