What lot and batch tracking is
Lot (or batch) tracking records stock not just as a quantity of an item, but as identified lots — each with its own lot number, production date, expiry date and status. Goods received in a batch keep that identity through every subsequent movement, so at any moment the system can answer: which lots of this item do I hold, in which locations, how much of each, when does each expire, and which receipt did each arrive on. On top of that identity sit the three disciplines this guide covers: FEFO issue, expiry monitoring and status-based quarantine.
In inventory management software the lot layer sits between the aggregate stock balance and the movement ledger: the balance says how much of an item a location holds, and the lot detail says which batches make that quantity up. Items that do not need batch control simply skip the layer — it is switched on per item, driven by the item master's issue-method and shelf-life settings.
Why shelf-life stock needs lot control
Three business realities make lot tracking non-optional for perishable and batch-made goods:
- Expiry is a financial event. Every lot that dates out on the shelf is a straight write-off. Without per-lot expiry dates the loss is invisible until stock-take; with them, near-expiry stock is a dated worklist you can act on.
- Regulators ask by batch. FSSAI-governed food businesses, pharma quality systems and chemical-safety audits all ask batch-shaped questions: which lot went where, and can you prove it? Answering from delivery challans and memory is not an answer.
- Recalls happen at lot granularity. When a supplier recalls a batch, the cost of the recall is set by how precisely you can isolate it. Lot tracking turns "quarantine everything and check" into "block one lot number in one minute."
The anatomy of a lot
A lot record in a serious inventory system carries a small, load-bearing set of fields. In Fast Inventory Software each lot holds:
| Field | What it holds | What it enables |
|---|---|---|
| Lot / batch number | The identity, from the supplier's batch or your own production run | Traceability and recall by number |
| Production date | When the batch was made | Age analysis, shelf-life calculation |
| Expiry date | When the batch dates out | FEFO ordering, expiry dashboard buckets, hard exclusion |
| Status | Available, hold, damage or closed | Quarantine and release without moving stock |
| Contents & rate | Item, quantity and per-lot rate | Lot-rate valuation and partial consumption |
| Location history | Which store/location holds the lot, as an append-only history | Where-is-it-now and where-has-it-been answers |
Two details matter more than they look. The per-lot rate means valuation can be computed lot-wise, not just at a single item cost — important when purchase prices move between batches. And the append-only location history means a lot's movements are never overwritten: the latest entry is the current state, and the trail behind it is the audit answer.
FEFO vs FIFO — and why the difference matters
FIFO (First-In-First-Out) issues the oldest-received stock first. FEFO (First-Expiry-First-Out) issues the soonest-expiring stock first. Most of the time they agree — older receipts usually expire earlier. They part company exactly when it costs money: when a later delivery arrives carrying a shorter-dated batch, FIFO happily issues the long-dated older stock while the short-dated newcomer quietly runs out its shelf life at the back of the rack.
| Aspect | FIFO | FEFO |
|---|---|---|
| Issue order | Oldest receipt first | Nearest expiry first |
| Data needed | Receipt date | Expiry date per lot |
| Expired stock | Not inherently blocked | Hard-excluded from eligibility |
| Best for | Non-perishable goods where age ≈ expiry | Pharma, food, dairy, chemicals — anything with a dated shelf life |
The practical rule: if an item carries an expiry date, its issue discipline should be FEFO. On the item master this is a per-item setting — the management/issue method — alongside minimum shelf life, so batch items follow FEFO while plain items issue normally.
FEFO as a hard rule, not a work instruction
The decisive design question is where FEFO lives. If it lives in a work instruction — "always pick the shortest-dated carton" — it will be violated on exactly the days the store is busiest. In Fast Inventory Software it lives in the issue logic itself, as two mechanical behaviours:
- Expired lots are excluded as a hard eligibility filter. They do not appear as issuable stock at all — an expired batch cannot be picked by mistake, because it is not offered.
- Eligible lots are ordered by expiry date. The nearest-expiry lot is consumed first, automatically, every time — shelf life gets used instead of wasted.
This is the difference between software that reports FEFO compliance and software that produces it. The same principle shows up elsewhere in good stock control — counts that record variance instead of silently overwriting stock, adjustments that post documents instead of editing balances: put the control in the mechanism, not the memo. See the Lot, Batch & Expiry (FEFO) feature page for the product view.
Writing off expired stock every quarter?
We can show FEFO issue, the expiry dashboard and lot quarantine working on live data — and what your near-expiry action list would look like.
The expiry dashboard — windows, not surprises
Blocking expired stock is the safety net; the profit lever is acting before expiry. That is the job of the expiry dashboard, which buckets every available lot by expiry window: previous (already expired), today, tomorrow, this week, this month, this quarter, six months and a year. Each bucket is a worklist with a deadline attached:
- This week / this month — push these lots first: prioritise them into production or dispatch, offer them to high-turnover customers, or discount them while they still have sellable life.
- This quarter and beyond — planning information: if a six-month bucket holds more than six months of demand, purchasing bought too much, and the finding belongs in the next reorder-level review.
- Previous (expired) — the cleanup list: quarantine, then write down through a proper stock adjustment so the loss is recorded, dated and auditable.
Near-expiry alerts can also be pushed out by email, so the dashboard's nearest buckets reach the people who can act on them without being opened.
Hold, damage and quarantine without moving stock
Not all unavailable stock is expired. QC holds a suspect batch pending test results; a dropped pallet is damaged but not yet written off; a supplier asks you to freeze a lot while they investigate. The clean mechanism for all of these is lot status: a lot is marked available, on hold, damaged or closed, and anything not available is excluded from issuable stock — without physically moving a single carton.
Status-based quarantine has two virtues over the "move it to the reject cage" habit. It is instant and reversible — a QC pass flips the lot back to available with no re-handling — and it is honest in the records: quantity stays where it physically is, so counts still reconcile, while availability reflects the commercial truth. The status change itself is recorded in the lot's append-only history, so an auditor can see when a batch was held, by whom, and when it was released.
Batch genealogy and recall readiness
Because every receipt, issue and transfer of a lot-controlled item carries the lot identity, the system accumulates batch genealogy as a by-product of daily work. A recall query — supplier announces a problem with batch X — runs in minutes: how much of lot X was received and when; how much remains, in which stores; how much was issued, to which documents and destinations. The same trail answers the friendlier version of the question that customer audits ask: prove this delivery came from an in-date, released batch.
For businesses in pharma, food and beverage, dairy or chemicals, this is usually the single strongest reason to move stock control off spreadsheets: a register can record what someone remembered, but it cannot answer a lot-shaped question across a year of movements. The traceability solution page covers the genealogy use-case in depth, and the pharma and food & beverage pages cover the industry specifics.
How Fast Inventory Software implements lot & FEFO
In Fast Inventory Software, lot control is part of the core stock model, not an add-on. Each lot carries its number, production and expiry dates, status and per-lot rate; an append-only history records every location and status the lot has held; and the aggregate stock balance and immutable ledger stay in step with the lot detail on every movement.
Issue discipline is FEFO wherever the item's settings call for it: expired lots are hard-excluded, eligible lots are consumed nearest-expiry first. The lot expiry dashboard buckets available lots across the eight expiry windows, hold/damage/closed statuses handle quarantine without movement, and lot barcodes support scan-based receipt, issue and counting — counts can be taken at lot level, and any variance reconciled through the standard adjustment flow. See the Lot, Batch & Expiry (FEFO) feature page, or the shorter blog primer for the quick version.
Frequently asked questions
What is lot and batch tracking in inventory management?
Lot (or batch) tracking records stock not just as a quantity of an item, but as identified lots — each with its own lot number, production date, expiry date and status. Goods received in a batch keep that identity through every movement, so at any moment you can answer: which lots of this item do I hold, where, how much of each, when does each expire, and which receipt did each come from. It is the foundation of expiry control, FEFO issue and product recall.
What is FEFO and how is it different from FIFO?
FIFO (First-In-First-Out) issues the oldest-received stock first; FEFO (First-Expiry-First-Out) issues the stock that expires soonest first. They differ whenever receipt order and expiry order disagree — for example when a later delivery carries a shorter-dated batch. For shelf-life goods FEFO is the correct discipline: the system excludes expired lots as a hard eligibility rule and orders eligible lots by expiry date, so the nearest-expiry lot is always consumed first and expired stock can never slip into an issue.
Why should expired lots be blocked automatically instead of by procedure?
Because procedures fail on busy days. If FEFO lives only in a work instruction, an operator under pressure can still pick an expired carton. When the software applies expiry as a hard eligibility filter, expired lots simply do not appear as issuable stock — the failure mode is removed rather than discouraged. The same mechanism supports hold, damage and quarantine statuses, which exclude a lot from availability without physically moving it.
What is an expiry dashboard?
An expiry dashboard buckets every available lot by expiry window — already expired, today, tomorrow, this week, this month, this quarter, six months, a year — so near-expiry stock becomes a dated action list instead of a surprise at stock-take. Teams work the nearest buckets first: liquidate, use, return or write down short-dated lots while there is still time to act.
How does lot tracking support a product recall?
Because every movement carries lot identity, a recall query runs in minutes: given a lot number, the system shows how much was received, where it sits now, what was issued, when and against which documents. That batch genealogy — from a finished lot back to the receipt it came from — is exactly what FSSAI-regulated food businesses and pharma quality audits demand, and it is a by-product of disciplined lot tracking rather than a special project.
