User guide
How to use Dead Stock & Inventory Ageing, screen by screen.
Where it lives
Inventory → Reporting
| Menu | What it does |
|---|---|
| Dead Stock & Ageing | The full report. Everything on hand, with age and movement columns. |
| Dead Stock Analysis | A short form that asks what you want to see and opens it. |
Start with the wizard
Inventory → Reporting → Dead Stock Analysis
| Field | What it does |
|---|---|
| Not Shipped For (days) | The core question. Defaults to your configured threshold. |
| Only This Age Band | Narrow to one ageing band as well, if you want both conditions. |
| Include Never Shipped | Stock that has never left this location at all. On by default. |
| Warehouses | Empty means all of them. |
| Product Categories | Includes child categories automatically. |
| Minimum Value | Hide lines below this. |
Then Show Lines for the detail, or Summarise to land in the pivot.
Minimum Value matters more than it looks. Dead stock worth four pounds is not a management problem, and a report full of it hides the lines that are. Set it to whatever is worth a purchasing conversation and the report becomes an action list instead of a wall.
Reading the columns
| Column | Means |
|---|---|
| On Hand | Quantity in this location, in the product's unit. |
| Unit Cost / Value | Cost per unit and quantity × cost, in company currency. |
| In Stock Since | When this stock arrived. |
| Days in Stock | Age of the goods. |
| Last Shipped | The last done outgoing movement from this location. Empty means never. |
| Days Since Out | How long since anything left. This is the deadness measure. |
| Age | The ageing band. |
| Never Shipped | Nothing has ever left this location for this product. |
Rows are shaded: red past a year without shipping, amber past six months.
The two clocks
Days in Stock and Days Since Out answer different questions and frequently disagree — that disagreement is the useful part.
- High age, low days-since-out → it sells, but you are holding too much of it. A stock-level problem.
- Low age, high days-since-out → you have just bought more of something that stopped selling. A purchasing problem, and the expensive one.
- Both high → genuinely dead. Decide what to do with it.
Digging in
- The history button at the end of each row opens every done movement for that product in that location. It is the first thing anyone asks for when they question a number.
- The pivot view (warehouse against age band, measured by value) is the board-report screen: it answers "where is the money stuck" in one grid.
- The graph view gives value by age band as a bar chart.
Grouping and filtering
Search-panel filters: not shipped in 90 / 180 / 365 days, never shipped, on the shelf over 180 days, worth over 100.
Group by warehouse, location, product category, product, age band, or company.
Combining two groupings is where the report earns its keep: category inside warehouse usually shows the problem is one buyer or one supplier rather than the business as a whole.
Exporting
The list is an ordinary Odoo list, so the standard Export works — select rows, pick columns, XLSX or CSV. Nothing special is required and nothing is locked.
The weekly email
If your administrator has switched it on, you get a summary of dead stock value by warehouse once a week. It is not sent in a week with nothing to report, so an email arriving means something genuinely crossed the threshold.