Stocking Strategies: Low or Intermittent Demand Greg Larsen G.A. Larsen Consulting LLC Sponsored by: RockySoft 5/15/2008
Demand for service and other parts is often low volume or intermittent. Commonly accepted safety stocking methods usually assume that departures from planned (forecasted) demand are approximately normally distributed. The standard formula when buffering only for demand uncertainty is: SS = Z L + Rσ SL where SS = Safety Stock Quantity D Z SL = Safety Factor from normal distribution SL = Target service level L = Replenishment lead time R = Review period (equal to zero if continuous review) σ D = Demand uncertainty The lead time often has variation which can be accounted for by modifying the equation above or by adding margin to the value of L that is used in the replenishment process. For simplicity, the lead time will be considered a constant in this discussion. The standard safety stock formula is effective in providing the target service level when forecast errors are approximately normally distributed. Some fairly large departures from normality can often be tolerated without much deviation from the target service level. However, when demand is extremely low volume or intermittent, the standard safety stock formula may perform poorly. This is especially true with short lead times. For low volume demand where many time periods have zero demand and the remainder are just a few units, the Poisson distribution has been found to be a useful alternative. The demand uncertainty that must be buffered is over the lead time for replenishment of the part. The longer the lead time, the more the distribution of demand tends to follow the normal distribution. The Poisson is most useful for low volume short lead time situations. An example will be instructive. Suppose we have part level demand history for the last year in weekly buckets. Weekly time buckets will be used in this discussion without loss of generality. The average weekly demand is.5. About 60% of the weeks had zero demand while the rest had either 1, 2 or 3 units. Demand appears to be occurring randomly with no discernable trend. 2
A histogram of the 52 weeks of history looks like this. The replenishment lead time is 2 weeks and the inventory position is reviewed weekly. This implies the order up to level (OUTL) is equal to (L + 1) times the average weekly demand plus the safety stock quantity. The demand over lead time plus the review period is therefore 3*.5 = 1.5. The distribution of demand over lead time using the Poisson distribution looks like this. To determine the safety stock for a target service level of 99%, we need to find the OUTL that cuts off 1% in the right tail of the demand distribution over lead time. The safety stock value that gives a service level closest to target but not less is 4. This implies an OUTL of 5.5. This OUTL can be seen to cut off a small probability of no more than 1% in the tail of the distribution 3
over lead time. For comparison, the standard SS formula gives a value of 3 and the implied service level is 98.1%, somewhat less than the target of 99%. The Poisson distribution is a useful alternative for low volume situations where demands never exceed a few units in any time bucket. However, often the demand is intermittent with many weeks of zero and a few weeks with possibly large demand. The Poisson does not adequately describe this situation. The recommended approach is called the bootstrap. Bootstrap methods are computer intensive and have been developed largely since 1980. A good reference is An Introduction to the Bootstrap by Bradley Efron and Robert Tibshirani (1993). The procedure is to repeatedly sample (L +R) weeks of demand with replacement from the available demand history. This generates the distribution of demand over lead time with no theoretical distribution assumption. Whatever distribution is in the history will be faithfully reproduced in the bootstrap method. Once the demand over lead time is obtained, the process for determining the safety stock is the same as before. The OUTL is found that provides the target service level. The first example of intermittent demand is one in which almost 90% of the weekly buckets of demand history are zero. When there is demand, it is either 45, 50 or 55 units. The histogram of the weekly demand history looks like this. The lead time to replenish this part is 6 weeks and a weekly review is done. The bootstrap procedure is to randomly sample 6 + 1 = 7 weeks of demand from the 52 weeks of history with replacement. 10,000 samples were taken. The history can be shorter or longer than a year but 4
should represent the expected demand going forward. The distribution of the demand over lead time looks like this. There are still 40 45% of the samples with zero and the others have very spotty demand over a wide range. The safety stock quantity which provides an approximate 99% target service level is 120. This is found by identifying the percentile of the demand distribution over lead time which is closest to the target service level. In this case, the 99 th percentile is 160. The historic average weekly demand is 5.77. When 7 times the average demand is subtracted from 160, the safety stock quantity is found to be 120. By comparison, the standard safety stock formula above gives 100 units and an implied service level of slightly less than 97%. A second example of intermittent demand is a case where again, almost 90% of the weekly buckets have zero demand. The nonzero demands are generally in the range of 1 to 26. But there is a single large demand of 192. The historic average is 5.52 and the lead time is 3 weeks. 5
The distribution of the 52 historic demands looks like this. And the distribution of demand over lead time, in this case 3 + 1 = 4 weeks looks like this. The bootstrap method gives a safety stock value of 194 for a target service level of 99%. The standard safety stock formula gives 125. This is a large difference. The problem with this example is that there is a single demand of 192 which is much larger than the others. This causes the bootstrap method to size the safety stock slightly larger than 192 which implies that we would carry inventory to buffer an event that only happened 1/52 weeks in the past year. It is probably not cost effective to do this. Alternatively, the extreme value could be omitted prior to applying the bootstrap. If history repeats itself, there is less than a 2% chance of getting a 6
value so far from the rest of the distribution and stocking out. Perhaps there is a way to anticipate unusually large and infrequent demand. If so, supply can be put in place only when needed. Finally, there are automated outlier detection methods which can find and omit extreme values. The next example is one where the demand during the past year trails off suggesting obsolescence may be near. The bootstrap method will not account for a trend in the historic demand. There is an implicit assumption that the demand distribution is stationary over time. When it is not, the approach needs to be modified. When the demand is trailing off, it can be because the nonzero demands are decreasing in magnitude, the time between nonzero demands is increasing, or some combination of the two. If we divide the history into quarters and sum the demand in each 13 week time period, it can be more easily seen if the demand is trailing off. Suppose when we do this we find total demand of 24 in the oldest quarter, 16 in the next quarter, 9 in the third quarter and zero in the most recent quarter. In this situation, applying the bootstrap method to the entire 52 weeks of history would result in carrying excessive safety stock. In general, a more reasonable approach is to use the most recent quarter or most recent half and apply the bootstrap to that data. In the present example, there is no demand in the most recent quarter so the last half could be used if demand is expected to continue in the future. There are statistical methods to automate the discovery of situations where the level of demand is changing with time, in either direction. In general, the approach is to apply the bootstrap to the most recent data. The last example is when the nonzero demand arrives in clumps. That is, the demands are not close to being evenly distributed over time. In this example, about 85% of the weeks have zero and the rest have demands of 24, 48 or 72. And the nonzero demands tend to be clustered together. Assume the lead time is 6 weeks with a one week review period. 7
The distribution of weekly demand looks like this. And the corresponding distribution over lead time looks like this. 8
The time ordered weekly demands look like this. When the nonzero demands arrive in clumps within lead time, there is an increased chance of stockout. In this example, the bootstrap determines safety stock of 126 units at a 99% service level. The average weekly demand is 6 so the OUTL is (6 + 1)*6 +126 = 168. The sum of the demand in the 6 week period from week 28 through 33 is 169. If the lead time is fixed at 6 weeks, it appears there would be a stockout in week 33. For comparison, the standard safety stock quantity is 101 which is even lower. There are several options. The service level could be raised. A 99.5% SL would produce an OUTL of 192. The lead time might be shortened through an expedite process. If the mechanism could be understood that leads to nonzero demands arriving in clumps, perhaps the situation could be planned for. In conclusion, the standard safety stock formula for buffering demand variation has been effectively used for many years. However, the assumption of normally distributed demand uncertainty over the replenishment lead time can be unrealistic in low volume or intermittent situations. In the case of low volume where there are many time buckets with zero demand and nonzero demands are just a few units, the Poisson distribution has been found to be a useful alternative. When demand is intermittent with possibly large non zero demands, a computer intensive method called the bootstrap has been found effective. The bootstrap randomly samples from the available history to generate the demand distribution over lead time. There are no distributional assumptions. Whatever distribution is present in the history 9
will be reproduced. The generated distribution of demand over lead time is then used to find the safety stock quantity which produces the target level of service. A robust implementation of the methods described in this paper should include the following considerations: 1. Auto detection of situations for which the Poisson (low volume) or bootstrap (intermittent) would be more appropriate than the standard safety stock calculation. 2. Auto detection of outliers. 3. Tests for detecting trends. 4. Tests for detecting non random patterns such as clumping of nonzero demands. 5. Exception signals and event flagging to notify users of special situations e.g. low or intermittent demand, trend, outliers, etc. 6. Analysis tools to weigh the tradeoff between the cost of carrying inventory and the cost of shortage. This would include inventory write off cost with obsolescence and alternative sourcing strategies such as expediting and re sourcing. 10