- There is basic parts selection logic of the availability maximizer, which includes the cost of the part.
- Service parts management must be able to deal with zero demand situations.
This approach and program were written expressly for a low demand environment at the dealer level. Most independent demand inventory algorithms ( EOQ, POQ, Silver-Meal, Parts-Period Balancing, etc.) rely on the statistics of high demand per replenishment period to determine inventory holding and purchasing amounts. And this brings up the question of the applicability of this environment to low demand per replenishment periods.
The Problem of Applicability of Stable Demand Methods to Spare Parts
For environments with relatively stable demand, these methods work reasonably well. Spare parts demand, in contrast, is generally both low in demand per part with significant variability from period to period. As we will find later, low demand and demand variability are related characteristics.
A second limiting factor is that while the spare part demand is low per item, the average spare parts depot will have to carry many times more parts, which must be carried than a manufacturing depot to generate comparable fill levels.
Many Years or Versions of Parts
Spare parts operations must carry not only this model year’s inventories but inventories going back decades.
These three characteristics of the spare parts environment:
- Low demand
- Highly erratic demand
- Massive parts databases
These all present difficult challenges to a company dedicated to order fulfillment.
Who Owns the Dealership Network?
A second feature of the client’s environment was the lack of ownership of the dealership network by the client.
Many of the dealers sold competing agricultural-construction equipment brands and maintained spare parts for these brands in their stockrooms in addition to the OEM spare parts. Because the dealers would not allow the OEM to manage their inventories with the Availability Max model without experiencing significant benefits, any system used would have to both increase fill and reduce the inventory carrying amounts.
From the environmental challenges described above, it should be clear that the OEMs needed an inventory system much different to address the characteristics specific to its part business.
The Basic Part Selection Logic of the Availability Maximizer
The entire logic within the Availability Maximizer is based on the following inventory goals.
- Limited Resources for Inventory
- Capital Required to Carry Inventory Over Order Intervals
- Physical space in the stockroom at the dealer
- The Company’s Interest in Filling as Many Customer Orders as Possible
These two inventory goals are incorporated into the Availability Max as the following:
- The Cost of the Part (limited resources
- Expected Additional Demand Satisfied (companies interest in filling customer orders)
Why the Cost of the Part?
As was noted in the first section this paper, due to the low demand per part, the erratic nature of demand and the vast numbers of parts in a typical spare parts database a depot would have to carry many times as much inventory as a manufacturing operation of the same general size to generate a comparable order fill.
This is because it would be so expensive.
The typical spare parts operation must accept a certain level of stock out on some parts, and a 100% stock out on the lowest demand parts in its database. Even after significant inventory intelligence has been used; at some point, the fill level is based upon the aggregate inventory dollars, the dealer is willing to commit to order fulfillment. At some point, the customer is no longer willing to subsidize higher fill levels with higher part prices.
Therefore inventory dollars investment is a crucial component order fill—inventory investment composed of the aggregate of all parts in inventory. The inventory system can either buy less expensive parts or fewer more costly parts. Therefore, in the algorithm in the Availability Max, the cost of the part is the denominator to the objective function, which Availability Max is attempting to maximize for each part.
Why the Additional Expected Demand Satisfied?
Consider yourself in the situation of the parts manager at an OEM dealership. Every week you must decide as to which parts to order. You, presumably, want to order parts that will sell quickly, which would mean your new purchases would take up less space on your shelves, free up monies for further acquisitions, and please more customers.
But, which parts are the best parts to order?
You could purchase whatever you sold the past week, and that would get you part of the way there. Or, you could analyze the previous year’s demand and, with statistical methods, determine the probability of demand on different parts. This analysis would yield the Additional Expected Demand Satisfied, given a certain order amount. The EADS will always be smaller, or in rare instances, the same as the amount that you chose to order. As it is impossible to satisfy the demand for parts you do not have, EADS will never be bigger than the order amount. The calculation of the EADS is simple.
The Current Inventory Position Versus the Yearly Demand
The current inventory position is compared to the yearly demand of the part to determine the probability of additional demand in some multiple of the order size. If the beginning inventory position is small about the lead time demand, then there is a probabilistically larger chance of unfulfilled demand than if the starting inventory position were larger than the lead time demand. ( later in this paper the specifics of the probability distributions used and their calculations will be expanded upon).
Remember that the second primary objectives for which the model is built are the companies’ interest in filling as many customer orders as possible.
EADS is simply the following formula.
Basic Rule of The Incremental Benefit of Ordering Order Amount (Q)
EADS = % of Q
The Objective Function
The objective function is where the two mathematical expressions of the two inventory goals are put to use. The objective function is the goal that is to be optimized by the Availability Max. In this case, we want the objective function to be maximized.
This will allow the model to select parts that have a high EADS about their cost.
Objective function :
Maximize (Expected Additional Demand Satisfied) / (unit cost)
Determining the numerator, the EADS, to the objective function, is where the majority of effort in the Availability Max model is expended. The relative cost of a part compared to its probability of being subject to a customer demand determines it’s ranking as either a high or low opportunity part.  For two equivalently priced parts, the higher opportunity part is the one with the highest ENDS as a percentage of its order amount. The Availability Max performs the objective function above iteratively.
This means that beginning from a current inventory position, it calculates the objective function for every part in the parts order amount as many times as is necessary. After a single iteration where high opportunity parts are selected for purchase, the purchase amount is then added to the current inventory, and the objective function is calculated again. For the parts purchased on the previous iteration, their opportunity is reduced to reflect the new higher stocking position of those items.
It is important to remember that no part will be identified as a high opportunity part for all model calculations. At some point, the sufficient inventory is purchased through prior iterations that the part no longer an attractive alternative to adding more stock. To provide perspective, for the average dealer used in the development of this model, it is common for the model to perform 7000 iterations for purchases and returns before arriving at the optimum holding position.
Example 1 shows how the model would choose the parts at different iterations with the demand and cost characteristics in Table 1.
Below are the demand probabilities and costs for part A and part B:
 In practice, since there is neither a strong correlation between expensive parts nor cheap parts with demand history, the more expensive parts are at a disadvantage and typically the last to be purchased by the Availability Max. The degree to which it purchases mostly medium to less expensive depends upon the desired overall service level used as an input. The higher the desired service level, the higher the model will purchase on the cost scale.
 The model is technically defined as an optimizer. This is because it iteratively compares every part until it finds the optimum combination given the objective function, or until it hits a constraint. The constraints are set by the user and include, total inventory dollars, new inventory purchases, individual service level, global service level, and iteration cap.
|Demand of 1||Demand of 2||Demand of 3||Part Cost|
First Iteration .4/5 > .6/8, carry 1 of Part A4
Second Iteration .2/5 < .6/8, carry 1 of Part B
Third Iteration .2/5 >.1/8, carry another of Part A
Final total after three iterations: carry 2 of A and 1 of B
In the first iteration, the probability of a Demand of 1 of Part A divided by Part Cost A. This is compared with Demand of 1 of Part B divided by Part Cost B. However, notice that after the first iteration, the relevant question becomes the probability of a Demand of 2 on Part A vs. a probability of a Demand of 1 for Part B. This is because 1 of Part A has already been purchased.  Therefore, the Availability Max model asks, “What is the incremental probability of moving from 1 to 2 demand of Part A vs. the probability of a demand of moving from 0 to 1 demand of Part B.” It is important not to skim over the preceding paragraph as it is the primary operating logic of the model.
The Specifics of the Objective Function for Part Purchases
As explained above, the EADS is generated by comparing the current inventory position to the demand of the past year. Given a certain level of demand, and a certain level of inventory, there is a section under the curve which is left uncovered by the current inventory holding position. Graph 1 displays a situation with a lead time demand of 4 units, and an average inventory of 5 units. Demands of 6, 7, 8 units and above would be stocked-out 1 unit (6-5), two units, (7-5), and three units (8-5), respectively. Any demand up to 5 will be covered by the current inventory.
Probabilities of Demands Above Inventory Level 5
 Two control sets of data were run through the Available Max with the (1- cum service level) opportunity calculation. On one input file, all fields but the cost field were kept constant, and in the other input file, all fields but the demand field were kept constant. In both cases, the model’s output was consistent. It ordered more of higher demand parts and more of low-cost parts. Also, it ordered parts with the consistency and the magnitude, which would be expected.
The logic of the model used the formula:
(1-Cumulative probability of (beginning inventory))
This statement would be the mathematical expression of the situation in Graph 1. The output from this equation provides the right side of the distribution (from 5 units and higher) while the following formula would provide the left side of the distribution (from 5 units and lower):
(Cumulative probability of (beginning inventory))
By minimizing the right side of the distribution, (1-Cumulativeprobability of (beginning inventory)), the first version of the model was using the correct concept for reducing Expected Demand Not Satisfied, not the Expected Additional Demand Satisfied. For execution purposes, the basic equation of (1-Cumulativeprobabiliy of (n)) was altered to be more robust for the operational version. The following improvement to the basic formula is called the Expected Additional Demand Satisfied purchasing equation.
EADS Purchasing Equation
Q = Incremental increase in inventory (order size)
n = beginning inventory
EXPECTED ADDITIONAL DEMAND SATISFIED = EADS
EADS = -[(Q-1)*PROB.(n+1) + (Q-2)*PROB.(n+2)+…1PROB(N+Q-1)] + Q[1-CUMPROB (n)]
Objective Function = Max ( EADS/(Cost of Part * Q) )
The EADS is a variation of the original formula, in that the right side of the equation (in bold) is identical to the original formula. The difference lies in the left side of the equation, which subtracts the current iteration (1,2,3,4, etc..) from the order size (Q) and multiplies this number by the current iteration added to the beginning inventory (n). This equation is performed for iterations from 1 to infinity until the outcome from the equation is sufficiently close to 0. The model is set such that computation of less than .000001 triggers the model to cease calculating this equation.
Rather than attempting to identify the uncovered or unprotected portion of the distribution curve (the right side in Graph 1), the EADS formula determines the size of the incremental increase in the probability of demand (the portion of probability between the lines from a demand of 5 units to a demand of 6 units in Graph 2).
This addition has benefits regarding the model operation, as well as the increased accuracy of probability estimation.
Incremental Probability Added to Fill Rate by Moving from an Inventory of 5 to an Inventory of 6
 This (EDS) formula and serves as the basis for two other derivations of the Avail Max decision system, one which handles returns and a second, which estimates order fill.
 .000001 was selected as it is reasonably close to 0. By setting this parameter, we save the model computation time, which can be better utilized on relevant calculations. This parameter is especially important when the model is dealing with parts with higher demand patterns.
Fill Rate Estimation
A second alteration to the Avail Max performed by was to how the model estimates fill rate. The Availability Max estimated the fill rate by just adding the probabilities of demand for the inventory, which were in stock.
For instance, if the lead time demand was four units, and the inventory position of 3 units was chosen as an optimum holding amount. The probabilities of demands of 1,2 and three units were added together to arrive at the estimated fill rate. If, for instance, the probabilities of demands for demands of 1, 2, and three were .20,.25, and .15 respectively, then the model would report a 60% fill rate for that particular part.
The Availability Max estimated fill rate to a useful approximation of order fill by modifying the EADS formula explained in the previous section. This new fill estimation mimics how one would calculate fill rates on a spreadsheet. Table 2 provides an example of just such a spreadsheet fill rate estimation.
|Inventory||Demand||Probability||Demand Not Filled||Probability *Demand Not Filled||Probability *Demand|
% not filled = .5/3 = 0.16667
% filled = 1-.1667 = .8333
The Zero Demand Situation
A third area which improved the Availability Max was in the model’s recognition of situations when there is no demand for a part. With any part, no matter how high or low the prior period’s demand, there is always the possibility that the part will experience zero. With the vast majority of parts in a spare parts database, this probability of zero demand is significant as most parts have demands of less than two units over a two week lead time.
For example, a part with a Poisson distribution to its demand pattern, which had a lead time demand the previous year of 2 units, would have a 13.5% chance of not being subject to demand the following year (given use of the naive forecast). This would not amount to a 13.5% fill rate estimation for that part. As the part experienced zero demand, any attempt at fill rate estimation is an illegitimate endeavor and the Availability Max added the probability of zero demand into its fill calculation.
The fill rate estimation is simply a modification of the EADS formula used to purchase parts. The same algorithm is used with 0 used as the beginning inventory variable (n) and the ending inventory substituted for the order amount (Q). The fill rate is then estimated by dividing the EADS by the mean demand of the past year.
Fill Rate Estimation
Q = ending inventory
n = 0
EXPECTED ADDITIONAL DEMAND SATISFIED = EADS
EADS = -[(Q-1)*PROB.(n+1) + (Q-2)*PROB.(n+2)+…1PROB(N+Q-1)] + Q[1-CUMPROB (n)]
Fill Rate = EADS / Mean Demand
Factoring in Returns
A third change made to the Availability Maximizer was to the method by which the model chose to return parts. When first presented, the model used the same logic that was in the original part purchase equation (EADS). However, this did not run in reverse (returns) very well. It displayed a tendency to minimize the right side (uncovered and unprotected) of the distribution as the current inventory was reduced by the order size. For the EADS modification (Q), this time, the incremental decrease in inventory, is subtracted from the current inventory (n) to generate (z), the substitute factor for (n) to enter into the modified EADS equation.
 The Availability Max model contains both a global and individual fill rate cap, which can be entered into the model’s screens before the model is run. The OEM wanted to achieve a global fill rate of 85%. This was introduced before the model ran, and in addition, individual caps were set somewhat higher than that level. However, the minimums and package quantities in whose increments forced the model to purchase in larger increments meant that rarely were the individual fill levels close to the global or individual cap. It is essential, when analyzing the model’s output file, to remember that the caps do not limit the fill which a single part can attain. They only prevent the model for purchasing additional pieces if the estimated fill rate is above the cap on a particular iteration.
From Graph 3, it is clear that the probability gained of moving from a demand of 3 units to a demand of 5 units ( a purchase quantity of 2) and the probability lost of moving from a demand of 5 units to a demand of 3 units (a return quantity of 2) is identical. Therefore it is only necessary that the formula for a part purchase be modified to generate the probability lost of a return. This is produced by changing the semantics of (Q) in the equation from the order amount to the return amount. This is performed by subtracting the return amount from the current inventory (n) and using the output from this activity (which we call (z)) to enter as a substitute for current inventory (n). This new output could then be called the Expected Demand Lost (EDL) as opposed to the (EADS).
The EADS Equation (EDL) Modified for Returns
Q = incremental decrease in inventory
n = current inventory
z = n – Q
EXPECTED DEMAND LOST = EDL
EDL = -[(Q-1)*PROB.(z+1)+(Q-2)*PROB(z+2) +…1PROB(z+Q-1)] + Q[1-CUMPROB (z)]
Objective function = Min( EDL/(Part Cost * Q) )
Is This Logic The Correct Logic to Use for Service Parts Inventory Management?
Dr. Hau Lee, Professor of Industrial Engineering at Stanford University, viewed the Availability Max model in operation and recognized it as an application of the greedy heuristic.  As it happens, Dr. Lee had jointly published a paper on the greedy heuristic’s use in inventory management in which he supports its use for situations with large numbers of parts (a large number of parts in his opinion was over a thousand). In experimental results taken from his paper Multi-Item Service Constrained (s, S) Policies for Spare Parts Logistics Systems published in Naval Research Logistics, Lee, Kleindorfer, Pyke, and Cohen used a multi-item algorithm with a Poisson distribution for both high and low demand types.
Two hundred and fifty periods were simulated to reduce any random error. The results were that the greedy heuristic approximation was very accurate, with average errors ranging from .0006 to .031 for low service level requirements, and from .005, to .008 for high service level requirements. The following quote is from the Naval Research Logistics article.
“It is possible to apply a greedy heuristic to both S (order up to level) and s (order point) incrementing with either S or s, for the part and control variable that provides the largest incremental increase in service for the minimum cost.” (570)
The Poisson, the Normal and the Compound Poisson Distribution Assumptions and the Problem of Specification
To develop the probabilities of different demands for different items for use in EADS, and EDL, it becomes necessary to choose a probability distribution which will closely fit the future expected demand. The Normal distribution is used when the demand is sufficient in volume such that the law of large numbers allows for accurate forecasting. (The graphical representations of the Normal distribution can be found in Graph 2, which is up a few pages.) However, for service parts, only the smallest minority of parts fit this description. For the rest, either a Poisson, Gamma, or Compound Poisson s conventionally believed to offer the correct approximation. The Poisson and Gamma are very similar leftward leaning, positively skewed probability distributions. The graphical representations for both are as follows in Graph 3.
The Poisson and Gamma are both positively skewed distributions (positively skewed means that the longer tail is in the positive number direction). They are typically used when there is a high degree of randomness in the historical data pattern. Both can be used to predict events like the timing of customers arriving at the bank teller window, trucks arriving at a dock, in addition to the demand pattern for C items. The Poisson distribution has been extensively tested and found to be most effective at approximating future demand when the average lead time demand is below ten units over the test period.  The Compound Poisson distribution is used when the demand is both random and extremely “lumpy.”
This distribution is especially applicable when items experience demand in conjunction with one another, for instance, the demand of a left shoe with a right shoe, or the demand for complimentary repair parts. The problem with the Compound Poisson is in its calculation, which is complex. In most low demand situations, either the Poisson or Compound Poisson can be used effectively, and it was the ease of computation, which was the deciding factor in favor of the Poisson for the Availability Maximizer model.
When the model was first presented, it only used the Poisson distribution. Later the Normal distribution for parts with more than a historical demand of 10 over the replenishment lead time was added. The Normal distribution is calculated in the Availability Maximizer through the use of polynomial exponents displayed below. Polynomial exponents are simply a method for approximating the Normal distribution given a specific normalized value for x.
Polynomial Exponential Approximation for the Normal Distribution
k = ((beginning inventory + Q) – mean demand)/ (standard deviation of demand)
(0 <= k <= infinity)
1-.5(1+.196854 * k + .115194 * k2 + .000344 * k3 + .019527 * k4)
Minimums and Package Quantities and Return Thresholds
The model’s logic for choosing parts to buy and hold is known as the “greedy heuristic.” However, while it is single-minded in its search for the best opportunity, it may create purchasing scenarios that are uneconomical. For this reason, a minimum order quantity on the input file was added. The minimum order quantity was based on an EOQ with an order cost of $5 and a holding cost of .24 per year. Also, to guarantee orders consistent with the client’s system, a package quantity column was entered into the input file. Both minimums and package quantities are used when deciding how much to buy. The first purchase will always be in the minimum order amount, and then successive purchases will be in increments of the package quantity.
However, When returning parts, the minimum field is not used. To ensure that the model did not return parts that may be needed at another time, a third column was added to the input file. This column was generated by a nine-month supply of yearly demand. This was called the return threshold field. 
The focus of the project on which the Availability Max model was developed was to test the inventory replenishment logics to select a professional software package which would perform functions similar to the Availability Max. It was decided by the team members that the model would be fed as a naive forecast and that when the software for inventory replenishment was selected, a software package for forecasting would be chosen.
This basic naive approach was further augmented to capture the seasonal nature of the parts of the client. The naive approach was supplemented, as the following paragraphs explain.
For parts with average annual dollar volume x <= $10
If part has demanded of 6 months, then looking forward one and two years ago, use a total of 12 months of demand divided by 2 to generate the bi-monthly demand forecast.
For parts with average annual dollar volume $10< x > $300
If part has demanded of 3 months looking forward to 1 and two years ago, use a total of 6 months of demand divided by 2 to generate a bi-monthly demand forecast.
For parts with average annual dollar volume > $300 parts
If a part has demanded of 2 months looking forward to 1 and two years ago, then use a total of 4 months of demand divided by 2 to generate a bi-monthly demand forecast.
When the forecasting software is finally chosen, this methodology would no longer be used. However, the spare parts databases promise challenges that must be dealt with. The vast majority of parts would be classified as C items under traditional inventory theory, and according to Silver and Peterson, C parts do not lend themselves to anything but naive forecasts.
However, for a small segment of the database, some parts can be forecasted reasonably well. When we say “reasonably” we mean better than a 25% forecast error.
In testing, the Availability Max purchased both inexpensive parts and higher demand parts. Spreadsheets that mimicked the logic in the Availability Max were used to test the ordering and return amounts as well as the corresponding fill rate calculations. These tests to the model’s operating logic indicated the model was selecting parts in conformance with its programming, as of the time of this writing the largest issue is the size of the order minimums. After preliminary runs, the model appeared to be ordering up to the minimum level for the majority of parts. There is evidence that these minimums may be set too high, even though the order cost used is only $5 per line.
During the development of the Availability Max, it was a common occurrence for extra requirements to be projected upon the model. While it may often be intuitively appealing to attempt to include all inventory considerations into the model through the addition of parameters, there are two drawbacks to this approach.
- Number one, the attempted optimization of more than a few basic parameters can lead to a “middling effect,” whereby the parameters tend to neutralize one another.
- Number two, with each additional parameter, a level of complexity is added to the modeling process. This is undesirable as it requires additional resources from the development team. Second, in developing a day-to-day operational inventory management system, the simplicity of execution is a necessity.
What We Do and Research Access
Using the Diagram
Hover over each bullet or plus sign to see more explanation. To move to a different bullet point, just “hover off” and then hover over the new bullet.
References and Footnotes
 Continuous Distributions – specified outcomes cannot be defined, but the range of outcomes can be defined
Discrete Distributions – specified outcomes can be defined, and a range of outcomes can be defined.
 Archibald, B., E. A. Silver, and R. Peterson (1974). “Selecting the Probability Distribution of Demand in a Replenishment Lead Time.” Working Paper No. 89, Department of Management Sciences, University of Waterloo.
 The Availability Max model does not operate under any lead time parameters. It merely analyzes the demand it is fed as demand over some interval, the manipulation to adjust for lead time is performed on the input file. The project team is currently using a baseline of a two week total lead time ( review + replenishment ), which means that all parts with demand less than 234 per year fall into the Poisson assumption. This means that for a typical dealer, less than 100 parts will fall into the Normal calculations in the model.
 Variable order costs ( r ) and holding costs ( A ) are recommended, as it is generally difficult to pinpoint actual costs. For this reason, Silver and Peterson recommend creating exchange curves displaying the effect on order frequency and cycle stock $ with various A/r fractions. At the OEM, while 24% holding cost is un-controversial, the order cost is subject to discussion.
 For the model to operate correctly, minimums are always entered as multiple package quantities.
 During the project, the OEM voiced a need for the model to deal with non-quantitative issues or issues which were not feasible to put into a mathematical form. These included substitutions, multi-substitutions, and unit of measure issues. The substitution issue dealt with the transfer of demand data from an old part, which had been in some way improved and thus been given a new part number. In some cases, one part may be re-engineered into two parts or two parts reengineered and combined into one part. These are defined as multi-substitutions. As for the unit of measure issues, it was common for the dealer and the OEM to have incompatible data records. For instance, if a hose is regularly sold in 50-foot lengths, the demand data may be corrupted when a sale of one 50 foot length is reported as a sale of “50” which may be interpreted as a sale of fifty 50 foot lengths. These types of issues were left to “post processing” in which the data from the output file would be analyzed on an exception basis
 One outcome from all of these changes is that the model was altered to fit the clients’ day to day needs better. A second outcome is that the degree of optimization was effectively reduced as more constraints were placed on the result of inventory purchases and returns. Between individual parts, the fill rates became more staggered, there were many parts with 99% fill rates reported, and fewer parts with midrange fill estimations of 83, 86, 92%, etc… With these added constraints, the model chose to leave many parts with no fill rate and others with fill rates well beyond the 85% target.
 The model has no time horizon or time orientation. It accepts whatever demand it reads from the input file as the demand over the interval it is calculating. If demand over five years were on the input file, then the model would calculate an optimal purchase quantity for five years. As we have assumed a two week total lead time (1 week for review and one week for replenishment), the yearly demand was divided by 26 to arrive at the demand over lead time. Also, the standard deviation, which is used in computation for the probability of demand for the higher demand parts, was available to us from the client’s information systems every month. To change the standard deviation to a bi-monthly variance, the monthly variance was divided by the square root of 2.
 Lee, Pyke, Kleindorfer, and Cohen. “Multi-Item Service Constrained (s, S) Policies for Spare Parts Logistics Systems.” Naval Research Logistics Vol. 39 pp. 561-577 (1992)
 The notation s in (s,S) = reorder point, S = order up to point
 The Problem of Specification defined as the attempt to fit a historical pattern to a probability distribution to use statistical methods on the data. There are a few quantitative techniques such as the Lillefors test for normalcy. But more frequently, the problem of a specification is resolved through the application of probability distributions used for different situations taken from published works.
 Another widespread distribution is Negative Binomial, which is useful for approximating binary events. However, as the Compound Poisson is very similar to it, only the Compound Poisson will be analyzed in this paper.