Frequently asked questions
The questions asked most often about Dead Stock & Inventory Ageing, answered.
Does this need Odoo Enterprise? No. Community and Enterprise both work. It depends on stock and mail only.
Does it work on Odoo.sh? Yes.
Which Odoo versions? 18.0 only.
Do I have to generate or refresh the report? No. It is a database view over your existing quants and movement history. It is correct the moment a transfer is validated, and there is nothing to schedule.
Will it slow my database down? No table is created and nothing is written. Reading the report is one SELECT with two lateral joins over columns Odoo already indexes. Filters you apply are pushed down into the view, so narrowing to one warehouse does not compute the whole company first.
Why does it not match my valuation report? Because they measure different things. This report values stock at the product's current Cost; a valuation report uses stock-accounting layers, which preserve what each unit actually cost when it arrived. On a product whose cost has changed, the two will differ, and both are right for their own purpose. See METHODOLOGY.md.
Some lines show a value of zero. Those products have no Cost set. The quantity and age are still correct. Zeroes are shown rather than hidden, because a line you cannot value is still a line you may need to act on - and a lot of them is a genuine finding about your product data.
What is the difference between "Days in Stock" and "Days Since Out"? Age versus deadness. The first counts from when the stock arrived; the second counts from the last time anything left this location. A pallet received last week of a product that stopped selling in March is one day old and five months dead. That case is the whole reason both columns exist.
Does a transfer between my own warehouses count as a movement? It resets the clock at the source location, because something did leave there, and does not reset it at the destination, because nothing has left there yet. That is usually what you want: moving dead stock to another warehouse should not make it look alive.
Why is stock in transit missing? Transit locations belong to neither end of a transfer. Including them would double-count against one warehouse or the other.
What about negative quants? Excluded. A negative quant is a counting error, and reporting it as dead stock would be misleading.
Who can see the report? Odoo's Inventory Reporting menu is manager-only, so managers reach it through the menu. Inventory Users have read access to the model. Whatever the group, a global record rule limits everyone to their own companies.
Can I give an Inventory User the menu? Not without overriding Odoo's core Reporting menu, which would change the visibility of every other report underneath it. Link them to the action directly, or embed the list in a view they already have.
How do I change the ageing bands? They are fixed at 0-30, 31-60, 61-90, 91-180, 181-365 and over a year. The dead-stock threshold is fully configurable and is the number most people actually want to change.
Can I get the report by email? Yes - switch on the weekly digest in Settings - Inventory and pick recipients. Nothing is sent in a week with nothing to report.
Can I export it? Yes, with Odoo's standard export. It is an ordinary list view.
What happens if I uninstall? The view is dropped and the menus disappear. Your stock data is untouched - the module never owned any of it.