In this guide 6 sections
Record the batch and best before date at receiving. Pick the earliest expiry first, block sales below a minimum remaining shelf life and mark down near date stock on a schedule. Keep the batch trail, so a recall can name every order that held the lot.
Step 1: record the lot and date at receiving
Receiving is the one moment when the date is easy to capture, because the delivery note rarely lists it and a packer must read the carton. Add three fields to the goods received screen: supplier lot code, best before or use by date, and quantity in that lot.
Each product, lot and date is its own stock line. Two pallets of the same biscuit with different dates must never merge into one count, or the dates vanish the moment a second delivery joins the shelf.
Refuse at the dock too. A carton already under your minimum goes back with a note, so it never enters stock and never gets picked by mistake.
- Product and pack size: single, case or multipack
- Supplier lot or batch code
- Best before or use by date, and which of the two it is
- Quantity received and bin location
- Receiving date and the person who checked the carton
Step 2: pick the earliest expiry first
The rule is first expired, first out, often shortened to FEFO, and the pick list names the lot and the bin to take from, not just the product. Packers do not choose. The list tells them.
Storage has to support it. Put the older lot at the front of the shelf or in the lower bin, and mark the pallet face with the date in large print. Where space is tight, give each lot its own bin.
Subscriptions and repeat orders complicate picking. A customer’s next box should not take the freshest stock while older lots wait, so the system picks the earliest date that still clears the minimum life.
Step 3: block sale below a minimum remaining shelf life
Set a minimum remaining shelf life for each product group, because a shopper expects months on a tin of tomatoes and only days on a loaf. The rule sits on the product. Sell it only while at least that many days remain.
Check the rule again at pick time. If the only stock left is under the line, the product shows as out of stock or moves to the clearance listing in the next step.
Different buyers can have different lines. A trade customer who reorders weekly may accept shorter life than someone buying a gift hamper. Keep the default simple. Add exceptions only where they matter.
Step 4: mark down stock that is near date
A report each morning lists the lots that will cross the markdown line in the coming days, grouped by product and bin. The buyer sees quantity and days left. Nothing else is needed to decide.
Run markdowns in steps: first a banner on the page, then a bundle, then a clearance listing with its own label stating the date. Some stores give the final remainder to a food bank, which needs a record of the lot and quantity handed over.
Never edit the original product. Move near date stock to a separate clearance SKU, so the sales history and reorder levels of the normal product stay clean.
- Lots crossing the markdown line this week, by bin
- Banner, bundle and clearance steps with the days left for each
- Clearance SKU linked to the original product
- Donation record: lot, quantity, date and receiver
- Write-off entry for anything past its date
Step 5: trace a batch when a recall happens
A recall notice arrives with a supplier name, a product, a lot code and a date range. Search by that lot. The system returns the stock still on your shelves, the orders already shipped and the customers who received them.
Quarantine comes first. Blocked bins cannot be picked, and any open order holding the lot is paused and flagged for a person to review before it ships. Export the customer list next and email each buyer the product name, the lot and the action to take, with the date the notice went out.
Test the trace before you need it. Choose one lot at random, find every order that touched it and time the exercise, then ask why anything took longer than an afternoon. Repeat the drill each quarter.
- Lot code, supplier and received date
- Bins and quantities still on hand
- Orders shipped with the lot, by customer and date
- Orders paused at pick
- Notice sent and reply received
Batch and expiry control sheet
Four blocks share one page. The goods received log has columns for product, lot, date type, date, quantity and bin. A shelf life table gives the minimum remaining life per product group, and the markdown schedule sets days left against the action to take. The recall block has lines for the lot, stock on hand, orders shipped and notices sent.
Open a blank worksheet to printQuestions owners ask
What is the difference between best before and use by?
Best before is about quality. Food is often still safe after that date, but use by is about safety, and in most markets food past its use by date must not be sold. Record which type each product carries.
Do dry goods need lot tracking if they last a year?
Yes, for the recall. A lot code lets you pull exactly the affected stock and write to exactly the affected buyers. Without one, every unit of that product is suspect.
Can a spreadsheet do this?
Yes, for a short list of products. It struggles with picking by date and with finding every order for one lot, and those are the jobs that count when a recall lands.
How often should shelf dates be checked by hand?
Walk a sample of bins each week. Compare the carton dates with the system, and treat any mismatch as a receiving habit to fix, not just a count to correct.