Stock Average Daily Sale
Allows to gather consumed products on daily basis
Stock Average Daily Sale
This module allows to gather stock consumptions and build reporting for average daily consumptions. Technically, this has been done through a materialized postgresql view in order to be as fast as possible (some other flow modules can depend on this).
You can add several configurations depending on the location from which consumptions are counted.
For each product ABC classification, you can define the computation horizon, i.e. the amount of time to look backward (in days or weeks or months or years).
You can exclude some days of the week like saturday and sunday from the computation. However, if moves occurs on those excluded days, they are still counted. If your warehouse is open usualy on week days, the averages will be on 5 days a week. If the warehouse had some activity during the week-end, this will be considered in the total and average as if it happened during weekdays.
The report also provides a recommended quantity. That recommended quantity is the biggest between: - a coverage in days * the average daily consumption + a safety - a coverage in days * the average consumption
The second part tries to better recommend a quantity for C products. The safety is computed as: daily standard deviation * sqrt(coverage) * a safety factor It is up to you to configure the safety factor.
Table of contents
Configuration
To configure data analysis, you should go to Inventory > Configuration > Average daily sales computation parameters
You need to fill in the following informations:
- The product ABC classification you want - see product_abc_classification module
- The concerned warehouse
- The stock location for which you want to compute the usage
- The period of time to analyze back (in days/weeks/months/years)
- A safety factor
Go to Configuration > Technical > Scheduled Actions > Refresh average daily sales materialized view
By default, the scheduled action is set to refresh data each day. Note that the current day is not take into consideration in the computations, so you better run the scheduled action on the early morning.
WARNING: The current query is not TZ compliant. So the cron must run after midnight UTC time.
By default, the root location where analysis is done is the Warehouse stock location, but you can change it and you can compute usage for multiple locations of the warehouse. Ensure to set a location that is used by the stock moves or a parent one.
Known issues / Roadmap
- Allow to exclude specific days
- An extensible data gathering query
- Make it timezone compliant
Changelog
16.0.1.0.0 (2023-01-13)
- [16.0][ADD] stock_average_daily_sale
16.0.2.0.0 (2025-04-05)
- [16.0][REF] refactor formulas for proper metrics
Bug Tracker
Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed feedback.
Do not contact contributors directly about support or help with technical issues.
Credits
Authors
- ACSONE SA/NV
- BCIM
Contributors
- Laurent Mignon <laurent.mignon@acsone.eu>
- Denis Roussel <denis.roussel@acsone.eu>
- Jacques-Etienne Baudoux (BCIM) <je@bcim.be>
- Tomasz Walter <tomasz.walter@camptocamp.com>
Maintainers
This module is maintained by the OCA.

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.
Current maintainer:
This module is part of the OCA/stock-logistics-reporting project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
Once the user has seen at least one product this snippet will be visible.