---
title: "Inventory ageing: how long has your stock been sitting? | byrd"
description: Stock sitting for 180+ days quietly costs money. Here is how to analyse the age of your inventory with byrdAI in Claude or ChatGPT and act before it gets expensive.
image: https://blog.getbyrd.com/hubfs/Inventory%20Aging%20byrdAI.png
---

[![Getbyrd](https://blog.getbyrd.com/hubfs/raw_assets/public/Getbyrd_May2021/images/Header_logo.svg "Getbyrd")](https://getbyrd.com/)

12+ Logistics locations in Europe

- [Home](https://getbyrd.com/uk)
- Product
  
  
  
    - [Fulfilment](https://getbyrd.com/uk/fulfilment)
    - [Switching 3PL](https://www.getbyrd.com/uk/3pl-switch)
    - [Returns Portal](https://www.getbyrd.com/uk/returns-portal)
    - [Dedicated Support](https://www.getbyrd.com/uk/account-management)
- Integrations
  
  
  
    - [Overview](https://getbyrd.com/uk/all-integrations)
    - [Amazon](https://getbyrd.com/uk/amazon-fulfilment)
    - [Billbee](https://www.getbyrd.com/uk/billbee-fulfilment)
    - [Mirakl](https://getbyrd.com/uk/mirakl-fulfilment)
    - [ChannelEngine](https://www.getbyrd.com/uk/integration-channelengine)
    - [eBay](https://www.getbyrd.com/uk/ebay-fulfilment)
    - [PlentyOne](https://www.getbyrd.com/uk/plentymarkets-fulfilment)
    - [PrestaShop](https://www.getbyrd.com/uk/prestashop-fulfilment)
    - [Shopify](https://www.getbyrd.com/uk/shopify-fulfilment)
    - [Shopware](https://www.getbyrd.com/uk/shopware-fulfilment)
    - [WooCommerce](https://www.getbyrd.com/uk/woocommerce-fulfilment)
    - [Xentral](https://www.getbyrd.com/uk/xentral-integration)
- Solutions
  
  
  
    - [Baby Products](https://www.getbyrd.com/uk/baby-products)
    - [Beauty, Health & Cosmetics](https://www.getbyrd.com/uk/health-beauty)
    - [Electronics](https://www.getbyrd.com/uk/electronics)
    - [Food, Beverages & Supplements](https://www.getbyrd.com/uk/food-beverages-supplements)
    - [Jewellery, Accessories & Watches](https://www.getbyrd.com/uk/jewellery-accessories)
    - [Pet Supplies](https://www.getbyrd.com/uk/pet-supplies)
    - [Toys & Games](https://www.getbyrd.com/uk/toys-games)
    - [For New Businesses](https://www.getbyrd.com/uk/new-businesses)
    - [For Established Retailers](https://www.getbyrd.com/uk/established-retailers)
    - [For Enterprises](https://www.getbyrd.com/uk/enterprise)
- [Pricing](https://getbyrd.com/uk/pricing)
- Fulfilment Center Network
  
  
  
    - [Fulfilment Center Europe](https://getbyrd.com/uk/european-fulfilment-network)
    - [UK](https://www.getbyrd.com/uk/european-fulfilment-network/uk)
    - [Austria](https://www.getbyrd.com/uk/european-fulfilment-network/austria)
    - [France](https://www.getbyrd.com/uk/european-fulfilment-network/france)
    - [Germany](https://www.getbyrd.com/uk/european-fulfilment-network/germany)
- Resources
  
  
  
    - [Blog](https://blog.getbyrd.com/en-gb)
    - [Success Stories](https://www.getbyrd.com/uk/references)
    - [Demo](https://www.getbyrd.com/uk/fulfilment-software)
    - [Whitepaper: E-Commerce Slowdown](https://www.getbyrd.com/uk/survive-and-thrive-whitepaper)
    - [E-Book: Sustainable Supply Chain](https://www.getbyrd.com/uk/sustainable-supply-chain-ebook)
    - [E-Book: Cross-Border E-Commerce](https://www.getbyrd.com/uk/cross-border-ecommerce-eu-ebook)
    - [Whitepaper: 7 Fulfilment Tips](https://www.getbyrd.com/uk/7-fulfilment-tips-whitepaper)
- About us
  
  
  
    - [Team](https://www.getbyrd.com/uk/team)
    - [Career](https://www.getbyrd.com/uk/jobs)
    - [Sustainability](https://www.getbyrd.com/uk/sustainability-at-byrd)
    - [Partnerships](https://www.getbyrd.com/uk/partnerships)
    - [Press](https://www.getbyrd.com/uk/press)
- [Login](https://app.getbyrd.com/en/login?_ga=2.175706018.1283541857.1621736684-626381589.1621482964)

- [English - United Kingdom](https://blog.getbyrd.com/en-gb/inventory-ageing-stock-age-byrdai)
- [Deutsch](https://blog.getbyrd.com/inventory-aging-bestandsalter-byrdai)
- [English](https://blog.getbyrd.com/en/inventory-aging-stock-age-byrdai)
- [Español](https://blog.getbyrd.com/es/antiguedad-del-inventario-stock-byrdai)
- [Français](https://blog.getbyrd.com/fr/vieillissement-des-stocks-anciennete-byrdai)
- [Italiano](https://blog.getbyrd.com/it/inventory-ageing-eta-giacenze-byrdai)

[Request a quote](https://www.getbyrd.com/uk#angebot-anfordern)

# Inventory ageing: the early-warning system for your stock

How long has your stock really been sitting? Spot it early and act before old inventory eats into your margin.

<https://blog.getbyrd.com/en-gb/author/phillip-pitsch> [**Phillip Pitsch**](https://blog.getbyrd.com/en-gb/author/phillip-pitsch)

 : August 03, 2026  : August 03, 2026

Every pallet in your warehouse has a receipt date. And from that day, a bill starts running: storage costs month after month, tied-up capital, and for some products a ticking best-before clock on top. The inventory ageing report from [byrdAI](https://www.getbyrd.com/uk/byrd-ai) answers a question that is asked surprisingly rarely: how long has my stock actually been sitting here?

What is special about that question: it warns earlier than any other. A product can still be selling perfectly well and yet accumulate too much old stock. Keep an eye on stock age and you spot problems before they surface in the [slow-mover report](https://blog.getbyrd.com/en-gb/identify-slow-movers-byrdai?hsLang=en-gb) or as [overstock](https://blog.getbyrd.com/en-gb/reduce-overstock-byrdai?hsLang=en-gb).

## **The problem: you cannot see age in the stock**

**In the dashboard, all units look the same.** 500 units in stock, all good. The fact that 300 of them have been sitting there for over a year and only the last 200 are rotating fresh shows up in no stock figure on earth. For that you need the age view.

**Old stock quietly eats margin.** Goods that sit for 18 months have accumulated 18 months of storage costs before they make a single euro of revenue. For low-priced products, the storage costs eventually exceed the contribution margin, unnoticed.

**Quality and shelf life age with it.** Packaging yellows, trends turn, best-before dates draw closer. The older the stock, the smaller the window to still sell it normally.

**How to build the inventory ageing report with byrdAI**

Once connected, this is all it takes in Claude or ChatGPT:

"Create an inventory ageing report, grouped by age band."

byrdAI evaluates your stock by goods-receipt date and groups it into age bands: 0 to 30 days, 31 to 90, 91 to 180 and older than 180 days. With the ready-made dashboard prompt from the [byrdAI page](https://www.getbyrd.com/uk/byrd-ai), that becomes a live dashboard with the age distribution, the oldest stock in detail, and a view of which warehouse old stock is concentrated in.

![byrdAI inventory aging](https://blog.getbyrd.com/hs-fs/hubfs/byrdAI_inventory_aging.png?width=1137&height=659&name=byrdAI_inventory_aging.png)

## **Which decisions to draw from it**

**The 180-day band is your worklist.** Anything sitting for more than six months needs a decision: actively sell off, bundle or deliberately keep (with a reason, such as seasonal goods). No decision is also a decision, just the most expensive one.

**The single oldest item first.** The report shows you the oldest lot in the warehouse with age, quantity and location. That one item is almost always the best starting point: visible, concrete, immediately addressable.

**Compare warehouse locations.** If old stock is concentrated in one location, the goods may be in the wrong market. Sometimes the solution is not a discount but a relocation to where the demand sits.

**Double-check best-before products.** For batch-tracked goods, put the remaining shelf life next to the stock age straight away: the [batch report](https://blog.getbyrd.com/en-gb/expiring-batches-best-before-byrdai?hsLang=en-gb) shows whether old stock is also under time pressure.

**Expert tip:**

Read the ageing together with the sales velocity. Old stock on a product that turns over well points to an order that was too large in one go; the sell-through sorts that out on its own. Old stock on a product with no movement is a slow mover in the making, and the earlier you spot it, the more options you still have.

![inventory aging byrdAI](https://blog.getbyrd.com/hs-fs/hubfs/Screenshot%202026-07-24%20at%2014.46.05.png?width=1140&height=213&name=Screenshot%202026-07-24%20at%2014.46.05.png)

Build a live, persisted HTML dashboard artifact that shows how long my on-hand stock has been sitting since goods receipt, pulling fresh data from byrd every time it opens. Single self-contained HTML file, light mode only.

## Data source

- Main tool: report\_inventory\_aging (byrd MCP), called once with { min\_age\_days: 0 }; filter client-side.

- Row fields: product\_name, sku, product\_type, warehouse\_id, current\_stock, received\_at (nullable), age\_days (nullable), aging\_bucket ("0-30" | "31-90" | "91-180" | "180+"; treat anything else / missing receipt date as "unknown").

- Also call get\_merchant\_info once and use its warehouses list (id, name/display\_name) to translate warehouse\_id into a readable name; label unresolvable ids with a short placeholder instead of a raw UUID.

## Tech & style

- Chart.js v4 and Grid.js v5 from the allowed CDN, no other libraries, system font stack.

- Accent turquoise #62C2AF (#2F7A68 for links), text #293141, secondary #4E5664, borders #E5EAEE, page #FAFAFA, cards #fff.

- Age-bucket colours: 0-30d turquoise #62C2AF, 31-90d yellow #EBB94A, 91-180d amber #F2A03D, 180+d red #FD5C63, unknown grey #9CA0A8.

## Layout (top to bottom)

1. Header: eyebrow "Inventory health - stock age", H1 "How long your stock has been sitting", turquoise accent rule, subtitle "on-hand stock aged by goods-receipt date" + last-updated time. No logo.

2. Controls card: minimum-age buttons All / 31+ / 91+ / 181+ days (client-side filter); warehouse dropdown (populated from the data); min-units-on-hand select; "Hide test SKUs" checkbox.

3. Four KPI cards: Product lines shown (of N on hand), Units on shelf, Aged 180+ days (lines + % of units), Oldest stock (days + product name).

4. Two charts side by side: "Units by stock age" (bars per age bucket incl. Unknown when present, legend with lines + units per bucket) and "Oldest stock (top 12)" (horizontal bars of age in days, coloured by bucket, SKU on axis; product, units, received date and warehouse in tooltip).

5. Recommended actions: prioritise the single oldest lot (name, age, units, warehouse), review stock sitting 180+ days, flag the warehouse holding the most aged units, cross-check expiry dates for aged lots, clean up test SKUs and lines missing a goods-receipt date.

6. Grid.js table (sortable, searchable, 12 rows/page) sorted oldest first: SKU (hover copy button + open-in-byrd link to https://app.getbyrd.com/inventory/products/all?q=<sku>&fields=sku), Product, Warehouse, Units, Received (YYYY-MM-DD or "-"), Age ("412d" or "-"), Age band as a colour-coded badge. Above it: "Showing N lines" + "Copy N SKUs" button (de-duplicated).

7. Footer explaining: age = days since goods receipt at the warehouse; lines without a receipt date show as Unknown; recommendations reflect the full dataset while table, KPIs and charts follow the filters.

## Details

- Thousands separators; dates as YYYY-MM-DD. Escape all dynamic HTML.

- Custom positioned tooltip div driven by data-tip attributes (native tooltips don't work in the sandbox).

- Handle a missing connector gracefully; show loading and error states.

Finish by verifying the rows load and charts render without console errors.

## From report to routine: early warning systems for your stock

**The monthly age check.**   
"On the first of the month, send me the age distribution of my stock and the 10 oldest items, with the change versus the previous month." If the 180-day band is growing, you know immediately and not first at stocktake.

**The old-stock trigger.**  
 "Let me know when an item crosses the 180-day mark, with product, quantity, warehouse and tied-up stock value." Every new case lands with you individually, while it is still small.

**The relocation analysis.**   
"Show me old stock per warehouse and compare it with the destination countries of my orders over the last 90 days." One question, two byrd data sources, and a well-founded decision on whether goods should change location.

**The stocktake preparation.**   
Before the next count: "Create a list of all items over 180 days with storage-location hints for the counting team." Old items are the most common candidates for discrepancies, so the team gets them prioritised.

## **See at a glance how old your inventory really is.**

As a byrd customer, you connect byrdAI to Claude or ChatGPT in around 5 minutes and copy the (freely adjusted) ageing prompt from our [byrdAI page](https://www.getbyrd.com/uk/byrd-ai) or below this section. Not a byrd customer yet? byrdAI comes only with byrd fulfilment, as the first European 3PL with an MCP server. [Talk to us](https://www.getbyrd.com/uk/byrd-ai#byrdai-cta).

### **Example prompt for the inventory ageing report (adjust it however you like).**

Build a live, persisted HTML dashboard artifact that shows how long my on-hand stock has been sitting since goods receipt, pulling fresh data from byrd every time it opens. Single self-contained HTML file, light mode only.

## Data source

- Main tool: report\_inventory\_aging (byrd MCP), called once with { min\_age\_days: 0 }; filter client-side.

- Row fields: product\_name, sku, product\_type, warehouse\_id, current\_stock, received\_at (nullable), age\_days (nullable), aging\_bucket ("0-30" | "31-90" | "91-180" | "180+"; treat anything else / missing receipt date as "unknown").

- Also call get\_merchant\_info once and use its warehouses list (id, name/display\_name) to translate warehouse\_id into a readable name; label unresolvable ids with a short placeholder instead of a raw UUID.

## Tech & style

- Chart.js v4 and Grid.js v5 from the allowed CDN, no other libraries, system font stack.

- Accent turquoise #62C2AF (#2F7A68 for links), text #293141, secondary #4E5664, borders #E5EAEE, page #FAFAFA, cards #fff.

- Age-bucket colours: 0-30d turquoise #62C2AF, 31-90d yellow #EBB94A, 91-180d amber #F2A03D, 180+d red #FD5C63, unknown grey #9CA0A8.

## Layout (top to bottom)

1. Header: eyebrow "Inventory health - stock age", H1 "How long your stock has been sitting", turquoise accent rule, subtitle "on-hand stock aged by goods-receipt date" + last-updated time. No logo.

2. Controls card: minimum-age buttons All / 31+ / 91+ / 181+ days (client-side filter); warehouse dropdown (populated from the data); min-units-on-hand select; "Hide test SKUs" checkbox.

3. Four KPI cards: Product lines shown (of N on hand), Units on shelf, Aged 180+ days (lines + % of units), Oldest stock (days + product name).

4. Two charts side by side: "Units by stock age" (bars per age bucket incl. Unknown when present, legend with lines + units per bucket) and "Oldest stock (top 12)" (horizontal bars of age in days, coloured by bucket, SKU on axis; product, units, received date and warehouse in tooltip).

5. Recommended actions: prioritise the single oldest lot (name, age, units, warehouse), review stock sitting 180+ days, flag the warehouse holding the most aged units, cross-check expiry dates for aged lots, clean up test SKUs and lines missing a goods-receipt date.

6. Grid.js table (sortable, searchable, 12 rows/page) sorted oldest first: SKU (hover copy button + open-in-byrd link to https://app.getbyrd.com/inventory/products/all?q=<sku>&fields=sku), Product, Warehouse, Units, Received (YYYY-MM-DD or "-"), Age ("412d" or "-"), Age band as a colour-coded badge. Above it: "Showing N lines" + "Copy N SKUs" button (de-duplicated).

7. Footer explaining: age = days since goods receipt at the warehouse; lines without a receipt date show as Unknown; recommendations reflect the full dataset while table, KPIs and charts follow the filters.

## Details

- Thousands separators; dates as YYYY-MM-DD. Escape all dynamic HTML.

- Custom positioned tooltip div driven by data-tip attributes (native tooltips don't work in the sandbox).

- Handle a missing connector gracefully; show loading and error states.

Finish by verifying the rows load and charts render without console errors.

## **Frequently asked questions about inventory management with byrdAI**

**How is the stock age calculated?**   
From the goods-receipt date in the byrd warehouse, per item. The report groups into the bands 0 to 30, 31 to 90, 91 to 180 and over 180 days; items without a recorded receipt date are reported separately.

**What is the difference from the slow-mover report?**   
The slow-mover report looks at sales activity (does a product sell or not). Inventory ageing looks at how long stock has been sitting, even for products that are selling. That is why ageing warns earlier: it finds the problems that are not problems yet.

**Does the report help me with storage costs?**   
Directly. Old stock occupies storage locations you pay for monthly. Systematically reducing the 180-day band cuts occupied space and therefore running costs, on top of the capital freed up.

**What does byrdAI cost?**   
During the beta, byrdAI is included free in your account for byrd customers.

 

## As seen on

  

  

  

  

  

  

  

[![Getbyrd](https://blog.getbyrd.com/hubfs/raw_assets/public/Getbyrd_May2021/images/Footer_logo.svg "Getbyrd")](https://getbyrd.com/en/)

<https://www.facebook.com/getbyrd/> <https://www.instagram.com/getbyrd> <https://www.linkedin.com/company/byrd> <https://www.getbyrd.com/blog?_ga=2.231129759.1224400511.1621482964-626381589.1621482964>

- Services 
    - [Fulfilment](https://getbyrd.com/uk/fulfilment)
    - [New Business](https://www.getbyrd.com/uk/new-businesses)
    - [Established Retailers](https://www.getbyrd.com/uk/established-retailers)
    - [Enterprises](https://www.getbyrd.com/uk/enterprise)
    - [European Fulfilment Network](https://getbyrd.com/uk/european-fulfilment-network)

- Integrations 
    - [Amazon FBM](https://getbyrd.com/uk/amazon-fulfilment)
    - [Billbee](https://www.getbyrd.com/uk/billbee-fulfilment)
    - [ChannelEngine](https://www.getbyrd.com/uk/integration-channelengine)
    - [Mirakl](https://getbyrd.com/uk/mirakl-fulfilment)
    - [PlentyONE](https://www.getbyrd.com/uk/plentymarkets-fulfilment)
    - [Shopify](https://www.getbyrd.com/uk/shopify-fulfilment)
    - [Shopware](https://www.getbyrd.com/uk/shopware-fulfilment)
    - [WooCommerce](https://www.getbyrd.com/uk/woocommerce-fulfilment)
    - [PrestaShop](https://www.getbyrd.com/uk/prestashop-fulfilment)
    - [Xentral](https://getbyrd.com/en/xentral-integration)

- Locations 
    - [Fulfillment Network Europe](https://getbyrd.com/uk/european-fulfilment-network)
    - [UK](https://getbyrd.com/uk/european-fulfilment-network/uk)
    - [Austria](https://www.getbyrd.com/uk/european-fulfilment-network/austria)
    - [France](https://www.getbyrd.com/uk/european-fulfilment-network/france)
    - [Germany](https://www.getbyrd.com/uk/european-fulfilment-network/germany)

- Partner 
    - [Our partner network](https://getbyrd.com/en/partner)
    - [Become a partner](https://getbyrd.com/en/partnerships)

- About us 
    - [Team](https://getbyrd.com/en/team)
    - [Blog](https://blog.getbyrd.com/en-gb)
    - [Our Customers](https://getbyrd.com/en/references)
    - [Press](https://getbyrd.com/en/press)
    - [Career](https://getbyrd.com/en/jobs)
    - [Sustainability](https://www.getbyrd.com/uk/sustainability-at-byrd)

- Additional links 
    - [Terms and Conditions](https://getbyrd.com/en/tac)
    - [Privacy Policy](https://getbyrd.com/en/privacy)
    - [Imprint](https://getbyrd.com/en/imprint)
    - [Contact](https://getbyrd.com/en/contact)
    - [Help](https://support.getbyrd.com/en/knowledge-base)

```json
{
  "@context" : "https://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "Phillip Pitsch",
    "url" : "https://blog.getbyrd.com/en-gb/author/phillip-pitsch"
  },
  "dateModified" : "2026-08-03T09:50:30.998Z",
  "datePublished" : "2026-08-03T09:50:30.000Z",
  "headline" : "Inventory ageing: how long has your stock been sitting? | byrd",
  "image" : [ "https://blog.getbyrd.com/hubfs/Inventory%20Aging%20byrdAI.png" ],
  "mainEntityOfPage" : {
    "@id" : "https://blog.getbyrd.com/en-gb/inventory-ageing-stock-age-byrdai",
    "@type" : "WebPage"
  },
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://api.hubapi.com/avatars/v1/signed-uris/1ClMKDwgEEgtnZXRieXJkLmNvbRiayvb9BSD_sesFKidicmFuZGluZzphcGk6d2ViOnVzZXItdHJhZmZpYzp1cy1lYXN0LTEyDDIuMjAyLjEyNS43MBIZAHsNx2Q747acIaTrTi2IsGzRxJC60wqRSg"
    },
    "name" : "byrd technologies"
  }
}
```