FEFO and FIFO Full Forms
FIFO stands for First In First Out. Stock received earliest is dispatched earliest. It is the default rotation rule across most of distribution and warehousing, and it is simple to operate: whatever came in first goes out first.
| Parameter | Detail |
|---|---|
| FEFO | First Expired First Out — dispatch by earliest expiry |
| FIFO | First In First Out — dispatch by earliest receipt |
| When they agree | Only when goods always arrive in expiry order |
| When they diverge | Multi-plant supply, returns, promo packs, slow movers |
| Correct default for dated goods | FEFO |
| Typical expiry write-off | 0.5-3% of purchase value |
| Against distributor net margin | 2-4%, so a 2% write-off is a third of profit |
| Prerequisite | Batch and expiry captured at goods receipt |
| Trade acceptance rule | Modern trade refuses below a minimum remaining life |
FEFO stands for First Expired First Out. Stock with the nearest expiry date is dispatched first, regardless of when it arrived. It requires knowing the expiry date of every batch in the godown, which is a materially higher bar than knowing the receipt date.
Both are rotation disciplines, not accounting methods. FIFO also exists as an inventory valuation method in accounting, and the two uses are unrelated. This article is about physical stock movement.
When FIFO and FEFO Give the Same Answer, and When They Do Not
If every consignment of a product arrived in strict expiry order, FIFO and FEFO would be identical and the distinction would not matter. In practice they diverge regularly, and each divergence is a potential write-off.
Multi-Plant and Multi-Depot Supply
A distributor drawing the same SKU from two plants receives stock with unrelated production dates. Monday's delivery from a distant plant may carry an expiry two weeks earlier than Friday's delivery from a nearby one. FIFO says ship Monday's stock first, which happens to be right. Reverse the arrival order, which happens constantly, and FIFO now ships the longer-dated stock while the short-dated stock ages on the rack.
Sales Returns
Goods that come back from a retailer re-enter the godown with their original expiry but a new receipt date. Under FIFO they are treated as the newest stock in the building and go out last. They are almost always the oldest stock in the building. This single mechanism causes a large share of avoidable expiry loss in Indian FMCG distribution.
Promotional and Combo Packs
Festival packs, combo bundles and scheme-linked SKUs often arrive with shorter remaining shelf life than the standard pack, because they were produced for a specific window. Rotating them by receipt date pushes them past their commercial window.
Slow-Moving Long Tail
For a SKU selling two cases a month, the difference between rotation rules compounds. By the time the stock moves, a FIFO error made three months ago has become a full write-off.
Why Dairy and Food Distribution Must Run FEFO
Shelf life is the constraint that makes this more than a bookkeeping preference. Pasteurised milk carries a shelf life measured in days. Curd, paneer and fresh cream are similar. Bread and bakery products run to days. Even ambient dairy such as UHT milk and ghee, with months of life, is sold into a trade that will refuse anything with insufficient remaining life.
That last point is the commercial reality that surprises new distributors. Retailers and especially modern trade buyers apply a remaining-life rule at the point of delivery, commonly refusing stock with less than two-thirds or three-quarters of its life left. Stock does not need to expire to become worthless; it only needs to cross the threshold where the trade will accept it. Under FIFO, short-dated stock sitting behind newer arrivals crosses that line invisibly.
The same logic drives batch discipline generally, which our guide to expiry management in dairy distribution covers in more depth, and it connects directly to batch tracking and traceability obligations under Indian food safety rules.
What FEFO Costs When It Is Not Enforced
Expiry and near-expiry write-offs in Indian FMCG distribution commonly run between 1% and 3% of purchase value where rotation is managed visually, and higher in short-shelf-life categories. Against distributor net margins that are frequently in the 2-5% range, a 2% write-off is not a rounding error. It can be a third of the year's profit.
The loss also arrives in three forms that are easy to account for separately and therefore easy to underestimate:
- Outright expiry: stock destroyed or returned for credit, sometimes at partial value.
- Distress liquidation: near-expiry stock dumped at a discount, which recovers cash but destroys margin and can undercut normal trade pricing.
- Rejection at delivery: the retailer refuses short-dated stock, and the distributor absorbs a wasted delivery on top of the write-off. This also damages the on time in full score.
FEFO is impossible without batch and expiry captured at inward.
Once expiry is recorded at goods receipt, the pick list can name the batch and rotation stops depending on who is picking. Start a free trial or see pricing.
How to Actually Enforce FEFO in a Godown
FEFO is easy to state and hard to run, because it demands information that most distributors do not capture.
Capture Batch and Expiry at Goods Receipt
This is the non-negotiable foundation. If expiry is not recorded when stock enters the building, no downstream rule can be enforced, and the rotation decision falls to whoever is picking. Recording it means scanning or keying the batch and expiry per line at inward, not per invoice.
Store So That Rotation Is Physically Possible
A rack loaded from the front only will be picked from the front only, whatever the system says. Rotation needs either dual access, deliberate restacking at inward, or clear physical segregation of batches. Where space is tight, colour-coded batch markers are cruder than a system but far better than nothing. Our guide to FMCG warehouse layout covers the physical side.
Make the Picking List Do the Thinking
The picker should not be deciding rotation. The pick list should name the batch to be picked, chosen by earliest expiry with sufficient stock. Once that is true, FEFO stops depending on individual diligence.
Run Near-Expiry Alerts, Not Just Expiry Reports
An expiry report tells you what you have already lost. A near-expiry alert, triggered at a threshold appropriate to the category, tells you what you can still sell. For a 45-day dairy SKU that threshold might be 15 days remaining; for a six-month ambient product, 45 days. The alert is what creates the window to push stock through a scheme, a bulk deal or a high-velocity outlet before it becomes dead.
Segregate Returns Immediately
Returned stock should be quarantined and re-entered against its original batch and expiry, never treated as fresh receipt. This single control removes one of the largest sources of rotation error.
Practical Rules of Thumb
Use FEFO for anything with a printed date. Dairy, bakery, beverages, packaged food, nutraceuticals, personal care with expiry, and anything sold into modern trade.
FIFO is acceptable for genuinely undated goods. Detergent bars, some household items and non-perishable hardware. Even here FIFO protects against packaging damage and obsolescence.
Never mix rules within a category. A godown running FEFO on some SKUs and FIFO on others will drift to whichever rule requires least effort at the moment of picking.
Audit rotation by exception, not by count. The useful monthly report is not total stock value; it is a list of batches where a longer-dated batch of the same SKU was dispatched while a shorter-dated one remained. Every line on that list is a rotation failure with a name attached to it.
Where Software Changes the Picture
None of the above requires software in a single-room godown with forty SKUs and one storekeeper who knows the stock personally. It becomes impractical somewhere past a few hundred SKUs, multiple storage locations, or any operation where the person picking is not the person who received the goods.
What a system contributes is narrow but decisive: expiry captured once at inward, batch-level stock visible by location, pick lists generated in FEFO order automatically, and near-expiry alerts raised before the window closes rather than after. That is the difference between rotation as a discipline that depends on individual attention and rotation as a property of the process. Batch-level distribution tracking and multi-location godown stock management are where most distributors make that shift, usually after one write-off large enough to make the arithmetic obvious.
Setting Near-Expiry Thresholds by Category
A single near-expiry alert threshold across a mixed portfolio is either useless for short-life products or noise for long-life ones. Thresholds should be derived from two things: total shelf life, and the time it realistically takes to liquidate stock through your channel.
A workable rule is to set the alert at roughly one third of remaining shelf life, or at the point where the trade's own dating rule begins to bite, whichever comes first.
- Fresh dairy (3-7 day life): alert at 1-2 days remaining. Realistically this is a same-day liquidation decision, and often the only lever is a discounted push to high-velocity outlets.
- Extended-life dairy and bakery (15-45 days): alert at 10-15 days remaining, which leaves one full sales cycle to move it.
- Ambient packaged food (6-12 months): alert at 60-90 days, since modern trade dating rules will start refusing it well before expiry.
- Personal and household care (18-24 months): alert at 120 days. Failures here are almost always slow-moving SKUs that should have been rationalised.
The threshold that matters commercially is not expiry but the trade's acceptance cut-off. Stock refused by a modern trade dock at four months remaining is a write-off even though it has four months of life.
What to Do With Near-Expiry Stock
An alert is only useful if there is a defined action behind it. In descending order of value recovered:
- Redirect to a high-velocity outlet. The same stock that will expire at a slow counter may sell in three days at a busy one. This costs nothing but a routing decision and is the most under-used option.
- Push through an existing scheme. Attach the short-dated batch to a running offer rather than creating a distress discount that signals a problem to the trade.
- Bundle with fast movers. Moves the stock without publishing a discount on the SKU itself.
- Claim against the brand. Where the return policy permits it, and within the claim window. Most unrecovered value here is lost to missed deadlines rather than rejected claims, as covered in our guide to claims management.
- Institutional or bulk liquidation. Last resort before write-off; recovers cash at heavily compressed margin.
The decision needs to happen while options one to three are still open. Once stock reaches the final week, only the last two remain, and they recover a fraction of the value.
Measuring Rotation Discipline
Most operations measure expiry losses after the fact and call it stock rotation management. That is a lagging indicator by definition. Two leading measures are far more useful.
Rotation exception rate. Count dispatches where a longer-dated batch of a SKU was shipped while a shorter-dated batch of the same SKU remained in stock. Every one of those is a rotation failure, it is detectable the day it happens, and it has a person attached to it. A rate above a few per cent means the picking process, not the people, needs changing.
Ageing profile of stock on hand. The share of current inventory value sitting past the near-expiry threshold, tracked weekly. A rising line here predicts write-offs six weeks before they appear in the P&L.
Reporting both alongside the expiry loss figure turns a monthly post-mortem into something a supervisor can act on the same week.
FEFO Where the Godown Is Not Ideal
Most Indian distributor godowns were not designed for rotation. Racking is often single-access, space is tight, and stacking is by whatever fits. Three practical adaptations work without rebuilding.
Segregate by batch at inward, not at picking. The decision costs nothing at receipt and is nearly impossible at dispatch. Even a chalked batch marker on the stack is enough if it is applied consistently.
Keep one small pick face per fast SKU. Rather than rotating the whole stack, maintain a small forward picking location holding the current oldest batch, replenished deliberately. Pickers take from the face; rotation is enforced at replenishment by one person rather than by everyone.
Colour-code by month. Where system-directed picking is not available, a coloured sticker per expiry month makes rotation errors visible from across the room. Crude, cheap and considerably better than trusting memory across a hundred SKUs.
These do not replace batch-level stock control, and they are what makes rotation survivable while an operation grows into it. The wider layout considerations are covered in our guide to FMCG warehouse layout.
Related Concepts
These terms and guides sit directly around this topic in day-to-day distribution work.
- Chain: Super stockist, distributor and sub stockist.
- Channel: General trade, modern trade and the kirana store.
- Coverage: ECO, weighted distribution and the journey plan.
- Service: OTIF, order cut-off and proof of delivery.
- Money: Distributor margin, ROI, FOC goods and claims.
Sources & References
Frequently Asked Questions
FIFO is acceptable for genuinely undated goods such as detergent bars and household hardware, where it still protects against packaging damage and obsolescence. Anything carrying a printed expiry or best-before date should run FEFO, including everything sold into modern trade.
Roughly one third of total shelf life, or the point where the trade's own dating rule starts to bite, whichever comes first. Fresh dairy at 3-7 days alerts at 1-2 days remaining; ambient packaged food at 6-12 months alerts at 60-90 days, because modern trade will refuse it well before expiry.
In descending order of value recovered: redirect it to a high-velocity outlet, attach it to an existing scheme, bundle it with fast movers, claim it against the brand within the claim window, then institutional liquidation. The first three are only available if the alert fires early enough.
Yes, in a small operation where one person receives and picks and the SKU count is low. Past a few hundred SKUs or multiple storage locations it breaks down, because FEFO requires batch and expiry captured at receipt and carried through to the picking list rather than held in someone's memory.
FEFO stands for First Expired First Out. It is a stock rotation rule under which the batch with the nearest expiry date is dispatched first, regardless of when it was received.
FIFO, First In First Out, dispatches stock in the order it was received. FEFO, First Expired First Out, dispatches stock in the order it expires. They produce the same picking order only when goods always arrive in expiry sequence, which is often untrue in food and dairy distribution.
Whenever the product carries a printed expiry or best-before date. That covers dairy, bakery, beverages, packaged food and anything sold into modern trade, where buyers apply a minimum remaining-life rule at delivery.
Returned goods re-enter the godown with their original expiry but a new receipt date. Under FIFO the system treats them as the newest stock and dispatches them last, when they are usually the oldest stock in the building. Returns should be quarantined and re-entered against their original batch and expiry.
Expiry and near-expiry write-offs commonly run 1-3% of purchase value where rotation is managed visually, and higher in short-shelf-life categories. Against typical distributor net margins of 2-5%, that can represent a substantial share of annual profit.
Yes, in a small operation where one person receives and picks the stock and the SKU count is low. It becomes impractical past a few hundred SKUs or multiple storage locations, because FEFO requires batch and expiry to be captured at receipt and carried through to the picking list.
Related SpireStock Features
Real-time GPS tracking of vehicles and drivers with route optimization for faster deliveries.
End-to-end order lifecycle from placement to delivery with multi-level approval workflows.
Powerful dashboards with sales trends, MIS reports, and distribution analytics.
Related Industries
End-to-end dairy distribution software for milk, curd, paneer, and ghee brands. Manage orders, crates, cold chain, and GST billing in one platform.
Distribution software for bakeries and confectionery brands. Manage short-shelf-life products, daily dispatch, returns, and retailer credit efficiently.
Streamline FMCG distribution with order management, beat planning, retailer tracking, and GST billing. Built for Indian FMCG supply chains.
Related Entities
Ready to Streamline Your Distribution?
Start your free 14-day trial and see how SpireStock can transform your dairy, FMCG or consumer-goods distribution operation, from order capture to crate recovery.

SpireStock Team
Product & Industry Insights
SpireStock Team leads product at SpireStock, where the team ships distribution management software for India's dairy, FMCG and consumer-goods brands.
