Maximizing Efficiency
How to Utilize Odoo's Slow-Moving Inventory Report for Optimal Stock Control


Odoo meets the majority of inventory management needs in day-to-day operations.

However, the slow-moving inventory report is missing, yet it is essential.

This article will explain how to obtain this report without diving into hours of development.

Why the Slow Moving Inventory report ?

The slow-moving inventory report is a crucial tool used by businesses to assess and manage their inventory effectively. It provides detailed insights into items within a company's inventory that have been stagnant or slow to sell over a defined period. By identifying these slow-moving items, businesses can make informed decisions regarding pricing strategies, promotions, and inventory management processes.

This report typically includes key metrics such as the quantity of each slow-moving item, its current value, the duration it has been in inventory, and its contribution to overall inventory holding costs. Analyzing this information allows businesses to pinpoint trends, potential causes for slow sales, and opportunities for improvement.

The slow-moving inventory report aids in optimizing inventory levels, reducing carrying costs, and maximizing profitability by enabling businesses to prioritize actions such as targeted marketing campaigns, clearance sales, or adjustments to procurement strategies.

In summary, the slow-moving inventory report plays a vital role in inventory management, helping businesses maintain optimal stock levels, minimize holding costs, and enhance overall operational efficiency.

How to Build this Report?

This report is built with the help of the "BI SQL Editor" module provided by the extraordinary OCA community.

Once installed, simply create a new report with the following SQL query:

SELECT pp.default_code AS x_pp_code,>>'en_US' AS x_pt_name,
   max( AS x_last_date
FROM product_product AS pp
   JOIN product_template AS pt ON pp.product_tmpl_id =
   JOIN stock_move AS sm ON sm.product_id =
WHERE sm.state='done' AND = 't'
GROUP BY pp.default_code,

Simple & efficient.

The right tool, the right integrator.