Skip to Content

FIFO, FEFO, and Lot Number: Managing Stock More Accurately in Odoo

Ideal for food, pharmaceutical, cosmetics, and manufacturing companies that need batch or expiry-date control.

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.

Food production & batches

5. A Quick Comparison

AspectFIFOFEFOLot/Serial
Removal basisEntry orderExpiry dateBatch/unit identity
Best forRaw materials, componentsFood, pharma, cosmeticsAnything that needs tracing
FocusPrevent pile-upPrevent expiryTraceability & recall
In OdooFIFO removal strategyFEFO removal strategyTracking 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

  1. Enable features — Inventory → Settings: Lots & Serial Numbers, Expiration Dates, and Storage Locations.
  2. Product tracking — set the product to By Lots (batch) or By Unique Serial Number.
  3. Expiry dates — fill them during production receipt; the lot carries this date.
  4. Removal strategy — on the warehouse location, choose FIFO or FEFO (Odoo supports both).
  5. Operations — enter the lot/expiry on receipt; on delivery, Odoo suggests lots per the strategy.
  6. 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.

Sinergi Data Totalindo October 26, 2026
Share this post
Archive
Odoo Dashboard: Seeing the Business in One View
Understanding Odoo dashboards — from module dashboards, spreadsheets, to real-time KPIs — and how to build them so they truly help decisions.
Chat WhatsApp