---
title: "Best-before under control: spot expiring batches with byrdAI | byrd"
description: Which batches expire in the next 60 days, where are they, and what should you sell off first? Here is how to use byrdAI's batch report in Claude or ChatGPT.
image: https://blog.getbyrd.com/hubfs/Expiring%20lots.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/expiring-batches-best-before-byrdai)
- [Deutsch](https://blog.getbyrd.com/ablaufende-chargen-mhd-byrdai)
- [English](https://blog.getbyrd.com/en/expiring-batches-lot-tracking-byrdai)
- [Español](https://blog.getbyrd.com/es/lotes-que-caducan-trazabilidad-byrdai)
- [Français](https://blog.getbyrd.com/fr/suivi-des-lots-peremption-byrdai)
- [Italiano](https://blog.getbyrd.com/it/lotti-in-scadenza-byrdai)

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

# Best-before under control: spot expiring batches with byrdAI | byrd

See which batches are about to expire with byrdAI, before their value is lost.

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

 : July 28, 2026  : August 03, 2026

For [merchants selling food, drinks and supplements](https://www.getbyrd.com/uk/food-beverages-supplements) or [cosmetics and beauty products](https://www.getbyrd.com/uk/health-beauty), the best-before date is a silent clock ticking away in the warehouse. When a batch expires, the goods can no longer be sold and the purchase price is lost in full, plus the storage costs for every month it sat there beforehand. The bitter part: the loss was almost always avoidable. With enough lead time, expiring stock is not a write-off but a discount campaign, a bundle, or a free gift with every order.

byrd's batch report from [byrdAI](https://www.getbyrd.com/uk/byrd-ai) gives you exactly that lead time. It came about at the direct request of customers: asked what they would most like to get out of their byrd data, one of the first answers was "which products are about to expire, so I can run a campaign".

## **The problem: you only see the best-before date once it is too late**

**The clock runs invisibly.**   
Batch data sits in the system, but almost nobody checks 40 batches across three warehouses every day. Expiring stock often only becomes obvious at stocktake, and by then it is already worthless.

**FEFO does not happen on its own in your head.**   
In the warehouse, byrd picks by FEFO (First Expired, First Out). But the commercial side of FEFO, aiming promotions and campaigns at the oldest batch in good time, needs a visibility that a WMS alone does not provide.

**Several warehouses, several truths.**   
The same product may still have 6 months left in Germany and only 5 weeks in France. Without a view per warehouse and batch, you plan past reality.

## **How to build the report with byrdAI**

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

"Show me all batches expiring in the next 60 days."

byrdAI returns every affected batch with product, batch number, warehouse, expiry date, remaining shelf life and quantity. With the ready-made dashboard prompt from the [byrdAI page](https://www.getbyrd.com/uk/byrd-ai), that becomes a live dashboard with a selectable horizon (30, 60, 90, 180 days), traffic-light colours by urgency, and a view of where the most at-risk units sit.

![Ablaufende Chargen byrdAI](https://blog.getbyrd.com/hs-fs/hubfs/Screenshot%202026-07-21%20at%2014.23.51.png?width=1145&height=787&name=Screenshot%202026-07-21%20at%2014.23.51.png)

In our sample range, around 2,300 units are in batches that expire in less than 30 days. So this is not just a statistic, it is a to-do list with a deadline.

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

**Under 30 days: sell off, give away or dispose.**   
Anything that will not turn over normally within four weeks belongs in a campaign: a shop discount, a free add-on to matching orders, a bundle with a bestseller. Whatever even that cannot save should be written off deliberately, rather than costing more storage space. The report also shows batches that have already expired: they only block space now.

**30 to 90 days: the campaign zone.**   
Here there is enough time for planned promotions at normal margins: newsletters, promotional pricing, marketplace deals. Act here and you rarely need to panic under 30 days.

**Think per warehouse.**   
If the at-risk stock is concentrated in one location, a targeted sell-off in that market is worth it before goods are moved across Europe.

**Expert tip:**  
Measure yourself against one simple metric: units written off per quarter. Merchants who run the batch report as a monthly routine get that number heading towards zero quickly, because write-offs turn into plannable campaigns.

![byrdAI abgelaufene Chargen](https://blog.getbyrd.com/hs-fs/hubfs/chargen%20management%20byrdAI.png?width=1151&height=452&name=chargen%20management%20byrdAI.png)

 From report to routine: best-before management on autopilot

**The monthly best-before digest.**   
"On the 1st of every month, send me all batches with less than 90 days of shelf life left, grouped by warehouse, as a short summary in Slack." From now on your team plans campaigns with lead time, not under time pressure.

**The campaign trigger.**   
"When a batch drops below 60 days of shelf life, draft me a campaign proposal directly: affected products, quantity, capital tied up, and a draft newsletter copy." The warning turns into a half-finished campaign.

**The write-off list for accounting.**   
Already-expired batches as a clean table with quantity and warehouse, once a quarter, automatically. Unloved busywork that nobody has to do by hand any more.

**Combined with your stock.**   
"Which of the expiring batches belong to products where newer batches are already in the warehouse?" That is exactly where the pressure to sell off is highest, because the old batch is blocking the new one.

## **Lead time, not write-offs**

As a byrd customer, you connect byrdAI to Claude or ChatGPT in around 5 minutes and copy the batch 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 shelf-life report (adjust it however you like).**

Build a live, persisted HTML report artifact that shows my lot-tracked products approaching or past expiry, pulling fresh data from byrd every time it opens. Single self-contained HTML file, light mode only.

## Data source

- Main tool: report\_expiring\_lots (byrd MCP), called with { within\_days: <30 | 60 | 90 | 180 | 365, default 90> }. Cache per horizon.

- Row fields: product\_name, sku, lot\_number, warehouse\_id, expiry\_date, days\_to\_expiry (negative = already expired), stock\_in\_lot.

- Also call get\_merchant\_info once and use its warehouses list (id, code, name/display\_name, country\_code) to translate warehouse\_id into a readable name shown as a small country-code chip + label. If an id can't be resolved, label it "Warehouse A/B/..." instead of showing 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.

- Time-to-expiry tiers: <=30d (incl. expired) red #E5484D, 30-90d orange #F97316, 90-180d yellow #F5C518, 180d+ green #22A06B.

## Layout (top to bottom)

1. Header: eyebrow "Inventory health - expiry & shelf life", H1 "Products approaching expiry", turquoise accent rule, subtitle with horizon + "sorted most urgent first" + last-updated time. No logo.

2. Controls card: horizon buttons 30 / 60 / 90 / 180 days / 12 months (re-fetches); status filter All / <=30d / 30-90d / 90-180d / 180d+; warehouse dropdown (populated from the data, with lot counts); "Hide test SKUs" checkbox.

3. Four KPI cards: Lots at risk (of N), Units at risk, Already expired (with units past expiry), Expiring <= 30 days (with units due soon).

4. Two charts side by side: "Units at risk by time to expiry" (bars per time bucket with legend showing lots + units) and "Most units at risk (top 12 lots)" (horizontal bars coloured by tier; tooltip with lot number, units, expiry date and warehouse).

5. Recommended actions (FEFO-driven): pull expired stock from sellable inventory, prioritise FEFO picking for lots expiring within 30 days, plan promotions for lots expiring later in the window, focus on the warehouse holding the most at-risk units, clean up test SKUs. Friendly empty state if nothing is at risk.

6. Grid.js table (sortable, searchable, 12 rows/page) sorted most urgent first: SKU (hover copy button + open-in-byrd link to https://app.getbyrd.com/inventory/products/all?q=<sku>), Product, Lot, Warehouse (chip + name), Expiry date, Time to expiry ("in 9d" / "12d ago", tier-coloured), Units. Above it: "Showing N lots" + "Copy N SKUs" button (de-duplicated).

7. Footer explaining: shows lots expiring on or before today + horizon; expired lots always appear with negative day counts; units are on-hand stock per lot per warehouse.

## 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 batch management with byrdAI**

**Which products is the report relevant for?**   
Anything with batch tracking and a best-before date: food, drinks, supplements, cosmetics, pet food. byrd supports batch-tracked storage including FEFO picking, among others in [fulfilment for food and drink](https://www.getbyrd.com/uk/food-beverages-supplements), [fulfilment for cosmetics and beauty](https://www.getbyrd.com/uk/health-beauty), or [fulfilment for pet supplies](https://www.getbyrd.com/uk/pet-supplies).

**What does FEFO mean?**   
First Expired, First Out: the batch with the shortest shelf life leaves the warehouse first. byrd picks batch-tracked products by this principle.

**Do I also see stock that has already expired?**   
Yes. Expired batches appear in the report, with a negative remaining shelf life. They are the first candidates for write-off or disposal.

**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-03T08:38:54.273Z",
  "datePublished" : "2026-07-28T11:55:21.000Z",
  "headline" : "Best-before under control: spot expiring batches with byrdAI | byrd",
  "image" : [ "https://blog.getbyrd.com/hubfs/Expiring%20lots.png" ],
  "mainEntityOfPage" : {
    "@id" : "https://blog.getbyrd.com/en-gb/expiring-batches-best-before-byrdai",
    "@type" : "WebPage"
  },
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://api.hubapi.com/avatars/v1/signed-uris/1ClMKDwgEEgtnZXRieXJkLmNvbRiayvb9BSD_sesFKidicmFuZGluZzphcGk6d2ViOnVzZXItdHJhZmZpYzp1cy1lYXN0LTEyDDIuMjAyLjEyNS43MBIZAHsNx2Q747acIaTrTi2IsGzRxJC60wqRSg"
    },
    "name" : "byrd technologies"
  }
}
```