If you sell food, cosmetics, supplements, or anything perishable, expiration dates and lots matter. Here is a practical POS-first workflow that helps you reduce waste and handle recalls calmly.
The problem nobody wants to own: perishable inventory
Perishables create a special kind of stress. You can do everything right (buy carefully, store correctly, sell consistently) and still lose money if you cannot see what is expiring soon.
And if you ever get a supplier notice about a lot number, the "how fast can we find the affected items" question becomes real, immediately.
The good news: you do not need an enterprise ERP to get 80% of the benefit. You need a POS workflow that treats expiration and lot as normal parts of receiving and selling.
What lot + expiration tracking actually means
Think of it as adding two extra pieces of metadata to your inventory:
- Lot/batch: which shipment or production batch the item came from
- Expiration/Best-by: the date after which the item should not be sold (or is no longer ideal)
You are not tracking this for "analytics". You are tracking it so that daily decisions are easier:
- What should we discount first?
- What should we move to the front shelf?
- What should we stop reordering because it is not moving?
A practical workflow (how we would build it in a small shop)
1) Receiving: capture lot and expiration at the point of truth
The point of truth is when the box arrives and somebody opens it. If you wait until "later", it never happens.
Two approaches work well:
- Fast path: only capture expiration for items that actually expire soon (fresh food, prepared items).
- Strict path: capture lot + expiration for everything in the perishable category (cosmetics, supplements, dairy, etc.).
Tip: do not make staff type long strings. If the lot is printed as a barcode or QR, scan it. If it is printed as text, keep it short and standardized (for example: supplier code + date).
2) Put FIFO on rails (first-in, first-out)
FIFO is the concept. The actual behavior is: older stock gets sold first.
In practice, FIFO fails because people are busy. So the trick is to build a routine that makes FIFO the default:
- When stocking shelves, older lots go in front.
- When building prep items, oldest ingredients get used first.
- When staff are unsure, the POS view shows which lot should be sold next.
3) Use a "7-day and 30-day" report
You want two horizons:
- 7-day window: what must move now (discount, bundle, featured placement)
- 30-day window: what should change in purchasing (reduce next order, stop a slow SKU)
Even if your POS does not have perfect lot-level reporting, you can approximate with receiving dates and simple category rules.
4) Build a discount pattern that does not feel desperate
The goal is to move inventory without training customers to wait for markdowns. Two patterns work consistently:
- Bundles: "buy X, get Y" where the near-expiration item is the Y.
- Happy-hour style windows: short, predictable discount windows (end of day, end of week).
In your POS, keep discounting clean: use named discounts so reporting remains accurate and staff cannot freestyle random price changes.
5) Recall readiness: practice once before it matters
This is the part that feels dramatic, but it is worth 15 minutes.
Pick one item category and do a mini "recall drill":
- Can we locate all units received from a specific supplier shipment?
- Can we identify what sold and on which dates?
- Can we quickly stop selling the affected SKUs?
If you cannot answer those questions quickly, your system is relying on heroics.
Where M&M POS fits
A POS should be more than a checkout button. It should be the place your inventory story stays consistent: items, categories, receiving, adjustments, and reporting.
If you want a POS that keeps operations simple while still being capable, try M&M POS. You can download M&M POS and build a lightweight expiration workflow using categories, clear item naming, and consistent receiving habits.
One-page SOP (copy/paste)
- On receiving: record expiration for perishables; record lot for high-risk items.
- On stocking: older lots in front; label shelves when needed.
- Daily: check 7-day expiring list; create bundles/discount windows.
- Weekly: review 30-day expiring list; adjust purchasing.
- Monthly: run one recall drill on a category.