FIFO, or First In, First Out, is an inventory management method where the oldest stock is used, picked, packed, or shipped before newer stock.
The first pallet in should be the first pallet out. The oldest case should be picked before the newer case. The product that has been sitting in storage longest should leave before it ages into a discount, write-off, or customer complaint.
In a real warehouse, FIFO only works when the receiving dock, storage layout, warehouse management system, barcode scanning, picking process, replenishment rules, and inventory reports all work together. A warehouse can say it uses FIFO. That doesn’t mean FIFO is actually happening.
Who are we? Speed Commerce is an end-to-end provider of outsourced customer experience solutions for eCommerce retailers (including for BigCommerce & more) as well as manufacturers, for close to 20 years. We grow our clients’ businesses by providing winning customer experience strategies such as 24/7/365 eCommerce customer service, order fulfillment, and warehousing – get a free quote from a fulfillment expert. Refer to our guide on crowdfunding fulfillment, and east coast fulfillment updated for 2026.
FIFO Meaning: What Does First In, First Out Mean?
FIFO stands for First In, First Out. It means the inventory that enters storage first should be the first inventory selected for sale, production, fulfillment, or shipment.
A simple example:
| Shipment | Date Received | Quantity | FIFO Pick Priority |
|---|---|---|---|
| Batch A | March 1 | 500 units | Pick first |
| Batch B | March 15 | 500 units | Pick second |
| Batch C | April 1 | 500 units | Pick third |
If a customer orders that product on April 10, the warehouse should pick from Batch A before Batch B or Batch C.
That’s FIFO in its simplest form.
The goal is to stop older inventory from sitting in the warehouse while newer inventory moves ahead of it. That’s important for products with shelf lives, packaging changes, seasonal demand, lot codes, expiration dates, or product versions that change over time.
FIFO helps answer a basic but powerful warehouse question:
Which unit should leave next?
FIFO in Warehousing vs FIFO in Inventory Management vs FIFO in Accounting
FIFO can mean slightly different things depending on the context.
That is where many explanations get messy. Warehouse teams, accountants, operations managers, and ecommerce founders may all use the same term, but they are not always talking about the same thing.
| FIFO Context | What It Controls | Main Goal |
|---|---|---|
| FIFO in warehousing | Which physical units are picked, packed, and shipped first | Move older stock before newer stock |
| FIFO in inventory management | How stock is rotated, tracked, replenished, and reported | Reduce aging, waste, stock errors, and dead inventory |
| FIFO in accounting | Which inventory costs are assigned to cost of goods sold first | Calculate COGS, ending inventory, profit, and taxable income |
FIFO in warehousing
In warehousing, FIFO is about physical product movement.
If a warehouse receives 20 pallets of the same SKU over several weeks, FIFO tells the operation to pick from the oldest eligible pallet first. This can depend on receiving date, lot number, production date, batch number, or expiration date.
FIFO in inventory management
In inventory management, FIFO is broader. It affects how stock is tracked, aged, rotated, reported, replenished, and controlled.
A team may use FIFO to decide:
- Which batch should be placed in a forward pick location
- Which inventory should be discounted before it gets too old
- Which lots are stuck in storage too long
- Which SKUs need tighter purchasing controls
- Which warehouse locations are creating aging problems
FIFO in accounting
In accounting, FIFO is a cost flow assumption. It assumes the oldest inventory costs are assigned to sold goods first.
For example, if a company buys 100 units at $10, then 100 units at $12, and then sells 150 units, FIFO accounting treats the first 100 units sold as costing $10 each and the next 50 units as costing $12 each.
| Purchase Layer | Units | Unit Cost | Units Sold Under FIFO | COGS |
|---|---|---|---|---|
| First purchase | 100 | $10 | 100 | $1,000 |
| Second purchase | 100 | $12 | 50 | $600 |
| Third purchase | 100 | $14 | 0 | $0 |
| Total | 300 | 150 | $1,600 |
In this example, FIFO cost of goods sold is $1,600.
The remaining inventory would be:
| Remaining Inventory | Units | Unit Cost | Ending Inventory Value |
|---|---|---|---|
| Second purchase | 50 | $12 | $600 |
| Third purchase | 100 | $14 | $1,400 |
| Total | 150 | $2,000 |
The warehouse version and accounting version are connected, but they are not identical. A business can use FIFO as an accounting method while still struggling to enforce FIFO physically in the warehouse.
How FIFO Works in a Warehouse
FIFO works best when the rule is built into every stage of warehouse flow.
A warehouse does not “do FIFO” only at picking. The process starts much earlier, usually at receiving.
FIFO Warehouse Flow
Receiving
↓
Date, lot, and batch capture
↓
Putaway into controlled locations
↓
Storage layout that keeps older stock accessible
↓
Replenishment from oldest eligible inventory
↓
System-directed picking
↓
Scan verification
↓
Packing and shipping checks
↓
Inventory aging reports and audits
A warehouse can receive product correctly, but if putaway buries old stock behind newer pallets, FIFO will fail. A WMS can assign the correct pick location, but if workers override the system without review, FIFO will fail. Inventory can be labeled clearly, but if returns get mixed back into sellable stock without inspection, FIFO will fail.
Step 1: Receiving Inventory Correctly
FIFO starts at the receiving dock.
When new inventory arrives, the warehouse should capture the right information before the product moves into storage. That can include:
- SKU
- Quantity
- Receiving date
- Supplier
- Lot number
- Batch number
- Expiration date
- Manufacturing date
- Purchase order
- Condition notes
- Pallet, case, or unit ID
For simple products, receiving date may be enough. For regulated, perishable, batch-controlled, or recall-sensitive products, lot and expiry data may be needed too.
A common FIFO mistake happens when products are received quickly but not labeled or entered properly. The warehouse may know it has 1,000 units of a SKU, but not which 500 units arrived first.
Step 2: Labeling Inventory So Workers Can See Age
Labels should make age visible.
| Field | Example |
|---|---|
| SKU | VAN-PRO-12PK |
| Product name | Vanilla Protein Powder, 12-pack |
| Received date | April 1 |
| Lot number | LOT-A421 |
| Expiration date | December 1 |
| Quantity | 48 cases |
| Storage location | A-04-02 |
Barcode labels can reduce manual checks because the system can confirm whether the worker is handling the right pallet, case, or bin.
Without clear labels, teams may rely on memory, shelf position, or worker judgment. That may work in a small stockroom. It does not hold up well when SKU counts, order volume, returns, staffing, and warehouse locations increase.
Step 3: Putaway and Storage Layout
Putaway decides where inventory goes after receiving.
For FIFO, newer inventory should not block older inventory. That sounds obvious, but it is one of the most common failure points in real warehouses.
Poor putaway creates a number of problems.
- New pallets placed in front of old pallets
- Mixed lots in the same location
- Old cases buried behind new cases
- Overflow stock separated from the main SKU location
- Forward pick bins filled with newer inventory while older reserve stock sits untouched
The best storage setup depends on the product, order profile, warehouse layout, and available racking.
FIFO-Friendly Storage Systems
| Storage Method | FIFO Fit | Why It Helps |
|---|---|---|
| Pallet flow racking | Strong | Pallets load from one side and pick from the other |
| Carton flow racking | Strong | Smaller items flow forward for picking |
| Dedicated lot locations | Strong | Reduces mixed-batch confusion |
| Floor stack lanes | Moderate | Can work if load and pick sides are controlled |
| Standard selective racking | Moderate | Works with strong location control and WMS rules |
| Push-back racking | Weak for FIFO | Usually supports LIFO because the newest pallet is easiest to remove |
| Random overflow storage | Risky | Can hide older stock outside normal pick paths |
A warehouse layout doesn’t need to be fancy to support FIFO. It does need to make the right behavior easy. If the oldest stock is harder to reach than the newest stock, workers will eventually find shortcuts.
Step 4: Replenishment Without Burying Old Stock
Replenishment is the quiet place where FIFO can fall apart.
Many ecommerce warehouses use forward pick locations for fast-moving SKUs. These are smaller pick locations that workers access frequently. Bulk stock sits elsewhere in reserve.
FIFO depends on how those forward locations are refilled.
If the forward pick bin runs low, the warehouse should replenish it from the oldest eligible reserve inventory. If newer inventory is closer, easier, or placed in the wrong location, workers may refill from the wrong batch.
That creates a false sense of FIFO. Orders are being picked from the forward location, but the forward location itself may have been replenished incorrectly.
A strong process answers these questions.
- Which reserve pallet should replenish this pick location?
- Is the lot number correct?
- Is the expiration date acceptable?
- Are we mixing lots in one pick bin?
- Are we recording the movement?
- Is the older reserve stock still accessible?
Step 5: Picking the Oldest Eligible Inventory
Picking is where FIFO becomes visible.
In a manual warehouse, a picker may look at labels, dates, or shelf position. In a system-directed warehouse, the WMS tells the picker exactly which location, pallet, lot, or case to pick from.
A simple FIFO pick instruction might look like the below
| Order | SKU | Pick Location | Lot | Received Date | Expiration Date |
|---|---|---|---|---|---|
| 104928 | VAN-PRO-12PK | A-04-02 | LOT-A421 | April 1 | December 1 |
A stronger scan-based process asks the worker to scan:
- The location
- The product
- The pallet, case, or lot
- The picked quantity
If the picker scans the wrong lot or location, the system can block or warn the user.
FIFO can’t depend only on training. Training helps, but people are human. Scanning catches mistakes before they become shipped mistakes.
Step 6: Packing and Shipping Checks
Packing is the last chance to catch a FIFO miss before the order leaves.
For products with expiration dates, batch numbers, or retailer requirements, packing checks may verify:
- Correct SKU
- Correct quantity
- Correct lot
- Acceptable expiration date
- Correct packaging version
- No damaged or expired product
- No recalled or quarantined stock
This is useful for food, supplements, cosmetics, medical products, and other goods where old or incorrect inventory can create larger problems than a normal picking error.
Step 7: Inventory Aging Reports
FIFO is easier to trust when inventory aging is visible.
An inventory aging report groups stock by how long it has been in storage. This helps teams spot slow-moving or forgotten inventory before it becomes a margin problem.
Example aging report:
| Inventory Age | Units on Hand | Share of Inventory | Suggested Action |
|---|---|---|---|
| 0 to 30 days | 4,200 | 42% | Normal flow |
| 31 to 60 days | 2,800 | 28% | Monitor |
| 61 to 90 days | 1,600 | 16% | Review demand and replenishment |
| 91 to 120 days | 900 | 9% | Consider promotion or transfer |
| 120+ days | 500 | 5% | Investigate aging, discount, or quarantine |
A simple visual can make the risk clear:
Inventory Age by Units
0–30 days █████████████████████ 4,200
31–60 days ██████████████ 2,800
61–90 days ████████ 1,600
91–120 days ████ 900
120+ days ██ 500
The goal is not just to know what is in stock. The goal is to know how old the stock is, where it is, and whether it is moving in the right order.
FIFO vs FEFO vs LIFO
FIFO is not the only stock rotation method.
Three common methods are FIFO, FEFO, and LIFO.
| Method | Full Name | Basic Rule | Best Used For | Main Risk |
|---|---|---|---|---|
| FIFO | First In, First Out | Oldest received stock moves first | General inventory, ecommerce goods, stable products | Newer stock may expire sooner |
| FEFO | First Expired, First Out | Stock with the earliest expiration date moves first | Food, pharma, supplements, cosmetics | Requires accurate expiration tracking |
| LIFO | Last In, First Out | Newest stock moves first | Some bulk storage or accounting contexts | Older inventory can get buried |
FIFO vs FEFO
FIFO and FEFO are easy to confuse.
FIFO prioritizes the oldest received inventory.
FEFO prioritizes the inventory that expires first.
Those are not always the same.
| Lot | Date Received | Expiration Date | FIFO Priority | FEFO Priority |
|---|---|---|---|---|
| Lot A | April 1 | December 1 | 1 | 2 |
| Lot B | April 15 | December 15 | 2 | 3 |
| Lot C | May 1 | November 15 | 3 | 1 |
Under FIFO, Lot A ships first because it arrived first.
Under FEFO, Lot C ships first because it expires first.
For expiration-controlled products, FEFO may be the better warehouse rule. FIFO may still be useful, but it should not override shelf-life logic.
FIFO vs LIFO
LIFO stands for Last In, First Out.
In physical warehousing, LIFO may happen when the newest product is easiest to access. Push-back racking is a simple example. The latest pallet loaded into the lane is usually the first pallet that can be removed.
LIFO can work for some products and storage setups, but it is risky for goods that age, expire, change packaging, or need lot control.
For ecommerce fulfillment, FIFO is usually the safer physical rotation rule.
Which Products Need FIFO Most?
FIFO can help many inventory-based businesses, but some product categories need it more than others.
| Product Category | Why FIFO Helps |
|---|---|
| Food and beverage | Reduces spoilage and freshness issues |
| Supplements and vitamins | Helps manage expiration and lot control |
| Cosmetics and personal care | Reduces aging, formula changes, and packaging mismatch |
| Healthcare products | Supports batch control and recall response |
| Electronics | Helps move older versions before product refreshes |
| Apparel | Helps prevent aging seasonal stock |
| CPG products | Supports retailer expectations and stock rotation |
| Promotional goods | Helps avoid outdated campaigns or packaging |
| Kitted products | Helps manage component age and version control |
FIFO is not only about perishable products.
Even non-perishable goods can become stale. Packaging changes. Product inserts change. Branding changes. Retailer requirements change. Seasonal demand passes. Newer versions replace older versions. An item does not need to expire to become a problem.
FIFO and Food Traceability
For food and other regulated products, FIFO connects closely to traceability.
FIFO alone does not make a warehouse compliant with food safety rules. But the same controls that support FIFO can also support better traceability:
- Lot capture
- Receiving records
- Shipping records
- Date tracking
- Supplier records
- Location history
- Recall reports
- Hold and quarantine processes
If a product is recalled, the warehouse needs to know what came in, where it was stored, which orders received it, and what inventory is still on hand.
FIFO helps reduce aging, but traceability helps answer a different question. Where did this product go? A strong warehouse process should support both.
Where FIFO Breaks Down in Real Warehouses
FIFO Failure Points
| Failure Point | What Happens | Result |
|---|---|---|
| New stock blocks old stock | New pallets are placed in front of older pallets | Older stock gets trapped |
| Mixed lots in one bin | Different batches share a location without clear tracking | Pickers choose the wrong lot |
| Weak receiving data | Dates, lots, or expiry fields are missing | FIFO cannot be verified |
| Manual overrides | Workers bypass system instructions | FIFO exceptions go untracked |
| Poor replenishment | Forward pick bins are refilled with newer stock | Old reserve stock keeps aging |
| Returns mishandled | Returned items go back into sellable stock without review | Quality and age uncertainty |
| Overflow storage | Extra stock is placed outside normal locations | Inventory gets forgotten |
| Kitting complexity | Components have different lots or expiration dates | Finished kits become hard to trace |
| Rush orders | Speed overrides rotation rules | Older inventory may be skipped |
| No aging report | Teams track quantity but not age | Aging inventory becomes invisible |
This is why FIFO needs management. A warehouse can have good intentions and still create aging inventory if the process is loose.
How a WMS Supports FIFO
A warehouse management system can make FIFO much easier to run.
The WMS should not only show that inventory exists. It should show which inventory is oldest, where it is located, and whether it is eligible to ship.
WMS Features That Support FIFO
| WMS Capability | How It Supports FIFO |
|---|---|
| Receiving date capture | Tracks when inventory entered the warehouse |
| Lot and batch tracking | Connects inventory to production or supplier batches |
| Expiration date fields | Enables FEFO when expiry matters |
| Bin-level location control | Shows exactly where older inventory is stored |
| Barcode scanning | Confirms workers pick the right item and lot |
| System-directed picking | Routes pickers to the oldest eligible inventory |
| Hold statuses | Blocks damaged, expired, recalled, or questionable stock |
| Replenishment rules | Moves older reserve stock into forward pick first |
| Aging reports | Shows inventory by time in storage |
| Exception logs | Tracks overrides and process failures |
For smaller businesses, FIFO may start with labels, spreadsheets, and shelf discipline. That can work for a while.
At some point, manual FIFO becomes fragile. More SKUs, more orders, more warehouses, more returns, more staff, and more sales channels all raise the risk of error.
That is usually when a WMS or 3PL warehouse process becomes more than a back-office upgrade. It becomes the thing that protects inventory value.
FIFO Warehouse Layout and Racking
Physical layout can either support FIFO or work against it.
A good FIFO warehouse makes the oldest eligible stock easy to access. A poor layout makes the correct product harder to reach than the wrong product.
FIFO Layout Examples
Good FIFO Flow: Pallet Flow Rack
Load Side Pick Side
New stock enters → [Pallet C][Pallet B][Pallet A] → Oldest stock exits first
In this setup, pallets move toward the pick side. Older pallets leave first.
Risky FIFO Setup: Blocked Floor Stack
Pick Side
[Pallet C - New]
[Pallet B - Mid]
[Pallet A - Old]
Oldest stock is trapped behind newer stock.
In the second setup, workers have to move newer pallets out of the way to reach older inventory. That slows work down and invites shortcuts.
Layout Rules That Help FIFO
- Keep older stock visible and accessible.
- Use separate load and pick sides where possible.
- Avoid mixing multiple lots in one pick location unless the system can control it.
- Use clear location labels.
- Keep overflow storage tied to system locations.
- Design replenishment paths around oldest-stock movement.
- Match racking type to inventory rotation needs.
FIFO is partly a software problem, but it’s also a physical design problem.
FIFO and Returns
Returns can complicate FIFO.
A returned product may be unopened and sellable. It may also be damaged, expired, missing packaging, missing components, or no longer suitable for sale. Returned inventory should not automatically go back into normal stock.
A cleaner process looks like this:
Return received
↓
Inspect condition
↓
Confirm SKU, lot, and date if available
↓
Route to sellable, refurbish, quarantine, vendor return, or disposal
↓
Update inventory status in the system
If returned units are sellable, the warehouse still needs a rule for how they re-enter inventory. Depending on the product, the date may be based on original lot, expiration date, condition, or return processing date.
Without that control, returns can quietly damage FIFO accuracy.
FIFO and Kitting
Kitting adds another layer.
A kit may combine several components into one finished SKU. Each component may have its own lot number, expiration date, or received date.
| Kit Component | Lot | Expiration Date |
|---|---|---|
| Protein powder | LOT-A421 | December 1 |
| Shaker bottle | LOT-S118 | No expiry |
| Sample sachet | LOT-P922 | November 15 |
| Insert card | Version 3 | No expiry |
If the sample sachet expires first, it may control the shelf life of the entire kit.
This is where FIFO alone may not be enough. Kitted products may need component-level tracking, lot history, and FEFO logic for dated components.
FIFO Best Practices
FIFO works better when teams make it visible, measurable, and hard to bypass.
Practical FIFO Controls
| Control | Why It Helps |
|---|---|
| Capture dates at receiving | Prevents missing age data |
| Label every pallet, case, or lot clearly | Makes age visible on the floor |
| Use system-directed picking | Reduces worker guesswork |
| Scan locations and lots | Confirms the correct stock is picked |
| Review aging reports | Spots old inventory before it becomes a loss |
| Control replenishment | Stops newer stock from entering pick locations first |
| Limit manual overrides | Reduces silent FIFO failures |
| Track exceptions | Shows where the process is breaking |
| Inspect returns before restocking | Protects product quality |
| Train teams on the reason behind FIFO | Helps workers understand the cost of skipping it |
Workers are more likely to follow FIFO when they know what is at stake: expired goods, customer complaints, markdowns, waste, recall risk, and lost margin.
FIFO Audit Checklist
A FIFO audit does not need to be complicated. It should answer whether the warehouse can prove that older eligible inventory is moving first.
| Audit Question | Yes / No |
|---|---|
| Can we see receiving date by SKU and location? | |
| Can we see lot or batch number when needed? | |
| Can we identify the oldest inventory for each SKU? | |
| Are forward pick locations replenished from the oldest eligible reserve stock? | |
| Are workers scanning location and item, not just item? | |
| Are expired, damaged, recalled, or questionable goods blocked from shipping? | |
| Are returned products inspected before restocking? | |
| Are manual FIFO overrides logged with a reason? | |
| Are aging reports reviewed on a set schedule? | |
| Are kitted products traceable to component lots when needed? | |
| Can we produce shipment history for a lot during a recall? | |
| Are warehouse layouts helping FIFO, or making workers fight the process? |
If the answer to several of these questions is “no,” the warehouse may still be using FIFO in theory, but not in practice.
When FIFO Is the Wrong Method
FIFO is useful, but it is not always the right rule.
A business may need FEFO, lot-specific picking, serial-number control, or customer-specific allocation instead.
- Newer stock expires sooner than older stock
- Retailers require a minimum remaining shelf life
- Products are regulated by batch or lot
- Inventory is serialized
- Product versions differ by production run
- Certain stock is reserved for a specific customer
- Kitted products contain dated components
- Warehouse racking makes older stock harder to access
- Returns re-enter stock with uncertain age or condition
The better approach is not “always use FIFO.”
Use FIFO when receipt order is the right driver. Use FEFO when expiration date is the right driver. Use tighter lot, batch, or serial controls when product risk demands it.
How a 3PL Helps Manage FIFO
For growing ecommerce brands, FIFO can become difficult to manage in-house.
At low volume, a team may be able to rotate stock manually. Once the brand adds more SKUs, more suppliers, more product versions, more order channels, more warehouse space, and more returns, the process needs stronger control.
- Structured receiving processes
- SKU, lot, and date capture
- Barcode-supported warehouse movement
- WMS-directed picking
- Location-level inventory control
- Replenishment rules
- Aging reports
- Kitting and assembly controls
- Returns inspection
- Exception reporting
- Ecommerce and marketplace integrations
For brands that sell products with shelf lives, batches, packaging changes, or seasonal demand, FIFO is not just a warehouse detail. It affects cash flow, customer experience, product quality, and inventory risk.
The right fulfillment partner should be able to explain how inventory is received, labeled, stored, picked, rotated, reported, and audited. If they can’t explain that clearly, FIFO may be more of a claim than a process.
A Practical FIFO Example for Ecommerce Fulfillment
Let’s say an ecommerce brand sells flavored hydration powder.
The warehouse receives:
| Lot | Date Received | Quantity | Expiration Date |
|---|---|---|---|
| Lot A | May 1 | 1,000 units | February 1 |
| Lot B | May 20 | 1,500 units | March 1 |
| Lot C | June 10 | 1,000 units | January 15 |
Under basic FIFO, the warehouse would ship Lot A first because it arrived first. But under FEFO, Lot C should ship first because it expires first.
The wrong rule can leave the business with aging product even when the team thinks it is rotating stock properly.
Now add a retailer requirement: the customer must receive product with at least six months of shelf life left.
The warehouse now needs to check more than “which lot is oldest?” It must also check whether the lot is eligible to ship to that customer. That’s the real world of inventory management. FIFO is the starting point, not the whole system.
FIFO Metrics You Should Track
To manage FIFO well, track more than on-hand quantity.
| Metric | What It Shows |
|---|---|
| Average inventory age | How long products sit before shipping |
| Units by age bucket | How much stock is aging |
| FIFO compliance rate | How many picks followed rotation rules |
| Override rate | How frequently workers bypassed FIFO |
| Expired or unsellable units | Product lost due to age or quality |
| Markdown rate | Stock discounted because it aged too long |
| Lot traceability completion | How much inventory has complete lot data |
| Return-to-stock aging | Whether returns are distorting inventory age |
| Days on hand by SKU | Whether buying and demand are aligned |