KPI Balanced Scorecard v.13

The tool to set up KPI targets and control their fulfillment by periods

198€ 168€

The price is valid till July, 15 (according to the promo campaign June - July 2024).
The tool does not require extra dependencies beside standard Odoo apps.
Current version:

Odoo dashboards are cool and nice-looking but they give you mostly the Past results overview without a chance to set up and control targets. This app is to solve that problem by introducing KPI interface to manage company and personal targets. The tool helps to organize work as a set of periodical goals and to control those goals in any business or functional area.

Balanced Scorecard Interface

The whole list of KPI targets for a period is available from a single interface. Right from here you can set up new targets and edit existing ones, observe actual and target values, evaluate success by indicative red / green color, observe historical trends, open and close periods. It is also possible to export a whole scorecard to an Excel table.

To make navigation over targets comfortable, KPIs are structured by categories. It let quickly consider only those KPIs which are of interest at the moment. For example, to observe only sales targets or targets of a specific Odoo user. Another important peculiarity is that KPIs might have parent-children relations. For instance, 'Total company sales' > 'Sales America' > 'John Brown Sales'. Such hierarchy allows to highlight targets with indicative padding for instant overview of sub-KPIs.

It is only up to you which KPIs to add and which approach to apply for KPIs' sectioning and hierarchy.


KPI Balanced Scorecard

KPI targets view

KPI targets by categories

Navigation by KPI categories

Export Odoo KPI scorecard to Excel

xlsx representation of KPI targets

Open new KPI period to set KPI targets up

Create new period to set KPI targets

Set a new Odoo KPI target

Setting up a new Odoo target

KPIs targets by periods

KPI scorecard is not just a dashboard, but it is a full-featured tool to set and control company and individual targets. Targets should be measurable and time-constrained. 'Sell as much as possible' is not a goal, while 'Generate 100,000 Euro Revenue in the year 2021' is a good target for a sales person, for example.

That is why, each goal should have a target value and should be defined for a period. In such a way, the app let you have a full picture of results to undertake corrective actions in advance.

Real-time control and historical trends

When a user opens scorecard interface, he/she is shown targets of a current period (if it exists). Actual values are re-calculated regularly and automatically by the special Odoo cron job. In such a way, it is possible to understand which KPIs require more attention in real time at a first glance.

Simultaneously, it is always possible to switch to another period to have broader picture (e.g. from monthly to yearly KPIs) or to observe the Past / the Future targets (e.g. to plan efforts efficiently).

Besides, each KPI target has a special button to observe history by all periods. The latter might be useful to understand overall trends.

Copying targets from a period

In case you have similar KPIs from a period to period, the tool let you copy targets. To that end use the field 'Copy target from' when you open a new period or the button 'Substitute' for existing ones.

Periods trends, length and tolerance

The app allows to set periods of any length including intervals which cross each other (and even the Past periods!). To open a new KPI period you should just set start and end dates. Those dates will be used to calculate KPI actual value. For example, KPI formula might include a basic KPI measurement for total amount of sale orders, while date field of this measurement is defined as 'Order date'. Then, only sale orders which order date is within the period would be taken into account. Thus, KPI scorecard would show total revenue for a given period.

It is recommended to have more or less strict logic of periods for comparability purposes. Usually, KPI targets are set for a whole year and quarterly/monthly intervals. It let not only have KPI overview, but also check historical trends. The app automatically considers various periods in order to define which might be compared to this one, and will show users a chart of actual values by a specific KPI. It is possible to define tolerance on the configuration page. For example, 2-days tolerance is needed to compare quarterly periods (since quarter might take from 90 to 92 days), and 3-days tolerance for months (unluckily, February may last 28 days).

Why to close periods

KPI periods work in a similar way as accounting / fiscal periods. The idea behind is to make sure that at a certain point KPI actual values are frozen and might be used for a final analysis of a period. It is hardly good to update December KPIs in the next August even though a sale total needs to be corrected, for example.

That is why when a period end date is already in the Past, it is preferable to close that period to avoid further updates of KPI targets actual values. Besides, it would speed up actual values' recalculations.


KPI targets by periods

Odoo KPI scorecard: choose period

KPI trends by similar periods and overall history

KPI targets' history

Substitute targets with KPI targets of another period

Copy targets of another period

Drag-and-drop formulas for KPI calculations

A KPI (a key performance indicator) is a measurement which aims to evaluate a certain aspect of organizational or personal activities. This tool let you prepare an unlimited number of such measurements and calculations of almost any complexity.

Formula construction is as simple as it is to write down a mathematical expression: just drag and drop formula parts in a right order with correct operators. When Odoo computed actual values for a specific period, it would automatically retrieve data from a database according to parts' logic. As formula parts you can apply:

  • KPI variables - rules how to calculate data from Odoo database. For example, 'total number of sales orders' or 'number of quotations of sales team Europe'.
  • Other KPIs - to make derivative calculations. For example, you may have KPIs 'Sales count' and 'Opportunities count', and a derivative KPI 'Opportunity to sales success ratio'.
  • KPI constants - figures which do not depend on actual Odoo data, but which are frozen globally or for a specific time frame. Constants allow to introduce parts which can not be retrieved from modules and/or which should remain the same during the whole period.
  • 2 special variables - 'Period Days' and 'Days Passed'. Those figures are calculated not from Odoo data, but from the KPI period settings under consideration. 'Period Days' is an interval length in days. 'Days Passed' is a length between period start and today (if today is before period end; otherwise period end). Those parameters let calculate per-time KPIs, such as, for example, 'Average sales per week'.
  • Mathematical operators - including subtraction, addition, multiplication, division, exponentiation, any float number.

How to configure KPI appearance

Depending of business logic of KPI formula, the final calculation result might have different form:

  • Simple number: for example, 'Average sales count per week'.
  • Percentage: for example, 'Sales to opportunities success ratio'.
  • Monetary: for example, 'Total Sales per period'. Make sure the measurement field you used is in the same currency (usually company default currency)!

For simple numbers and percentage you may also define result suffix and prefix to make a figure nice looking (e.g. add "%" as suffix to have "88%"). For monetary result type it is recommended to define a currency, which symbol would be added to result.

Finally, you may decide how calculation result should be rounded. Available options are from 0 to 4 decimal points (1 > 1.2 > 1.23 > 1.235 > 1.2346).


KPI formula: overview

KPI formula example

Drag and Drop to define KPI calculation formula

KPI calculation formula parts

KPI formula: settings and apperance

KPI variables configuration

Constants for KPI calculations

KPI constants

Odoo List of KPIs to set targets

Tree view of Odoo KPIs

KPI variables and basic measurements to retrieve Odoo data

Preparing basis for KPI calculations is not a simple task. The good news is that such job should be done only once, while results are used forever.

A basic measurement is the core object used for retrieving actual KPI value from Odoo database. Basic measurements represent the most general calculation, while KPI measurements specify those. For example, 'total number of sales orders' should be a basic measurement, while narrower 'number of quotations of the sales team Europe' is recommended to be a precision of that basic measurement (so, a KPI measurement or a KPI variable). Each basic measurement might have an unlimited number of linked KPI variables. In such a way, KPI variable let you prepare a formula part which might calculate:

  • A total number of specified records within a given period. For example, a number of registered leads or a number of posted customer invoices.
  • A sum of specified records' numeric fields. For example, sum of all orders amount total or sum of paid taxes by invoices.
  • An average of specified records' numeric fields. For example, average planned hours per task or average days to assign a lead

If those 3 types of calculations are not enough, basic measurements let you prepare the Python code to compute any sort of figures based on any Odoo data.

How to set up basic measurement

Basic measurements are not used themselves for formula constructions, they are required to prepare any sort of formula variables (KPI measurements). In order to create a basic measurement you should define:

  • Model - is an Odoo document type from Odoo database, so with which data set you work. For, examples, 'Sales Order' or 'Task'. Here you can rely not only upon standard or custom objects (including ones created through the interface or the Odoo studio.), but also on Odoo reports. The latter is quite useful if indicators are already calculated for existing dashboard (for example, total sales amount in default currency from the 'Sales Analysis Report').
  • Date fields - are required to understand whether a specific document type relates to a considered period, so, how to distribute objects by time intervals. For example, for tasks you might use 'create date' to analyze jobs registered within this KPI period. It is possible to apply a few date fields (e.g. 'Opportunities opened and won in January 2021'). If date fields are not specified, KPI period would not influence this basic measurement.
  • Filters - allow you to restrict records set by any stored field. For example, you may calculate count of only won opportunities based on stage settings or only posted customer invoices based on journal entry type and state.
  • Measure field - is available and required only for calculation types 'Average' and 'Sum'. It defines which figure you use for calculations. For example, total amount of Sales Analysis Report to get accumulated sales revenue or work hours of tasks to get average spent time per each task.
  • Company field - would be needed for multi companies environment. According to that field, KPIs are considered only withing a KPI period target company. Take into account that records without company stated would be used for all companies' KPI calculations.

Python code measurements

'Python code' is the special type of basic measurement. This type requires technical knowledge but let you compute any sort of figures based on any Odoo data without restrictions.

Correct Python code assumes saving the value into the special variable 'result'. From other perspectives, it might be any Python basic script with possibility of SQL queries (using '').

In your calculations you may also rely upon the special variables: 'period_start' (the first date of the period), 'period_end' (the last date of the period), 'period_company_id' - object for which Odoo makes calculations at the moment (according to a KPI period under consideration).

How to configure KPI variables from basic measurements

A KPI measurement is a final variable used for KPI calculations. It represents specification of basic measurement. For example, 'number of quotations of the sales team Europe' might be a precision of a basic measurement 'total number of sales orders'.

The key idea to distinct KPI variables from basic measurements is to simplify data preparation. Each basic measurement might have an unlimited number of linked KPI measurements. So, the only thing you would need to do is to apply extra filters (in the example 'Sales Team Name is Europe').

Take into account that basic measurements of the type 'Execute Python code' can't be any more specified, since they do not relate to any records. In such a case, there is no sense to have a few KPI measurements.

In a multi company environment KPI Measurements are applied globally or for each company individually. In the former case that variable is available for any company KPI formulas, while in the latter - only for specific one (it let make quicker overview while constructing formulas).


KPI basic measurements: Odoo data

Basic low-level measurements for calculations

KPI variable / KPI measurement: specify basic measurement

KPI variable - precision of basic measurement

Execute Python code to calculate KPI actual value

Python code basic measurement

Shared KPIs and self-control

Full rights for all KPIs, targets, and settings belong to users with the right 'KPI Management - KPI manager'. Simultaneously, the tool let you share KPIs with other users as well.

In particular, you can grant an access to observe KPIs using the 'Read rights' section on a KPI or a KPI category form. The section 'Edit rights' would not only allow to see scorecard by related KPIs, but also to set targets for those. The latter might be useful in case you ask your manager to manage goals within a department, for example.

Take into account: all security settings are additive and they are not restrictive. KPI managers would have full rights for all KPIs disregarding the settings, while other users would have rights only to KPIs which settings (or category settings) allow them so.


KPI manager rights

User group for KPI admins

Share all KPIs of this category

User rights for KPI category

Own KPI security settings

Users and User groups for KPI

Multi companies

The tool is compatible with multi companies' environment. In particular, KPI periods and KPI targets are set up for each company individually (global targets are not possible).

KPI basic measurements assume that a company field is selected for a chosen model. It let distinguish which records are under consideration. If a company field is empty, all records would be analyzed.

Constants, KPI variables, and KPI formulas might be also assigned to a specific company. That might be used to simplify selection of formula parts when companies operate in different business areas.

Configuration and Installation Tips for KPI Balanced Scorecard Odoo v.13

Scheduled jobs

To change the frequency of KPI targets recalculations:
  1. Turn on the debug mode.
  2. Go to KPI > Configuration > Settings.
  3. Find the button 'Configure cron job'.
  4. You are welcome to update the settings 'Execute Every' and 'Next Execution Date'. Please do not make it too frequent (e.g. once in 5 minutes), since operation is resource demanding, and might be not fully finished within a pair of minutes.

Change frequency of KPIs re-calculatinon

Odoo KPI automatic cron job

Frequently Asked Questions about KPI Balanced Scorecard Odoo v.13

Basic Measurements are not used to create a formula by themselves. Even if you don't want to add any more filters to the Basic Measurement, you should still create a Variable linked to it. Then, this Variable will appear in the list of available ones for creating a formula.

The app itself does not introduce its own data (with exception of the KPI constants aiming exactly to apply missing data) or integrations. The app calculates and prepares interfaces based on existing Odoo data. For example, you can get the information about the number of sale orders for a particular period from the app Sales.

The module is universal and can get data from any Odoo module, including account balances. For example, you can calculate the total profit for a month based on the invoices (journal entry).

You can also get the data from a source outside of Odoo, through connecting it with an Odoo module. For example, if you have data from Google Analytics in your Odoo PostgreSQL, then such data might be used to prepare KPIs.

Measurement (Variable) - is a specification of a basic measurement. The key idea is to simplify data preparation. You define 'Total Sales' once, and then unlimitedly use it for 'Sales Europe', 'Sales John Brown', 'Website Sales', etc by adding extra filters.

According to the current Odoo Apps Store policies:

  • every module bought for version 12.0 and prior gives you access to all versions up to 12.0.
  • starting from version 13.0, every module version should be purchased separately.
  • disregarding the version, purchasing a tool grants you a right to all updates and bug fixes within a major version.

Take into account that the faOtools team does not control those policies. For all questions, please contact the Odoo Apps Store representatives directly.

The easiest approach is to use the Odoo store built-in workflow:

1. Open the module's page and click the button Deploy on

2. After that, you will be redirected to the GitHub page. Login to your account and click 'Create a new repo' or use the existing one. Please, make sure, that your repository is private. It is not permitted to publish the apps under the OPL-1 license. If necessary, create a new repo for your project

3. Then, go to and click on the deploy button, submit the decision in the pop-up window and click 'Continue'. The action will trigger the installation process.

These steps will install the app for your project production branch. If you want to deploy the apps for other branches or update the module, you should undertake the following actions:

1. Upload the source code for the app from the Odoo store

2. Commit the module to a required GitHub repository. Make sure that none of the app folders/files are ignored (included in the .gitignore of your repo). Repositories are automatically created by, which might add by default some crucial items there (e.g. /lib). You should upload all module directories, subdirectories, and files without exceptions

3. Deploy a target branch of the project or wait until it is automatically built if your settings assume that.

  1. Unzip the source code of the purchased tools in one of your Odoo add-ons' directories;

  2. Re-start the Odoo server;

  3. Turn on the developer mode (technical settings);

  4. Update the apps' list (the apps' menu);

  5. Find the app and push the button 'Install';

  6. Follow the guidelines on the app's page if those exist.

Yes, sure. Take into account that Odoo automatically adds all dependencies to a cart. You should exclude previously purchased tools.

A red/orange warning itself does not influence features of the app. Regretfully, sometimes our modules do not pass standard automatic tests, since the latter assumes behavior which is in conflict with our apps goals. For example, we change price calculation, while standard Odoo module tests compare final price to standard algorithm.

So, first of all, please check deployed database features. Does everything work correctly?

If you still assume that warning influences real features, please contact us and forward full installation logs and the full lists of deployed modules (including core and third party ones).

Regretfully, we do not have a technical possibility to provide individual prices.

No, third party apps can not be used on Odoo Online.

Yes, all modules marked in dependencies are absolutely required for a correct work of our tool. Take into account that price marked on the app page already includes all necessary dependencies.  

The price for our modules is set up in euros. The Odoo store converts prices in others currencies according to its internal exchange rate. Thus, the price in US Dollars may change, when exchange rate changes.

Bug reporting

In case you have faced any bugs or inconsistent behavior, do not hesitate to contact us. We guarantee to provide fixes within 60 days after the purchase, while even after this period we are strongly interested to improve our tools.

No phone number or credit card is required to contact us: only a short email sign up which does not take more than 30 seconds.

Please include in your request as many details as possible: screenshots, Odoo server logs, a full description of how to reproduce your problem, and so on. Usually, it takes a few business days to prepare a working plan for an issue (if a bug is confirmed) or provide you with guidelines on what should be done (otherwise).

Public features requests and module ideas (free development)

We are strongly motivated to improve our tools and would be grateful for any sort of feedback. In case your requirements are of public use and might be efficiently implemented, the team would include those in our to-do list.

Such a to-do list is processed on a regular basis and does not assume extra fees. Although we cannot promise deadlines and final design, it might be a good way to get desired features without investments and risks.

No phone number or credit card is required to contact us: only a short email sign up which does not take more than 30 seconds.

You may also like the tools
Cloud Storage Solutions

The technical core to synchronize your cloud storage solution with Odoo

OneDrive / SharePoint Odoo Integration

The tool to automatically synchronize Odoo attachments with OneDrive files in both ways

Google Drive Odoo Integration

The tool to automatically synchronize Odoo attachments with Google Drive files in both ways

OwnCloud / NextCloud Odoo Integration

The tool to automatically synchronize Odoo attachments with OwnCloud / NextCloud files in both ways

KnowSystem: Knowledge Base System

The tool to build deep and structured knowledge base for internal and external use. Knowledge System. KMS

Universal Appointments and Time Reservations

The tool for time-based service management from booking appointment to sale and reviews

Password Manager

The tool to safely keep passwords for shared use

198€ 168€
Joint Calendar

The tool to combine different Odoo events in a few configurable super calendars. Shared calendar. Common calendar.

78€ 66€
Odoo Documentation Builder

The tool to create website documentation based on your knowledge base