In quality-sensitive industries — food, pharmaceuticals, cosmetics, and manufacturing — stock is not just a number. There are batches, expiry dates, and trails to protect. This is where FIFO, FEFO, and Lot Numbers work together to make the warehouse more accurate and safe.
1. Why Do These Three Matter?
- Product quality — items that expire sooner must leave sooner.
- Compliance — pharma and food have strict rules about batches and dates.
- Product recall — if something goes wrong, you must trace which batch went where.
- Less loss — expired stock piling up is money burned.
2. FIFO — First In, First Out
FIFO ships the stock that entered first.
- Suitable for goods without strict expiry: raw materials, components, spare parts.
- Goal: prevent goods from sitting for years at the back of the rack.
- Example: a metal component manufacturer — the January receipt batch leaves before the March batch.
3. FEFO — First Expired, First Out
FEFO ships the stock that expires soonest — not the one that entered first.
- Essential for food, beverage, pharma, cosmetics, and chemicals.
- The most recently received batch may leave first because its expiry is nearer.
- Goal: minimize expired goods and protect quality.
FIFO vs FEFO: FIFO is based on entry order; FEFO is based on expiry date. FEFO is stricter and safer for perishable products.
4. Lot Number & Serial Number
Lot Number (batch number) marks a group of products made/received together — e.g. one yogurt production on August 12.
Serial Number marks a single unique unit — e.g. one medical device with its own number.
- Traceability — know which batch came in, where it was stored, and to whom it was shipped.
- Recall — if there is a complaint, withdraw only the affected batch, not everything.
- Expiry — a lot can carry an expiration date for FEFO.
5. A Quick Comparison
| Aspect | FIFO | FEFO | Lot/Serial |
|---|---|---|---|
| Removal basis | Entry order | Expiry date | Batch/unit identity |
| Best for | Raw materials, components | Food, pharma, cosmetics | Anything that needs tracing |
| Focus | Prevent pile-up | Prevent expiry | Traceability & recall |
| In Odoo | FIFO removal strategy | FEFO removal strategy | Tracking By Lots / Serial |
6. Real-World Case Examples
Case 1 — Yogurt Producer (FEFO + Lot)
A yogurt factory produces 3 batches a day with a 21-day shelf life. Without FEFO, older batches could be left at the back and expire. With FEFO + lot numbers, shipments always pick the batch with the nearest expiry. Result: less expired stock, and when a complaint arises, only the affected batch is withdrawn.
Case 2 — Pharmaceutical Distributor (FEFO + Recall)
A drug distributor receives products from several factories with different batch numbers. When a recall notice arrives, the team must know which batch is in the warehouse and which pharmacies received it. With lot numbers + Odoo traceability, the search takes minutes instead of days.
Case 3 — Cosmetics (Production Lot & Expiry)
A cosmetics brand produces serum in large batches. Each batch has a production and expiry date. With FEFO, old stock does not pile up; with lots, the brand ensures only still-valid batches reach distributors.
Case 4 — Manufacturing (FIFO Raw Materials)
A machine-component factory stores thousands of raw materials with no expiry date. Here FIFO is enough: materials received first are used first, so nothing is forgotten on the rack.
7. Setting It Up in Odoo
- Enable features — Inventory → Settings: Lots & Serial Numbers, Expiration Dates, and Storage Locations.
- Product tracking — set the product to By Lots (batch) or By Unique Serial Number.
- Expiry dates — fill them during production receipt; the lot carries this date.
- Removal strategy — on the warehouse location, choose FIFO or FEFO (Odoo supports both).
- Operations — enter the lot/expiry on receipt; on delivery, Odoo suggests lots per the strategy.
- Monitor — use stock & lot reports to see items nearing expiry.
8. Best Practices & KPIs
Best practices
- Use FEFO for all perishable products.
- Print & attach lot/expiry labels so they are easy to scan.
- Apply barcodes during receipt/delivery for accuracy.
- Run cycle counts to find lots nearing expiry.
KPIs
- Expired stock value — the value of expired stock.
- Shrinkage — stock loss.
- Traceability time — how fast a batch can be traced during a recall.
- Compliance — completeness of lot/expiry data on transactions.
Closing
FIFO, FEFO, and lot numbers are not just warehouse jargon — they are a system for protecting quality and trust. By setting them up in Odoo, you ensure products leave at the right time, can be traced when needed, and no stock goes to waste. For quality-sensitive industries, this is not optional — it is essential.
Want to implement FIFO/FEFO and lot control in Odoo? Talk to the Sinergi Data Totalindo (SDT) Team.
Note: appearance and features may adapt to the Odoo version and implementation needs. Written by Sinergi Data Totalindo, PT.