A carton of sauce sits at the back of a Klang Valley store room, three weeks past its date. Your team rotated that stock by arrival date and did the job they were told to do. It expired anyway. The FIFO vs FEFO question lives in that gap, and for FMCG sellers it decides how much you write off each quarter.
Which Stock Rotation Rule FMCG Sellers Should Use?
FIFO (First In, First Out) ships your oldest stock first. FEFO (First Expired, First Out) ships whatever expires soonest, whatever date it arrived. FIFO suits non-perishables. If you sell food, beverages, cosmetics or pharmaceuticals, FEFO stops you writing off stock your team rotated by the book.
FMCG stands for Fast-Moving Consumer Goods, which are everyday products that sell quickly at a low cost.
FIFO and FEFO, Defined
FIFO stands for First In, First Out. Your team loads new stock behind what’s already on the shelf and picks from the front, so the oldest carton leaves first. Warehouses run it with receipt dates on every pallet and a layout that makes front-picking the easiest path.
FEFO stands for First Expired, First Out. Your team picks by expiry date instead of arrival date. The carton with the nearest date goes out first, even if it landed last week.
One distinction saves a lot of confusion. Your accountant also uses FIFO, as a costing method for valuing inventory on the books. That FIFO answers what your stock is worth. The FIFO in this article answers which carton your picker grabs. They share a name and solve separate problems.
Both rules want the same thing from you: data at batch level. FIFO needs a receipt date per batch. FEFO needs an expiry date per batch. A spreadsheet holding SKU totals gives you neither, which is why most sellers discover the difference the hard way.
The Trap: When FIFO Ships The Wrong Carton

Picture two deliveries of the same SKU.
Batch A arrives Monday with six months of shelf life. Batch B arrives Wednesday with two months, because your supplier cleared older stock out of their own warehouse. FIFO reads arrival dates, sees that A came first, and sends A out the door. Batch B moves to the back of the rack and waits.
Two months later you find it. The stock is in date order by arrival and out of date by the calendar. You write it off.
Your team followed the rule, and the rule pointed at the wrong carton.
Malaysian FMCG sellers hit this often, for two local reasons. Suppliers here clear short-dated stock into the channel, so a later delivery can carry a much shorter runway than an earlier one. Mega-sale restocking then compresses your delivery schedule, and two shipments landing in the same week can differ by four months of shelf life. Add a Klang Valley store room without climate control and the usable window shrinks again.
FEFO closes the gap. It ignores arrival order and reads the expiry date, so Batch B ships first while Batch A waits its turn. Your stock still rotates. It rotates against the clock that costs you money.
FIFO vs FEFO: Side by Side

| FIFO | FEFO | |
|---|---|---|
| Picks by | Date received | Date of expiry |
| Best for | Non-perishables, electronics, hardware, packaging | Food, beverages, cosmetics, pharmaceuticals |
| Fails when | Batches arrive out of expiry order | Your supplier provides no expiry data |
| Needs from your system | Receipt date per batch | Expiry date per batch |
| Effort without software | Manageable | Near impossible past a few hundred SKUs |
That last row decides the question for most growing sellers. Manual FEFO asks a picker to read date codes off cartons under warehouse lighting and pick the right one every time. At fifty SKUs your team manages it. At five hundred, across two locations, with Shopee orders arriving through the day, they cannot.
Match The Rule To What You Sell
You sell hardware, packaging, electronics or homeware. Stay on FIFO. Nothing on your shelves expires, and FIFO keeps stock moving before it gets damaged or obsolete. The simpler rule costs less to run.
You sell food, beverages, supplements, cosmetics or pharmaceuticals. Run FEFO. Expiry dates decide whether you can sell the unit at all, and arrival order tells you nothing about that date.
You sell across Shopee, Lazada and your own store. Run FEFO, and hold one stock figure across the channels. A unit reserved against one channel can sit untouched while its date runs down, which turns a sale you almost made into a write-off.
You distribute FMCG across two or more locations. Run FEFO and track it per location. A short-dated batch in your second store room stays invisible until someone walks over, by which point the window to move it has closed.
Plenty of Malaysian SMEs run both rules at once: FEFO on the perishable range, FIFO on everything else. One system can hold both, applied per product rather than across the whole warehouse.
How 8Stock Helps
8Stock is a cloud-based warehouse and inventory management system built by Uniqbe Digital Sdn Bhd for Malaysian businesses. It supports FIFO and FEFO, so your rotation rule holds no matter who is on the floor that morning.
Four capabilities carry the work:
- FIFO and FEFO support: the system points your picker at the right carton, instead of asking them to read date codes and decide.
- Item-level tracking: serial, batch, quantity and barcode. Expiry-date picking runs on batch-level data, and this is where it comes from.
- Inventory Management: your whole company’s stock under one view, so a short-dated batch in the second location surfaces before it costs you.
- Report Management: daily, monthly, quarterly and yearly stock-take reports, date-selectable and exportable to Excel.
Warehouse Management adds multi-location tracking and stock transfer between locations, which is how you move a short-dated batch to the outlet that will clear it in time. 8Stock also syncs with Shopee, Lazada, WooCommerce and nopCommerce, so your multi-channel orders draw on the same stock figure your rotation rule works from.
→ See how 8Stock handles inventory, or read why Malaysian SMEs rate it the best warehouse management system in Malaysia.
FAQ
What is the difference between FIFO and FEFO?
FIFO picks by the date stock arrived. FEFO picks by the date it expires. The two agree whenever your deliveries arrive in expiry order. They diverge the moment a supplier sends you a short-dated batch after a long-dated one, and that divergence is what costs FMCG sellers money.
Which is better for FMCG products?
FEFO. Food, beverages, supplements and cosmetics carry expiry dates that decide whether you can sell the unit at all. Arrival order tells you nothing about that date. FIFO stays the better rule for non-perishables, where age matters less than keeping stock moving.
Can I run FIFO and FEFO at the same time?
Yes, and it’s a common setup. Apply FEFO to your perishable range and FIFO to everything else, set per product rather than across the whole warehouse. 8Stock supports both, so your team follows one picking instruction and the system decides which rule applies to the item in hand.
Does FEFO matter if my products don’t expire?
Less so. Without expiry dates, FEFO has nothing to sort by, and FIFO gives you the same outcome with less overhead. Track batches anyway if you handle recalls, warranty claims or serial numbers, because item-level records answer questions that stock totals cannot.
How do I enforce FEFO in a small warehouse?
Record an expiry date on every batch at goods-in, then pick from a system that sorts by that date. Manual FEFO holds up at a few dozen SKUs. Past that, date codes get misread and short-dated stock hides at the back, which is the point where software pays for itself.
Stop Writing Off Stock You Rotated Correctly
Your team is doing the rotation. Give them a system that points at the right carton.
Request a demo, or WhatsApp us on +60 12 381 1376 and we’ll walk through how your range should rotate.
Read next: The benefits of FIFO in warehouse management · Batch and expiry tracking software in Malaysia · ERP vs WMS: which should a Malaysian SME buy first?