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.

Capabilities

Everything you need to age, classify and act

Every capability below is implemented in the module.

01

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.

02

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.

03

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.

04

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.

05

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.

06

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.

07

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.

08

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.

09

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.

Workflow

How it works

1

Set Filters & Thresholds

Open Inventory Aging, choose warehouse, location, category or product filters, and confirm your dead/slow/overstock/expiry thresholds.

2

Generate the Report

Click Generate to age every matching stock layer in real time and populate the aging lines instantly.

3

Analyze the Lines

Review flagged lines in the list, drill down in the pivot table, or chart value by bucket in the graph view.

4

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.

Questions

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.

Get the app

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