Every released version, what changed in it, and the date it went out. This page is generated from the module’s own changelog, which is the same file shipped inside stock_dead_ageing_report and rendered on its Odoo Apps Store listing.
Launch price: $29 to $19. The catalogue has no reviews yet, and an unknown vendor's price is the first objection a buyer has to get past. This is a deliberate, reversible move to buy the first sales and the first reviews, not a permanent valuation of the module. It is reviewed once there are five reviews across the catalogue, or at the end of 2026, whichever comes first.
18.0.1.0.1
Changed
The store listing now shows the product. 4 screenshots taken from a running Odoo 18, each captioned with what it shows.
Fixed
Every age was one day too high on a server east of UTC. Odoo stores datetimes as UTC-naive, so q.in_date::date is a UTC date, while a bare NOW()::date is the session date and the session runs in the database server's timezone. On a database in Africa/Cairo (UTC+3), every evening after the local day rolled over, Days in Stock and Days Since Last Movement Out each came out a day too high - which silently moved items into the wrong ageing band, and moved items across the dead-stock threshold a day early. Both sides of the subtraction are now evaluated in UTC.
Found by the test suite failing on every upper band edge and passing on every lower one - the signature of a consistent off-by-one, not a flaky boundary. Re-verified after the fix: 54 tests, 0 failures, 0 errors.
18.0.1.0.0
Notes
First public release.
Added
stock.dead.stock.report - a read-only PostgreSQL view over stock_quant and stock_move_line, one row per quant, with product, category, location, warehouse, lot, quantity, unit cost, value and currency.
Two independent measures: Days in Stock (from the quant's incoming date) and Days Since Last Movement Out (from the last done outgoing move line), because ageing and deadness are different questions.
Six ageing bands, generated from a single Python definition so the SQL and the field labels cannot drift apart.
A Never Shipped flag for stock that has never left its location.
List, search, pivot and graph views, with grouping by warehouse, location, category, product, age band and company, and a movement-history button per row.
Dead Stock Analysis wizard - threshold, warehouses, categories, minimum value, age band, never-shipped - opening into either the list or the pivot.
A configurable dead-stock threshold, with a live count and value on the settings page.
An optional weekly email digest of dead-stock value by warehouse, sent per company and only when there is something to report.
A global record rule enforcing multi-company isolation on the view, and per-company reading of the company-dependent product cost.