Skip to content
AU5 min read

FEFO vs FIFO for Australian food and beverage manufacturers

FIFO ships the oldest stock first. FEFO ships whatever expires first — and for perishables those are not the same thing.

If you make food, beverage, dairy or anything with a use-by date, FEFO is the rule that keeps short-dated stock from rotting in the back of the rack.

Ask two warehouse managers how they rotate stock and you'll often hear the same three letters back: FIFO. First in, first out. It's the default rotation rule for almost every business that holds physical inventory, and for hardware, fasteners or packaging it's exactly right. But if you make food, beverage, dairy, supplements or anything else that carries a use-by or best-before date, FIFO quietly works against you — and the rule you actually want is FEFO.

This post defines both, shows where they diverge with a worked example, and explains why the difference matters more in Australian food and beverage manufacturing than almost anywhere else: short shelf lives, FSANZ recall obligations, and export markets that demand batch and lot evidence down to the carton.

FIFO and FEFO, defined plainly

FIFO — first in, first out — picks and ships stock in the order it was received. The carton that arrived on Monday goes out before the carton that arrived on Wednesday. It assumes the oldest stock is also the closest to expiry, which is true when every batch has the same shelf life and nothing jumps the queue.

FEFO — first expired, first out — picks and ships stock in the order it expires, regardless of when it arrived. The carton with the nearest use-by date goes out first, even if it landed in the warehouse last week and there's older stock behind it.

The two rules agree right up until they don't. The moment a later delivery has a shorter remaining shelf life than something already on the shelf — a shorter-dated production run, a batch held in quarantine, stock returned from a customer, or simply a supplier shipping you product that's already part-way through its life — FIFO and FEFO point at different cartons.

A worked example where the two rules disagree

You run a chilled dairy line. On 1 May you receive a batch of yoghurt with a use-by date of 30 June. On 8 May a second batch arrives — a shorter production run with a use-by date of 20 June, twelve days earlier.

Under FIFO, the 1 May batch ships first because it arrived first. The 20 June stock sits behind it and, if demand dips, expires on the shelf while you're still shipping the 'older' 30 June product. You write off good stock and a customer somewhere gets yoghurt with barely any life left on it.

Under FEFO, the 20 June batch ships first because it expires first. Nothing is wasted on a date technicality, and every customer receives the longest practical shelf life you can give them — which is exactly what retail buyers and distributors expect in their receiving specs.

  • FIFO optimises for order of arrival
  • FEFO optimises for order of expiry
  • For non-perishables they produce the same result; for perishables they routinely do not
  • The cost of getting it wrong is spoilage write-offs, short-dated rejections at the dock, and at worst a quality incident

When FEFO is not optional

FEFO stops being a nice-to-have the moment your product can go off. That covers most of the food and beverage sector: fresh and chilled foods, dairy, meat and smallgoods, bakery, ready meals, juices and beverages, infant formula, sports nutrition and supplements, and anything refrigerated or frozen with a defined use-by.

It also covers products where shelf life is governed by something other than a printed date — temperature-sensitive stock, items with a fixed window after opening, or ingredients with a declared best-before that downstream customers track. If a buyer's purchase order specifies a minimum remaining shelf life on receipt (and major Australian grocery and distributor contracts routinely do), you cannot meet that consistently with arrival-order picking. You need expiry-order picking enforced at the pick face, not left to whichever carton a picker reaches first.

FSANZ, recall plans and the traceability that sits underneath FEFO

FEFO is a rotation discipline, but it only works if you actually know the expiry date and batch of every unit you hold. That same batch-level record is what Australian food law leans on when something goes wrong.

Under the Food Standards Code, FSANZ Standard 3.2.2 requires food businesses to have a written recall plan and to be able to act on it. The practical heart of that is traceability: one step back to your suppliers and ingredients, one step forward to who you shipped to. If a batch needs pulling, you have to identify exactly which lots are affected and where they went — fast.

HACCP food safety plans rely on the same foundation. OpsUI supports the traceability, batch and recall workflows that make this manageable — it records batch and lot, captures expiry on receipt, drives FEFO rotation, and gives you the forward and backward trace you'd reach for in a mock recall. The certification itself is always the operator's; the software's job is to make the evidence exist and be retrievable, not to issue a certificate.

  • Capture batch, lot and expiry at receiving, not after the fact
  • Enforce FEFO at picking so short-dated stock genuinely moves first
  • Keep a forward and backward trace for every batch you've handled
  • Make a mock recall a query, not a frantic afternoon with a clipboard and a spreadsheet

Export markets raise the bar again

If you export — and Australian dairy, meat and wine producers do, heavily — batch and lot evidence stops being good practice and becomes a condition of market access. Export certification, importing-country requirements and customer audits all expect you to tie a finished case back to its production batch, its inputs and its dates.

Dairy and meat exports run under export control and certification regimes where lot identity and traceability are non-negotiable. Wine carries its own lot and vintage record-keeping expectations. GS1 batch and date standards (lot number and expiry encoded in the barcode) are how that information travels with the carton through the supply chain. The common thread: you can't produce export-grade traceability at the end if you weren't capturing batch and expiry at every step, and you can't run FEFO without that same data. The two requirements are the same data set viewed from different angles.

Why your accounting system can't do FEFO

Here's the part that catches a lot of growing manufacturers off guard. Xero and MYOB are excellent finance systems, but their inventory features are built around financial valuation, not physical rotation. They'll track quantities and cost — often using FIFO or average cost as an accounting method for valuing stock — but that 'FIFO' is a costing convention, not a picking instruction.

An accounting ledger generally does not hold a batch and expiry date against each unit, does not know which physical carton a picker should reach for, and does not enforce expiry-order picking on the warehouse floor. A spreadsheet is worse again: it can't see what's actually on the rack, can't stop a picker grabbing the wrong batch, and falls apart the moment two batches of the same SKU carry different dates.

FEFO is an operational decision made at the moment of picking, informed by data the finance system was never designed to carry. That's not a knock on Xero or MYOB — valuing inventory and rotating perishable stock are genuinely different jobs. It's the reason food manufacturers end up bolting a real operations layer onto a ledger that's doing its actual job perfectly well.

How OpsUI fits

FEFO only works when batch and expiry are captured at receiving and then enforced at the pick face — and that is exactly the gap between a finance ledger and a warehouse floor. OpsUI's inventory-management and receiving-inbound modules record batch, lot and expiry as stock comes in, then the picking workflow drives first-expired-first-out rotation so short-dated product genuinely moves first instead of dying on the rack. Cycle-counting and quality-control keep the data honest, and the same batch records give you the forward and backward trace that FSANZ Standard 3.2.2 recall planning and export certification both lean on.

The sensible move for most food and beverage manufacturers is to keep your finance system exactly where it is — Xero, MYOB or NetSuite stays your ledger — and add OpsUI as the operations layer that handles the batch tracking, FEFO rotation and traceability the ledger was never built for. NetSuite sync is live in production today; Xero and MYOB sync is wired during rollout through the finance-accounting module, so your stock movements and valuations still reconcile back to the books.

If you want the detail, /solutions/food-and-beverage walks through the batch, recall and FEFO workflows for food and beverage operators, and the FEFO entry at /glossary defines the term and how it differs from FIFO. Flat modular pricing from A$399/module/mo — full breakdown at /pricing. When you're ready to see expiry-order picking against your own SKUs and shelf lives, book a walkthrough at /book-demo.

Frequently asked

What is the difference between FEFO and FIFO?

FIFO (first in, first out) ships stock in the order it arrived. FEFO (first expired, first out) ships stock in the order it expires, regardless of arrival date. For non-perishables they give the same result. For perishables they diverge whenever a later delivery has a shorter remaining shelf life than older stock — and then FEFO is the rule that prevents waste and short-dated rejections.

When should a food manufacturer use FEFO instead of FIFO?

Use FEFO whenever your product carries a use-by or best-before date: fresh and chilled foods, dairy, meat, bakery, beverages, infant formula and supplements all qualify. FEFO is effectively mandatory when customer purchase orders specify a minimum remaining shelf life on receipt, which major Australian grocery and distributor contracts routinely do. FIFO is fine for non-perishables like packaging or hardware.

Can Xero or MYOB run FEFO inventory rotation?

No. Xero and MYOB are finance systems; their inventory features track quantity and cost for valuation, sometimes using FIFO as a costing convention. That is an accounting method, not a picking instruction. They generally do not hold a batch and expiry date per unit or enforce expiry-order picking on the floor. FEFO needs an operations layer that captures batch and expiry at receiving and drives picking by expiry date.

How does FEFO relate to FSANZ recall requirements?

FEFO depends on knowing the batch and expiry of every unit you hold, which is the same data FSANZ Standard 3.2.2 relies on for its mandatory written recall plan. Standard 3.2.2 requires traceability one step back to suppliers and one step forward to customers. If you capture batch and expiry to run FEFO, you already hold most of the records needed to identify and pull an affected lot quickly.

Do Australian food exporters need batch and lot tracking?

Yes. Australian dairy, meat and wine exports run under export control and certification regimes where lot identity and traceability are conditions of market access, not optional extras. Importing-country requirements and customer audits expect you to tie a finished case back to its production batch, inputs and dates. GS1 batch and expiry barcoding is how that information travels with the carton, and it is the same data FEFO rotation needs.

Is OpsUI HACCP or TGA certified for food traceability?

No. OpsUI supports the traceability, batch, FEFO and recall workflows that underpin HACCP plans and FSANZ Standard 3.2.2, but certification is always the operator's, not the software's. The system's role is to capture batch and expiry at receiving, enforce FEFO at picking and keep a forward and backward trace, so the evidence exists and is retrievable when an auditor or a recall asks for it.

See how OpsUI approaches this differently.

No hidden fees. No six-month implementations. Just warehouse software that works.

Book a Demo