First in, first out (FIFO) lanes are the core of sequential pull. When properly sized, constructed and managed they ensure process and conveyance sequence, provide a buffer to facilitate flow during upstream changeovers, chronic failures, etc., and guard against overproduction. FIFO lanes, among other things, must reflect a maximum level of inventory – number of parts or pieces or total work content (minutes, hours, or days). Without enforced maximum levels the upstream process may produce more or faster than the downstream process can routinely consume.
So, how do you size your FIFO lane? There’s different levels of math that can be thrown at it. Often folks apply some pretty rudimentary thinking, especially initially if they’re in the midst of value stream analysis. Generically, the equation is:
FIFO lane max = desired lead time/takt time (TT)
Of course, then you have to get into the definition of desired lead time. In a perfect world it would be zero, but very few value streams are perfect. In fact the reason we typically use a FIFO lane is that we cannot connect the upstream and downstream process via continuous flow (or supermarket pull, for that matter). So, there obviously are barriers to continuous flow (and pull) – like those pesky changeovers, cycle time mismatches between upstream and downstream, process instability, shelf-life considerations, cure times, shared processes, etc. We must always try to eliminate the barriers, but in the meantime, we often need to live with sequential pull.
…Anyway, back to desired lead time. Below are a handful of possible equations that can be applied. Admittedly, they are not failsafe, but they do prompt some necessary thinking. Like kanban sizing math (often much more complicated), these are principle-based and should be tested out and adjusted as necessary first through table-top simulations and again after real-life piloting and forever, really. You can definitely get carried away calculating factors of safety, applying standard deviation driven coefficients to address variation and the like. I’ll leave that for another time. For now, here are a handful of equations that may be helpful.
If we’re talking cure time, for example:
- FIFO lane max = (cure time/TT) X factor of safety (i.e., to address cure time variation and/or upstream stability issues)
If the issue is shelf life, it can be:
- FIFO lane max = (shelf life/TT) – factor of safety (it makes sense to have margin here)
If the upstream operation has significant set-up time and thus there is a risk that it may “starve” the downstream, then the calculation may look something like:
- FIFO lane max = (Upstream internal set-up time/TT) X factor of safety
The same type of thinking can be applied if the upstream process is shared (i.e., supplying other value streams). Here we may need insight into the “every part every interval” and translate it into an every line every interval (ELEI…just made that one up) thing. The equation may then be:
- FIFO lane max = (ELEI/downstream TT) X factor of safety
If the upstream operation has substantial and chronic failures (i.e., unplanned downtime), and frankly this issue is probably implicit within most factors of safety referenced above, then you may want to consider something like:
- FIFO lane max = (average upstream unplanned downtime event/TT) X factor of safety (to address unplanned downtime duration variation and/or time between unplanned downtime events)
Within a mixed model value stream, sometimes the cycle time (CT) of the downstream process is greater than the upstream CT for some models. (Of course, the average weighted CT of the downstream process is less than or equal to the average weighted CT of the upstream process.) In that situation, the math may look something like:
- FIFO lane max = ((longest downstream CT – TT) X batch volume for longest CT item)/TT
I am sure there is other (and better) math out there. Please share your expertise here!
Of course, lean practitioners aren’t only concerned about the maximum levels. When we exceed maximum levels, we definitely have an abnormal condition that requires real time response. But what about when the FIFO lane has dwindled, when do we signal an abnormal condition? Obviously, when the FIFO lane is empty; but that’s a bit late. This is where we can, for example, use the factor of safety (divided by TT) to help calculate the “red zone.” And there are other conventions that can be used. For another time…