Lot & Expiry Tracking
Record which lot every unit came from and when it expires. When a recall or a short-dated batch question comes up, you can answer it in seconds: which orders shipped that lot, and where the rest of it is sitting.
Turning it on, per SKU
Lot tracking is a per-SKU setting, so you can track your perishable or regulated products without changing anything for the rest of your catalog. Open the SKU from the SKU Registry, choose Edit, and switch on Track lots & expiry dates. If every batch of that product carries an expiry date, also switch on Require expiry date so a receipt can never be recorded without one.
Stock you already have on hand stays as untracked stock — nothing to backfill, no data entry. Lots build up naturally as new receipts arrive, and sales use up the untracked stock first, so a SKU converges to fully lot-tracked on its own.
Capturing lots at receiving
Once a SKU tracks lots, every stock-in asks for the lot. When you receive a purchase order, each lot-tracked line shows a lot number field and an expiry date. When you add units through Adjust Stock (a return, found inventory), the same fields appear there. Type the lot number exactly as it appears on the case or the supplier paperwork.
Receiving the same lot number again adds to the same lot — and the expiry date has to match what you entered the first time, so one lot can never carry two different dates by accident. If a shipment contains two lots of the same product, receive the line twice, once per lot.
Removing stock never asks for a lot: sales and removals automatically use the earliest-expiring lot first (untracked stock before any dated lot). That mirrors how a well-run warehouse rotates stock, so the recorded lots stay close to what physically ships.
Carpe Inventory IQ records lot consumption based on earliest-expiry-first rotation — it can’t see which physical case your warehouse actually picked. Keep rotating stock oldest-first on the shelf, and use the reassign tool to correct the records whenever a count shows they’ve drifted.
Where your lots live — and the recall trail
Open any lot-tracked SKU and you’ll find a Lotssection: every lot with its expiry date, days remaining, and quantity at each location, earliest expiry first. The history icon on a lot opens its full movement trail — every receipt, every order that consumed it, every transfer. When a supplier calls about a bad batch, that history is your answer to “which orders shipped this lot, and how much is still on the shelf?”
The Reassign tool in the same section moves quantities between lots (or between a lot and untracked stock) without changing your total on-hand — for fixing a lot number that was typed wrong at receiving, or correcting drift found during a physical count.
The Lot Expiry report
Reports → Lot Expiry lists every dated lot with remaining stock, earliest expiry first, with 30/60/90-day windows and totals for expired and at-risk units. Check it before a big promotion or a purchasing cycle — short-dated stock you can discount beats expired stock you write off.
Expiry tracking is reporting-only today. Expired stock still counts as sellable in the quantities pushed to your channels — the report tells you it’s there, but it doesn’t withhold it. Remove expired units with a stock adjustment (reason: “Expired”) when you pull them from the shelf. Automatic exclusion of expired stock is planned.
Good to know
- Amazon FBA stock is not lot-tracked. Amazon manages expiry-dated FBA inventory in its own warehouses with its own first-expired-first-out rules. Lots apply to the stock you control.
- Bulk CSV stock-ins don’t carry a lot column yet — rows for lot-tracked SKUs are skipped with a clear message. Use PO receiving or a single adjustment for those.
- BOM builds and physical counts put their stock into untracked stock for now; use Reassign if you know the lot.
- Turning tracking off moves remaining lot balances to untracked stock. History is kept, but re-enabling later starts fresh.
- Lot tracking can’t be combined with “allow negative inventory” on the same SKU.