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 StoreMore Odoo inventory apps
Inventory Archive Records
Archive completed deliveries, receipts and internal transfers with a captured reason, an immutable audit log, a configurable reason catalogue, automated policies, bulk wizard and one-click compliance export.
Inventory Backdate
Backdate transfers, adjustments, and scrap orders with full journal entry propagation, fiscal period lock validation, and a built-in audit trail.
Inventory Freeze & Adjustment Control
Scoped freeze sessions that hold stock movement during a count while sales and purchase orders stay open — with an auto-unfreeze failsafe, audit log and counted quantities applied on validation.
Inventory Revaluation
Batch revaluation across Standard, AVCO and FIFO with pre-flight diagnostics and a live before/after preview — balanced journal entries, reason codes and one-click reversal included.
Inventory Shrinkage Tracking
Side-by-side stocktake count sheets with automatic cause categorization, cost impact per line and high-value flagging — with shrinkage analytics by cause and product, without touching live stock.
Inventory Stock Movement Report
Opening balance, stock in, stock out and closing balance per product for any period, in quantity and value — with drill-down to source documents and PDF or Excel export.