Skip to content

Reports & Analytics

Inventory Aging report

See how long stock has been on hand, grouped into age buckets, to find slow-moving and dead stock.

The Inventory Aging report shows how long your current stock has been on hand. It looks at today only: there is no date range to set, and ages are recalculated each time you open the page.

The report is included in the Pro plan and above. On another plan, the page shows what the report does and an invitation to upgrade.

Open and filter the report

  1. Open Reports in the top navigation bar.
  2. Select Inventory Aging from the list of reports.
  3. Use Category, Supplier, Department and Age Bucket along the top to narrow the list.
  4. Click any column heading to sort by it. The first click sorts highest first; click the same heading again to reverse the order.

Reports only appears in the top navigation bar if your account has the reports permission.

Each row represents one product. The columns are Product, with the product code underneath; Category; Supplier; In Stock; Value; Avg Age; Last Movement, which shows the number of days since the last movement with the date underneath; and Age Bucket.

The table opens sorted by Avg Age, oldest first, so the stock you are looking for is already at the top.

Understand age buckets

The five fixed buckets are 0-30 days, 31-60 days, 61-90 days, 91-180 days and 180+ days. A product exactly 180 days old is in 91-180 days; 180+ days starts at 181. A product is placed in a bucket based on its average age, not the age of its oldest unit.

Average age is weighted by quantity. The report calculates how many days ago each batch still on hand arrived, then averages those ages across the units you still hold.

For example, if 90 units were received last week and 10 were received a year ago, the average age is much closer to a week than a year. The product sits in an early bucket even though it includes some genuinely old stock.

Click a row to open the Aging Calculation panel. It shows the product's current stock, total value and unit cost, followed by its oldest stock date, weighted average age, last movement, days since that movement and the bucket it was classified into. This is the quickest way to see why a product landed in its bucket.

The product and supplier names in a row are links. The product name opens the product's Quick Preview, and the supplier name opens the supplier, instead of the Aging Calculation panel. Click anywhere else in the row to open the panel.

How stock age is calculated

A batch is aged from its arrival date. Three things create a dated batch: a delivery received against a purchase order, dated by its delivery date; an Initial Stock movement, dated by the movement date; and stock produced by an assembly, dated by the assembly.

The report consumes those batches oldest first against everything that took stock away: Stock Out, transfers out, Assembly Out, Defective / Supplier Claim and negative Adjustments. It then ages whatever is left.

Stock that never arrived through a delivery, an Initial Stock movement or an assembly has no arrival date of its own. Anything left over after the dated batches are matched is aged from the product's most recent movement instead, so it may look newer than it really is. Stock In, Found Inventory, transfers in and positive Adjustments are the usual cases.

Stock is always consumed oldest first when calculating age, regardless of the inventory method set in organisation settings. That setting—FIFO, LIFO or Average Cost—changes the Value column, not the age.

How stock value is calculated

The Value column shows the value of stock still on hand. It uses the purchase order unit price converted at that order's conversion rate, plus landed cost per unit, with any value adjustments recorded against the product added on top.

If a supplier claim has set a unit cost override on a purchase order line, the override is the complete unit cost for that batch. No landed cost is added on top.

A value adjustment stays in Value only while the units it was made on are still in stock. It leaves with those units as they are consumed, so once the adjusted stock has gone, so has the adjustment.

Summary cards and report scope

Three summary cards appear above the table. Total Inventory Value shows the value of every product in the report, with the number of products underneath. Age Distribution shows the count and value in each bucket. Oldest Item shows the highest average age of any single product, with that product's name.

Click a bucket in Age Distribution to show only products in that bucket; click it again to show them all. This does the same as the Age Bucket filter.

Every product that holds stock is included regardless of status. This includes inactive products, products hidden from inventory, deleted products and products of a deleted supplier, because their stock still exists. The total therefore matches Inventory Valuation for the same day. Products with no stock or negative stock are not shown.

If your account is restricted to certain departments, you see only products belonging to those departments, and the summary cards are calculated from that reduced list. Products with no department assigned are also excluded for a restricted account, even if they hold stock.

Work through old stock

  1. Set Age Bucket to 180+ days, or sort Avg Age from highest to lowest.
  2. Compare Avg Age with Last Movement. High age with a recent movement usually means a slow but live product. High age with no movement for months indicates genuinely stuck stock.
  3. Click the product name to open its Quick Preview.
  4. Select Product Page to check the purchase and movement history behind the number.

If the stock is gone or unusable, record a Stock Out so both the quantity and value leave your books. If it arrived defective from the supplier, open a supplier claim on the order instead: see Report defective material and open a claim.

  1. Open Inventory.
  2. Open Movements.
  3. Select New Movement, then Stock Out, and record the quantity that has gone.

Stock Out appears in the New Movement menu only for users with the Stock Out, Transfer & Adjustments permission.

If the stock still exists but is worth less than you paid, use Adjust Value in the Value Adjustments section on the product's page to write it down. The report's Value column includes value adjustments, so the next run reflects the new figure.

Value Adjustments and Adjust Value appear only for users who can manage valuations. Adjust Value is unavailable when the product has no stock on hand.

Export or refresh the report

Click Export to download the rows shown as a CSV file named after the report and today's date. The export applies every filter, including Age Bucket, and keeps the order you sorted by.

Refresh re-runs the report without reloading the page. Use it after recording a write-off or an adjustment to check the row has moved.

The reports permission opens the report but does not grant access to its monetary amounts. Without View Inventory Value, every amount shows as a dash; quantities and dates still show. An owner always has View Inventory Value.