This module allows you to know 'how much code' is running on your Odoo instance, group by 'Type' (Odoo Core, OCA, other...)
This module can be usefull in the following cases :
- To analyse the size of your technical debt, regarding your Custom modules
- To know the ratio between Odoo / OCA and Custom modules
- To evaluate the amount to pay to odoo to upgrade your custom code, or the induced workload
For that purpose, it adds new concepts
- ir.module.author, based on the value author present in the manifest file.
- ir.module.type, populated by default with Odoo and OCA values.
Each installed modules have extra data in the 'Technical Data' tab :
auto_awesome What this module does
AI-generated from the code · Odoo 18.0Analyse the code size of installed Odoo modules and classify them by type (Odoo Core, OCA, custom) and author, with pivot and graph reports.
This module adds tools to measure how much code runs on your Odoo instance and to classify each installed module by its origin. It appears under the Technical menu (developer mode) as an "Analysis" menu with Settings and Reporting submenus.
- On each installed module's form, a "Refresh Code Analysis" button counts lines of Python, XML, JS, CSS and SCSS code and fills the "Code Size" group. It also shows the module's authors and its analysed type.
- A scheduled job (disabled by default) can refresh the analysis daily for all installed modules.
- You can define module types (e.g. Odoo Core, OCA) and rules that automatically assign a type based on the module's author. Two types and several rules are preloaded.
- Authors are stored as separate records with a count of their installed modules; a unique name is enforced.
- Reporting provides a pivot table and a pie chart of installed modules grouped by type, with code quantities as measures.
- Two system parameters let you exclude directories (lib, demo, test, etc.) and files (__manifest__.py, __openerp__.py) from the analysis.
- When a module is uninstalled, its analysis data is cleared.
Access to the new models is restricted to system administrators.
Depends on
Menus it adds
Models and fields (4)
- ir.module.type · new modelname, sequence, installed_module_ids (Installed Modules), installed_module_qty (Modules Quantity)
- ir.module.author · new modelname, installed_module_ids (Modules), installed_module_qty (Installed Modules Quantity)
- ir.module.module · extends an existing modelauthor_ids (Authors), js_code_qty (JS Code Quantity), css_code_qty (CSS Code Quantity), xml_code_qty (XML Code Quantity), scss_code_qty (SCSS Code Quantity), module_type_id (Analysed Module Type), python_code_qty (Python Code Quantity)
- ir.module.type.rule · new modelsequence, module_domain, module_type_id (Module type)
Text generated by AI (DeepSeek) from reading the Odoo 18.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: 7 confirmed, 2 with no information of 9 versions.
Sources · Odoo 18.0
Confirmed on 2026-11-03 in branch 18.0 of OCA/server-tools.
terminal Installation and usage
OCA documentation · Odoo 18.0Installation
Source · Odoo 18.0To use this module, you have to install the pygount python librairy.
pip install pygount
Configuration
Source · Odoo 18.0- Go to Apps / Module Analysis / Modules Types Rules
The Module types Rules are usefull to get the Type of a module, based on it information.
This module comes with default rules.
>
You can add your custom rules to identify the modules your team have developped for exemple,
>
to update the data manually, you have to :
- Go to 'Settings' / 'Technical' / 'Scheduled Actions'
- Run manually the action : 'Update Module Analysis'
This will update analysis of your installed modules.
to update the data automatically, you have to :
- Go to 'Settings' / 'Technical' / 'Scheduled Actions'
- Configure the action 'Update Module Analysis' and activate it. (By default, the cron is unactive and no analysis is done)
Adding Extra data
If you want to analyse other data, (for exemple, having the number of HTML files), create a custom modules and overload the module model :
from odoo import api, fields, models
class IrModuleModule(models.Model):
_inherit = 'ir.module.module'
xml_documentation_qty = fields.Integer(
string='Quantity of Comments in XML Files')
@api.model
def _get_analyse_settings(self):
res = super()._get_analyse_settings()
if not '.html' in res:
res['.html'] = {}
res['.html']['documentation'] 'xml_documentation_qty'
return resExclude files and directories
Two parameters are availaible in 'Settings' / 'Technical' / 'Parameters' 'System Parameters' :
>
The list of folders and filename will be exclude from the analysis. You can change the default settings.
Usage
Source · Odoo 18.0- Go to 'Apps' / 'Module Analysis' / 'Installed module by Types'
Open the stats to analyse the detail of the code installed
> > >
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.