# Maintaining Strong FIFO in Parallel FIFO Lanes

FIFO lanes are a common and easy way to manage material flow. However, sometimes there is not enough space to make a long FIFO lane. In this case the FIFO lane is often split into multiple sub-segments. This post looks at how to maintain strict (or strong) FIFO in such parallel FIFO lanes.

## Introduction

FIFO stand for First In First Out, and is often used to maintain a sequence in manufacturing. A FIFO is also a buffer inventory, and hence decouples fluctuations (see The Three Fundamental Ways to Decouple Fluctuations). The bigger the inventory, the better the decoupling, although smaller inventories have other advantages.

While there are ways to calculate the length of a FIFO (see my post The FIFO Calculator), these approaches are usually not practical, and in reality somebody just estimates the length of a FIFO. In some cases, the number of slots in a FIFO may be large, and may make the FIFO too long for practical use.

In this case it may make sense to split the FIFO into two (or more) segments just to fit the whole thing in your floor space without blocking roads or generally being in the way. The challenge is to make sure that you still maintain the FIFO sequence.

Similarly, a supermarket is just a bunch of FIFO lanes separated by products. For a supermarket you can also calculate the number of kanban. Here too, you may end up with a rather large number of kanban, requiring at least one of your supermarket lanes to be excessively long as shown in the image here.

Here too, you may split a long single FIFO lane within a supermarket into two or more parallel lines. Again, the challenge is how to maintain the FIFO sequence. In the following I will show you approaches to maintain a strict FIFO. The options for handling parallel FIFO lanes are the same, regardless if it is “only” a FIFO, or a FIFO within a supermarket.

## Data-Heavy Labeling

One option is to simply attach a sheet of paper to each item in the parallel FIFO lanes, indicating the sequence. For practical reasons this may also be a date and time of production or date and time of the item being added into the supermarket. An item can be added to any free lane in the supermarket. For the removal, however, the oldest item in the front row always has to be removed first. This approach ensures that the correct FIFO sequence is maintained.

However, from the practical point of view, this method is usually inconvenient. First of all, someone has to label the items before adding them into the supermarket. However, if you are lucky this may be already part of the documentation of the item.

The real work is usually for the person removing the items. This person has to look at all items in the front row, and has to search the oldest one. Not only is the work time consuming, but it is also pretty boring, especially if you have to do it dozens of times during a day.

This approach is best used if you have a random access storage anyway (like a pallet shelf) that is managed by your ERP program. The ERP program knows the oldest part, and simply directs a forklift driver to the correct location to pick up the oldest part.

## Fill One Row/Empty One Row

Another option is for the adding process to add into one row till it is full, and for the removing process to remove one row till it is empty. (But read the entire section before using it, there is one MAJOR caveat!)

### First Two Rules

The animation shows how sequential FIFOs are filled and removed again. There are two rules (and an important third one comes later):

• Add items in the row where the last item was added. If full, move to the next row. If the entire FIFO system is full, stop adding until space is available.
• Remove items in the row where the last item was removed. If empty, move to the next row. If the entire FIFO system is empty, stop removing until parts are available.

Granted, this animation has a long filling sequence, followed by a long removing sequence, and is only intended to demonstrate the process. In reality this will be more mixed – you add some, remove some, add some more, and so on.

### The Problem with Overtaking

This, however, makes the entire process tricky. If the filling process overtakes the removing process, the sequence goes out of whack! See for example the second animation. Parts 1–7 are removed, and then parts 21–25 are added. The next removal of part 7 in the second row is followed by adding part 25 also in the second row. A few cycles later, part 8 is removed, followed according to the above logic by part 25 instead of part 9.

Now you are out of sequence! It is easy to imagine that a sequential adding and removing always uses the second lane. Parts 9–20 will be forgotten and the sequence will be totally off.

### The Important 3rd Rule

To avoid this problem of being out of  sequence, we need an important additional rule:

• The adding process can NEVER add to the lane currently assigned for removal, nor overtake that lane!

The adding lane can never add an item to the removal lane, overtaking the removal lane! Otherwise the sequence gets misaligned.

### No Problem for Removal Catching Up with Adding

Please note that there is no similar restriction on the removing lane. The removing lane can without any problems remove items from the adding lane as shown in the animation. Hence, only the process adding to the parallel FIFO lanes needs to take care of not moving into the lane where items are currently removed.

### Practical Set Up

The challenge is to ensure the adding process does not overflow into the lane where items are removed. This is indeed a challenge. Material handling like forklift drivers will be happy to place the material in a free spot. As shown in the image here, there is indeed a free spot, but they are not allowed to use this space.

If you have ever worked with forklift drivers, you will know that this is hard to compute for these drivers. More likely than not, they will break the rule (“just this once”), and your sequencing breaks. Unfortunately, it needs only one rule breaking to create a massive disruption in the sequence.

Hence, from the practical point of view, you need first a visual signal of which lane is forbidden. The people adding material need to know which lane is off limits. Here you have many different options. Of course, you could work with some simple signals. I have frequently seen plastic flower pots placed on top of larger material as signals.

There could also be a red lamp that is activated by a switch on the removal side. While this informs the person adding items, it does not prevent them from adding items. Hence you need quite a bit of training to make them understand why this is necessary. Better but more cumbersome to set up would be a device that actively prevents them from adding items in a blocked lane. This could be done karakuri kaizen style with two gates that are connected by rollers. If the removing process opens up one gate, the corresponding other side automatically rolls down. The removing process just should not forget to close the gate again after the lane is empty, hence freeing up the lane for the adding process.

Again, there are many different options; the above are only suggestions. In all cases you have the problem that some of your FIFO space cannot be used to store material. Hence you do not use the full space available (otherwise you break FIFO sequence). To be precise, the average quantity you can store in this parallel FIFOs is half of a lane less than the full space available, since one lane is always blocked from adding material.

You could of course avoid this with the data-heavy labeling and searching for the oldest material, but again this would make the work more cumbersome. Another disadvantage of this approach is that it is not very robust, and mistakes can mess up the sequence very badly.

Another option that maintains a strict FIFO is to add the next part always in the next adjacent lane to the previous adding. Similarly, the next part is always removed in the next adjacent lane to the previous removal. The animation here shows this sequence for this first 10 parts in the parallel FIFO example.

The disadvantage of this method is that you need to switch lanes at every single addition or removal, hence it is quite a bit of work to maintain the standard. Compared to the “Fill/Empty Row” above, you can now use the entire buffer space. Even better, if there is a mistake and an item is added in or removed from the wrong lane the sequence is only slightly disturbed. This method is more robust against mistakes than the “Fill/Empty Row”.

In my next post I will present you alternatives that use the full space with less effort, in which they do not maintain a strict FIFO sequence but only a weak sequence. Until then, go out, get your material flowing, and organize your industry!

## 5 thoughts on “Maintaining Strong FIFO in Parallel FIFO Lanes”

1. I had a chance to visit a large, well-known electric car manufacturer.

I saw pallets full of assembled battery packs sitting on pallets. It was obvious that FIFO lane discipline was not being maintained.

I asked and was told a story about how some defective battery packs were found. “OK, they’ll all be contained in the FIFO area,” they thought. They should have been.

Because there wasn’t FIFO discipline, many of those battery packs were already installed in cars that were already in shipping containers that were half way to China.

They were now going to have to ship replacement battery packs to China… all of that extra expense and hassle because of a lack of FIFO discipline.

2. Very nice example of why we should use FIFO. Thanks for sharing!

3. Dear Mr.Roser
Firstly I want to praise everything you write on about on your blog, I am constant reader and always looking forward to new posts.
In this post also excellent examples/animation shown here for maintain FIFO lanes in supermarket.
However my concerns are following:

This 3rd rule “The adding process can NEVER add to the lane currently assigned for removal, nor overtake that lane!”
Not every shop-floor has enough space for this conformity, because of difference in cycle time in the processes. Upstream process is slower than downstream, not by lot, but enough that there space is utilized as best as possible.

Second concern are people who load/unload SM..sometimes the parts are big enough that are heavy to move and follow FIFO. In theory works but in real time they are not following FIFO.