A FEFO batch picking plan puts earlier-expiring eligible batches before later-expiring ones under a stated rule. Use four synthetic rows to produce a saved six-roll allocation, a remainder check and a separate hold list.
Updated: 17 October 2026
Why arrival order can produce the wrong planning sequence
FIFO means first in, first out: arrival order drives the sequence. FEFO emphasises the relative expiry dates of batches. A batch is a separately tracked group of the same product. A later delivery can contain an earlier-expiring batch, so the oldest delivery is not necessarily the first batch in an expiry-based plan. Keep the two dates in different columns.
This exercise concerns rolls of a non-food packaging material. Every row has the same product, variant and unit. All batch records are invented for practice. This is not a client deployment, an Anar project result, a warehouse observation or a software demonstration. You will prepare a six-roll allocation in a text document, not physically release or move stock.
The stock discrepancy exercise compares recorded and counted quantities. Here, the supplied quantity is an input, not an observation to reconcile. The new question is which supplied batches come first under an explicit planning rule. A zero remaining demand in the document does not mean that an order has actually been picked or delivered.
Define the eligible pool before sorting any dates
The review date is 17 October 2026 and the request is six rolls. The practice rule admits a batch only when its supplied eligibility is yes and its expiry date is known. A missing date and unknown eligibility are separate hold reasons. Neither is converted into zero inventory. This screening rule belongs to the exercise; it is not a universal release procedure.
Eligibility is supplied by the card, not inferred by the reader. A future date does not establish storage history, quality, safety or permission to sell. This guide makes none of those judgements. It does not provide food or medical handling advice. In an operational process, identify the authorised source of eligibility rather than copying a training label onto real goods.
Fix the product identity, variant, location scope and unit before using the quantities together. Do not combine narrow rolls and wide rolls because the description says packaging. The purchase-line receipt review addresses matching deliveries with ordered items. This exercise starts from already supplied batch rows and creates a planning sequence, not a purchase acceptance decision.
| Boundary | Practice rule |
|---|---|
| Item | One non-food packaging material, measured in rolls |
| Demand | 6 rolls |
| Eligibility | Explicitly supplied as yes |
| Sequence | Earliest known expiry among eligible batches |
Read the four source batches before building a result
L1 arrived on 1 October 2026. Its expiry is 20 November 2026, its supplied quantity is four rolls and eligibility is yes. L2 arrived later, on 10 October, but expires earlier, on 5 November. It contains three rolls and eligibility is also yes. These are the two rows that can enter the exercise’s dated eligible pool.
L3 arrived on 12 October and contains five rolls. Eligibility is yes, but the expiry date is missing. L4 arrived on 2 October, has two rolls and an expiry of 30 October, but its eligibility is unknown. L4 has the earliest displayed expiry; that does not allow it to bypass the eligibility screen. A date answers a different question from release status.
Use year-month-day in the practice document so that the same date is read consistently. If an operational source contains an ambiguous date such as 05/11, establish its format before normalising it. Reformatting an unknown value is not a way to recover the missing date. L3 must stay on hold until an authorised source supplies the information required by the process.
| Batch | Arrival | Expiry | Eligible? | Rolls |
|---|---|---|---|---|
| L1 | 2026-10-01 | 2026-11-20 | Yes | 4 |
| L2 | 2026-10-10 | 2026-11-05 | Yes | 3 |
| L3 | 2026-10-12 | Unknown | Yes | 5 |
| L4 | 2026-10-02 | 2026-10-30 | Unknown | 2 |
Allocate six rolls and check every subtraction
First create a hold list: L3 needs its expiry date and L4 needs its eligibility information. Retain their original quantities in the source section. They have not disappeared from the warehouse; they are excluded from this particular planning pool. Next sort L1 and L2 by expiry. Because 5 November precedes 20 November, the sequence is L2 followed by L1.
Take three planned rolls from L2. Remaining demand becomes six minus three, or three. Take those remaining three from L1. Demand becomes zero. The planned remainder is zero for L2 and one for L1. The allocation totals six, and neither selected quantity exceeds the quantity supplied for its batch. Check these conditions independently rather than trusting a neat final total.
If you used arrival order for the same two admitted rows, L1 would come before L2. That is a different rule, not a harmless change in presentation. Label the chosen basis in the document. If a future practice card has equal dates, you would need a stated tie-break rule; do not silently invent one. There is no equal-date tie in this card.
The low-stock alert guide concerns replenishment signals. An aggregate stock figure cannot explain which batch is eligible for this request. Keep the pool, the selected quantities and the held rows visible. A shortage in the admitted pool would remain a shortage; unknown rows should not be pulled in merely to make the requested total work.
| Result | Planned pick | Planned remainder | Reason |
|---|---|---|---|
| First: L2 | 3 | 0 | Earlier known expiry, eligible |
| Second: L1 | 3 | 1 | Next known expiry, eligible |
| L3 hold | Not selected | 5 retained in source | Expiry unknown |
| L4 hold | Not selected | 2 retained in source | Eligibility unknown |
Distinguish the concept from a software removal-date field
The Logistics Cluster’s warehousing terminology contrasts FIFO arrival order with FEFO relative expiry dates. Odoo 19 documents its FEFO strategy using an assigned removal date. That removal date is a separate field before the product’s expiry. A general concept and a particular software field therefore should not be treated as interchangeable labels.
This article does not configure Odoo, reproduce its example as our own, or offer a universal date formula. Our local card explicitly sorts supplied expiry dates after screening. Before implementing a real workflow in software, have the responsible operator confirm which field controls the sequence and how that field is populated. A correct spreadsheet sort cannot validate a different application field.
The two linked sources support these narrow distinctions, not the suitability of the fictional packaging material. Do not claim that either source has approved L1 or L2. Their eligibility is part of the invented input. The digital transformation roadmap offers a bounded starting approach: establish the question and evidence before turning a practice rule into an operational automation.
Save a planning note you can check in fifteen minutes
On Windows, open Start, search for Notepad and launch the text editor. Create a new blank document and title it “FEFO batch picking plan V1, synthetic non-food exercise”. Write the review date, six-roll demand, fixed product boundary and all four input rows. Keep this source section separate from the result. Then copy the template below and fill the sequence, selected quantities, remainders and open questions. A held row should remain identifiable by its original batch code.
Press Ctrl+S, choose Documents, enter fefo-plan-V1.txt as the file name and select Save. Close the editor. Open Documents in File Explorer and double-click fefo-plan-V1.txt to reopen the saved copy. Check that L2 precedes L1, the allocation is three plus three, and L1 retains one planned roll. Verify that L3 still asks for a date and L4 still asks for eligibility. A document that reaches six by concealing either missing field fails the exercise.
Allow three minutes for defining the boundary, five for reading and ordering rows, three for arithmetic and four for saving and reopening. This is a suggested time budget rather than measured performance. The SOP writing guide can help document real responsibilities later. Today’s concrete result is the checked planning file, with no inventory adjustment, physical picking or sales transaction performed.
Date / fixed product and unit / demand: Original batch rows and supplied eligibility: Rule: eligible yes, earliest known expiry first Allocation: L2 = 3; L1 = 3 Planned remainder: L2 = 0; L1 = 1 Hold: L3 needs date; L4 needs eligibility Synthetic plan only; no real stock movement.
Frequently asked questions
Are FEFO and FIFO the same rule?
No. FIFO follows arrival order. This FEFO practice plan follows known expiry dates among batches with supplied eligibility.
Can I put an unknown expiry at the end of the queue?
Not in this exercise. L3 stays on a separate hold list pending its date information.
Does a future expiry prove that a batch is suitable?
No. Eligibility is supplied separately. A date does not establish safety, quality or permission to sell.
Does completing the plan reduce inventory?
No. This is a synthetic text exercise, without an inventory adjustment, physical picking or sales transaction.


