Know exactly how old your stock is
One on-demand report that ages every stock layer, flags dead, slow, overstocked and expiring inventory, and lets you act on it without leaving Odoo Inventory.
The problem
Odoo shows what stock you own and what it is worth today, but not how long it has been sitting. Without aging visibility, teams over-order stagnant SKUs, miss clearance windows, absorb avoidable write-offs, and let perishable items lapse past their usable date — and every existing aging app on the market stops at detection, leaving the fix to a spreadsheet.
The solution
Inventory Aging Report generates one unified, on-demand report that ages every on-hand stock layer and classifies it across four lenses — aging, dead/slow/non-moving, overstock and expiry — with user-defined buckets, list/pivot/graph analytics, a printable PDF, and buttons to mark clearance, disposal, write-off or re-order right from the report.
Everything you need to age, classify and act
Every capability below is implemented in the module.
Real-Time Aging, No Manual Refresh
Every on-hand stock layer is aged live from its receipt date, one report line per product, location and lot — exact figures with no update cycle to run.
User-Configurable Age Buckets
Define your own age bands from Settings — no hard-coded 0-30/30-90/90+ periods to fight, no code required to match your business cadence.
Dead, Slow & Non-Moving Classification
Every line is tagged Fast, Slow or Non-moving from its last outgoing movement, in plain language, with the underlying day threshold always visible.
Overstock Detection with Value Impact
Flags stock quantities above a configurable threshold and shows the cash tied up in the excess, so buyers stop over-purchasing already-full shelves.
Expiry Tracking for Lot-Managed Goods
Flags expiring-soon and already-expired lots against a configurable warning window, using the expiration dates you already track — built for food, pharma and other perishable stock.
Report-to-Action Workflow
Mark lines for clearance, flag for disposal or write-off, or adjust re-order — one line at a time or in bulk — directly from the report grid.
Multi-Dimensional Filtering
Slice every report by warehouse, location, product category, product and company, so each role sees only the scope that matters to them.
Pivot, Graph and PDF Analytics
Explore aged stock by bucket and warehouse in a pivot table, chart value by bucket in a graph, or print a boardroom-ready PDF — all from the same data.
Scheduled Snapshot & Email Summary
Turn on the optional monthly cron to snapshot aging automatically and email a totals summary to managers — persisted runs also enable period comparison.
How it works
Set Filters & Thresholds
Open Inventory Aging, choose warehouse, location, category or product filters, and confirm your dead/slow/overstock/expiry thresholds.
Generate the Report
Click Generate to age every matching stock layer in real time and populate the aging lines instantly.
Analyze the Lines
Review flagged lines in the list, drill down in the pivot table, or chart value by bucket in the graph view.
Act on the Results
Mark lines for clearance, disposal, write-off or re-order — single or in bulk — then print the PDF or export for the team.
Frequently asked
No sales fog. If your question isn't here, email us and we'll answer it the same way.
Each on-hand stock layer is aged from its receipt date (the same date Odoo's FIFO removal strategy uses), so the age is exact and updates live — no manual recalculation, no move-walking.
Buy it on the Odoo App Store
Purchase, download and install directly from the official Odoo Apps Store — you'll always get the latest supported build.
Inventory Aging Report
One on-demand report that ages every stock layer and flags dead, slow, overstocked and expiring inventory — with configurable buckets and a built-in path from detection to action.
Buy on Odoo App Store