MIT Sloan School of Management MIT Sloan Working Paper 4542-05 May 2005 A Single-Product Inventory Model for Multiple Demand Classes Hasan Arslan, Stephen C. Graves, and Thomas Roemer © 2005 by Hasan Arslan, Stephen C. Graves, and Thomas Roemer. All rights reserved. Short sections of text, not to exceed two paragraphs, may be quoted without explicit permission, provided that full credit including © notice is given to the source. This paper also can be downloaded without charge from the Social Science Research Network Electronic Paper Collection: http://ssrn.com/abstract=725803 A Single-Product Inventory Model for Multiple Demand Classes1 Hasan Arslan,2 Stephen C. Graves,3 and Thomas Roemer4 March 5, 2005 Abstract We consider a single-product inventory system that serves multiple demand classes, which differ in their shortage costs or service level requirements. We assume a critical-level control policy, and show the equivalence between this inventory system and a serial inventory system. Based on this equivalence, we develop a model for cost evaluation and optimization, under the assumptions of Poisson demand, deterministic replenishment lead-time, and a continuous–review (Q, R) policy with rationing. We propose a computationally-efficient heuristic and develop a bound on its performance. We provide a numerical experiment to show the effectiveness of the heuristic and the value from a rationing policy. Finally, we describe how to extend the model to permit service times, and to embed within a multi-echelon setting. 1 This research has been supported in part by the MIT Leaders for Manufacturing Program, a partnership between MIT and global manufacturing firms; and by the Singapore-MIT Alliance, an engineering education and research collaboration among the National University of Singapore, Nanyang Technological University, and MIT. 2 Sawyer School of Management, Suffolk University, Boston MA, 02108-2770, harslan@suffolk.edu 3 Leaders for Manufacturing Program and A. P. Sloan School of Management, MIT, Cambridge MA 02139-4307, sgraves@mit.edu 4 Leaders for Manufacturing Program and A. P. Sloan School of Management, MIT, Cambridge MA 02139-4307, troemer@mit.edu 1 1. Introduction and Literature Review In many inventory settings a supply firm wishes to provide different levels of service to different customers. For instance, in a service parts network, a customer can choose amongst different contracts, each with a different cost and level of service. A “gold contract” might provide a 99% fill rate within twenty-four hours, while a “bronze contract” promises a 85% fill rate within two days. In other settings, a supplier segments its customers based on the delivery channel or the price they pay; the supplier recognizes some customers as deserving higher priority over other customers. In other cases, a supplier provides price discounts for delivery flexibility, and then allows a customer to choose the delivery time when placing an order. A common approach to such scenarios is to categorize the customers into a finite number of demand classes. Customers within a demand class receive the same level of service. The inventory challenge is then to determine how to meet the service level expectations for each demand class with the least amount of inventory. In this paper we consider a single-item inventory system with stochastic demand and multiple demand classes. The key assumptions are Poisson demand, a deterministic lead-time, a continuous-review (Q, R) replenishment policy, and demand backordering. As is common in the literature, we assume a critical-level policy for rationing the inventory across the demand classes. The key contribution of this paper is to show how to map this problem into a serial inventory system. This mapping facilitates the characterization of the steady-state behavior of the inventory system. We then develop an approximate solution procedure to the so-called Service Level Problem; that is, we want to find the critical-level policy that meets specified fill-rate targets for each demand class with the least inventory. We show with both bounds and a numerical experiment that this heuristic is quite robust and near optimal. We also show how to extend the model to permit service times, whereby different demand classes have different service times by which their demand is to be met. Finally, we describe how to use the single-item inventory system to characterize the inventories and backorders in a multi-echelon distribution system. We have organized the paper into seven sections. In the remainder of this section, we discuss the relevant literature. In the following section, we present our assumptions and a general framework to describe how we manage the inventory with a 2 stationary critical-level policy. In section three, we show how to map this inventory system into a serial inventory system. In section four, based on this mapping, we develop a model for cost evaluation and optimization, under the assumptions of Poisson demand, deterministic replenishment lead-time, and a continuous–review (Q, R) policy with rationing. In section five, we pose the Service Level Problem, in which we minimize the expected inventory while satisfying a service level requirement for each demand class. Furthermore, we provide a heuristic solution approach for the Service Level Problem. In section six, we provide a numerical experiment both to compare our proposed heuristic with the optimal solution and to show the value from rationing. In the final section we discuss possible extensions and directions for future research. Kleijn and Dekker (1998) give an overview of inventory systems with multiple demand classes and provide examples of managing inventory with multiple demand classes, ranging from airline service companies to petrochemical companies. In Table 1 we provide a high-level categorization of the literature. Like much of the stochastic-demand inventory literature, we can divide the research based on the assumed control policy, periodic or continuous review, and on assumed treatment of shortages, lost sales or backorders. In addition, some of the key developments are restricted to or primarily focused on two demand classes, whereas other work is not. Two demand classes Periodic-Review, Periodic-Review, Continuous-Review, Lost Sales Backorders Lost Sales Continuous -Review, Backorders Evans (1968) Nahmias and Demmy (1981) Moon and Kang (1998) Deshpande et al. (2003) Dekker et al. (1998) Kaplan (1969) Frank et al. (2003) Melchiors et al. (2000) Veinott (1965) Katircioglu and Melchiors (2001) N Atkins (1996) Dekker et al. (2000) demand Topkis (1968) classes Table 1: Inventory Literature for Single-Product, Multiple Demand Classes Veinott (1965) analyzes an inventory model with several demand classes for a single product. He proposes to use critical inventory levels to ration the on-hand inventory among demand classes. Topkis (1968) subsequently analyzes the proposed critical-level policy for a periodic-review single-product inventory model with multiple demand classes. Kaplan (1969) and Evans (1968) study periodic-review models with only two 3 demand classes, similar to Topkis (1968). Recently, Katircioglu and Atkins (1996) and Frank et al. (2003) analyze periodic-review inventory systems with multiple stochastic demand classes. Katircioglu and Atkins (1996) require an associated service level for each demand class, which had not been analyzed in the previous literature. However, their model allows negative inventory allocations that are hard to explain and implement. Frank et al. (2003) apply rationing to avoid incurring high fixed ordering costs rather than saving inventory for high priority demand. Nahmias and Demmy (1981) study a continuous-review inventory policy with two demand classes. They assume an (Q, R) inventory replenishment policy, a critical-level policy, and at most one outstanding order at any time. This last assumption implies that whenever a reorder quantity is received, the inventory level and inventory position become identical. This allows them to calculate approximate expressions for expected backorders for both demand classes. Moon and Kang (1998) later extend this model to account for compound Poisson demand processes. Deshpande et al. (2003) analyze the same (Q, R) inventory rationing model with two demand classes as in Nahmias and Demmy (1981), but without the restriction on the number of outstanding orders. They introduce the threshold clearing mechanism to fill backorders, which permits them to derive expressions for the expected number of backorders for both classes without restrictions on the number of orders outstanding. Based on these expressions, they develop algorithms to calculate the optimal ordering and rationing parameters. They demonstrate numerically the effectiveness of their model, by comparison to a priority-based backlog clearing mechanism, where high priority backorders are filled before low priority backorders. Melchiors et al. (2000) also analyze a (Q, R) inventory model with two demand classes. Unlike Nahmias and Demmy (1981) and Deshpande et al. (2003), they consider a lost sales environment so that demands from the low priority class are rejected whenever inventory level drops to the critical level. Melchiors (2001) extend the model in Melchiors et al. (2000) to multiple Poisson demand classes with stochastic replenishment lead-times. Moreover, he considers a non-stationary critical-level policy that provides a benchmark to evaluate the stationary critical-level policy employed by Nahmias and Demmy (1981), Melchiors et al. (2000), and Deshpande et al. (2003). Dekker et al. (1998) study an inventory model with two demand classes and one-for-one replenishment policy. The model is similar to the one in Nahmias and 4 Demmy (1981). They assume Poisson demand processes, a deterministic replenishment lead-time, backordering of unfilled demands, and a critical-level policy to ration the inventory. Dekker et al. (1998) explore how best to handle and allocate incoming replenishment orders, which remains an open question in the literature. Dekker et al. (2000) extends the model in Dekker et al. (1998) to multiple demand classes with stochastic replenishment lead-times, but switching to a lost sales environment rather than allowing backorders. They assume one-for-one replenishment policy and a critical-level policy to ration inventory among demand classes. In a lost sales environment, handling incoming replenishment orders is not a dilemma; each incoming replenishment order simply replenishes the inventory. They develop numerical solution methods to efficiently calculate the optimal base stock level and critical levels with or without service level constraints. Ha (1997a) considers a make-to-order production system with a single production facility and multiple demand classes for the end product. He assumes a lost sales environment, exponentially distributed production time, and Poisson demand for each demand class. He shows that a stationary critical level policy is optimal. Ha (1997b) extends the study in Ha (1997a) by allowing backorders to occur. Vericourt et al. (2000, 2002) consider the multiple-demand class extension of the two-demand class study in Ha (1997a). They develop a characterization of the optimal policy for the backorders case with zero set-up costs and exponential lead-times. 2. General Framework Our work is most closely related to that of Nahmias and Demmy (1981) and Deshpande et al. (2003). However, whereas their work considers two demand classes, we have no restriction on the number of demand classes. We also develop the model in what we believe is a more transparent and natural way. Indeed, as will be seen, this allows us to extend the model to permit service times and to analyze a multi-echelon system with multiple demand classes. We consider a facility that carries inventory for a single product to serve N customer classes. We differentiate customer classes based on their relative service level requirements or shortage costs. For our analysis we require the following standard inventory assumptions: (i) We have a fixed replenishment lead-time L > 0; 5 (ii) The demand from class-i, Di , i ∈ { 1, N } follows a stationary Poisson process with rate λi that is independent of the demand from the other demand classes; (iii) We replenish inventory with a continuous-review (Q,R) policy; (iv) We backorder any demand that is not immediately satisfied from on-hand inventory. In addition to these assumptions, we need to describe how we will ration inventory across the demand classes. We number the demand classes according to their relative priority, where class 1 has the highest priority. As suggested by Veinott (1965), { we use a critical-level policy given by c = c1 , c2 , } , cN −1 ci ∈ Z + ∪ {0} and ci −1 ≤ ci . We stop serving demand class-i once the on-hand inventory reaches or falls below the critical stock level ci −1 ; by assumption, we then backorder all demand for class-i until the on-hand inventory is raised above ci −1 . For class-1, we set its critical level c0 = 0; thus, we continue to fill class-1 demand until the on-hand inventory is completely depleted, at which point we backorder any subsequent class-1 demand. We define si = ci − ci −1 for i=1,…N-1 to be the reserve stock for class-i, as it represents the quantity of stock that we protect or reserve for this demand class. By the definition of the critical-level policy, each of these reserve stocks is non-negative. For stage N, we define the reserve stock sN = R − cN −1 , for which we require no assumptions about its sign. We also need an assumption with regard to how we allocate an inventory replenishment at the time it is received. The primary issue is to decide how much of the replenishment we use to fill backorders versus use to re-build the reserve stock for higher-priority demand classes. We defer until the next section the presentation and discussion of our allocation assumption, as it will be easier to explain in the context of the problem mapping to a serial inventory system. 3. The Mapping to a Serial Inventory System The purpose of this section is to observe the equivalence between the single-product inventory system with N demand classes and a single-product inventory system with N serial stages. To ease the presentation, we denote the former as the DCS (demand-class system) and the latter as the SSS (serial stage system). 6 l l N Q N D N l N −1 l 2 N-1 2 D D N −1 1 1 2 D 1 Figure 1: Serial Inventory System with Demand at Each Installation We consider an N-stage serial system (SSS), as shown in Figure 1, and assume that it operates as follows: (i) Each stage i, i ∈ { 1, N − 1 } operates with a one-for-one continuous review base-stock policy with non-negative base-stock level si., and is replenished by its upstream stage i+1 with replenishment lead time l=0. (ii) Stage N is replenished from an outside supplier with lead-time L > 0. Stage N uses a continuous-review reorder-point, reorder-quantity policy with its reorder-quantity equal to Q and its reorder-point equal to sN = R − cN −1 . (iii) Demand at stage 1 follows a stationary Poisson process with rate λ1 . Each stage i, i ∈ { 2, N } is subject to internal demand from stage i-1, as well as external demand; the external demand at stage i follows a stationary Poisson process with rate λi . The N external demand processes are independent. (iv) At each stage we backorder all internal and external demand that cannot be met from on-hand inventory. We contend that this SSS is equivalent to the DCS, as described in the prior section. To establish this equivalence, we will show the two systems behave the same (i) when a demand occurs; (ii) when each system places an order on its outside supplier; and (iii) when each system receives the order from the outside supplier. (i) When a demand occurs. Let IOH represent the on-hand inventory in either the SSS or DCS. If IOH=0, then in both systems we backorder the demand from any class and the on-hand inventory remains at zero. Consider the DCS and suppose that IOH > 0 and c j −1 < IOH ≤ c j for some j ∈ { 1, N } . If the next demand were from class i, i ∈ { 1, j } , it is served and the on-hand inventory level IOH is reduced by one; if the next demand were from class i, i ∈ { j + 1, N } , then it is backordered. 7 Now consider the SSS with IOH > 0 and c j −1 < IOH ≤ c j . The on-hand inventory at each stage i, i ∈ { 1, j − 1 } equals its base stock si. For each stage i, i ∈ { j + 1, N } , there is no on-hand inventory, while stage j has on-hand inventory equal to IOH − c j −1 . If there were a demand for stage i ∈ { 1, j } , the serial system fills the demand, the on-hand inventory at each stage i, i ∈ { 1, j − 1 } remains at its base stock si, and the on-hand inventory at stage j (as well as the IOH) is depleted by one. However, if there were a demand for stage i, i ∈ { j + 1, N } , this demand is not filled but is backordered by stage i. The on-hand inventory IOH does not change. Thus, the behavior is the same. (ii) When each system places an order on its outside supplier. In the DCS, we place an order of size Q when the inventory position reaches the reorder point R, where the inventory position is the on-hand inventory, plus the on-order inventory, minus any backorders. In the SSS, stage N orders from an external supplier when its inventory position reaches a reorder point equal to sN = R − cN −1 . We note that the inventory position for each downstream stage i ∈ { 1, N − 1 } is always si = ci − ci −1 , due to the one-for-one replenishment policy. Thus, the SSS orders from its external supplier when the system N inventory position is: ∑ si = R . Thus, the two systems behave the same. i =1 (iii) When each system receives the order from the outside supplier. Finally, we need to establish that both systems clear the backorders in identical fashion when a replenishment arrives. We will do this by first describing our assumptions for the SSS and then interpreting how these assumptions apply to the DCS. Consider the SSS with on-hand inventory IOH in the system at time t. Suppose that c j −1 < IOH ≤ c j for some j ∈ { 1, N } . The on-hand inventory equals its base stock si for stage i ∈ { 1, j − 1 } , is equal to IOH − c j −1 for stage j, and is zero for stage i ∈ { j + 1, N } . There are no backorders at each stage i, i ∈ { 1, j } . Each stage i, i ∈ { j + 1, N } , has backorders given by: 8 i −1 Bii ( t ) = Di (τ i , t ) and Bi ,i −1 ( t ) = ∑ Dk (τ i , t ) k =1 where Di ( s, t ) is the external demand during time interval (s, t] at stage i; Bii ( t ) is the number of backorders at time t at stage i, due its external demand; Bi ,i −1 ( t ) is the number of backorders at time t at stage i, due to internal demand from stage i-1; and τi is the most recent time at which stage i stocks out. Stage i stocks out once the on-hand inventory reaches ci-1; thus, we determine τ i to be the most recent time epoch at which IOH = ci −1 . Suppose stage N of the SSS receives a replenishment of Q at time t. There are two cases to consider. Q ≥ BNN ( t ) + BN , N −1 ( t ) : The replenishment quantity is sufficient to fill all backorders at stage N, as well as all downstream stages. Thus, this replenishment returns the on-hand inventory at each stage i, i ∈ { 1, N − 1 } to its base stock si; any remaining on-hand inventory is held at stage N. Q < BNN ( t ) + BN , N −1 ( t ) : The replenishment quantity is not sufficient to fill all backorders at stage N, and we need to decide how to allocate the inventory between the two types of backorders. We assume that we fill these backorders in the order of occurrence, with no differentiation between external and internal backorders. N In particular, we find the earliest time s : τ N < s < t such that ∑ Dk (τ N , s ) = Q . k =1 N −1 We set the replenishment quantities to be QNN = DN (τ N , s ) and QN , N −1 = ∑ Dk (τ N , s ) . k =1 Thus, after this allocation the remaining backorders at stage N N −1 are BNN ( t + ) = DN ( s, t ) and BN , N −1 ( t + ) = ∑ Dk ( s, t ) . k =1 We assume this process repeats at each downstream stage. For instance, stage N-1 receives the replenishment of QN,N-1. If it is sufficient to cover the backorders at stage N-1, then we fill these backorders and hold the remainder on hand. If the replenishment is not sufficient to cover the backorders, then we allocate QN,N-1 to fill these backorders in their order of occurrence, as described above. We repeat this allocation process at each downstream stage, until we reach a stage at which the stage’s 9 replenishment covers the backorders at the stage or we reach stage 1. We assume the same allocation process for the DCS. Namely, we assume that we fill backorders in the order of occurrence, with no differentiation between external and internal backorders. We start with demand class N, and need to decide how to split the replenishment quantity between class-N backorders and the outstanding replenishment requests from stages i, i ∈ { 1, N − 1 } . These outstanding replenishment requests can entail both customer backorders and replenishments to re-build the reserve stock at the higher-priority classes. If the replenishment quantity is not sufficient, we will allocate it in the order of the demand occurrences that created the backorders or replenishment requests. This process repeats with each demand class until we reach a class for which the replenishment covers the backorders at the class or we reach demand class 1. This allocation scheme is not optimal. However, it seems to be reasonable given that it allocates the inventory at each stage (or demand class) to the internal and external backorders at the stage in the order of occurrence. Thus, at each stage it tries to balance servicing external versus internal backorders, where the internal backorders include the re-building of a reserve stock at downstream stages (higher priority demand classes). This allocation process is effectively the same as the virtual allocation mechanism introduced in Graves (1996) for the analysis of a multi-echelon arborescent inventory system. As in Graves (1996), this scheme permits significant tractability in the analysis of the inventory system, as will be seen. This completes the discussion equating the DCS to an SSS. We find this equivalence to be helpful in visualizing the operation of the N-demand-class inventory system, and in developing an evaluation model of its performance, as described next. 4. Model for N-Demand-Class Inventory System In this section we develop a model for evaluating the performance of an N-demand-class inventory system, based on the mapping to a serial system from the prior section. We build this model using the terminology of the SSS, and draw upon the framework in Graves (1985). We define additional notation to analyze the inventory dynamics in the serial inventory system, where i ∈ { 1, N } : ILi ( t ) = inventory level at time t at stage i; 10 IPi ( t ) = inventory position (inventory level plus inventory on order) at time t at stage i; Bi ( t ) = number of backorders at time t at stage i; We can characterize how the inventory level at each stage evolves over time using the following equations for the inventory dynamics for the SSS, where [ ⋅ ]+ denotes the positive part of the expression, li is the replenishment lead-time for stage i, and i ∈ { 1, N } : i ILi ( t + li ) = IPt ( t ) − ∑ D j ( t , t + li ) − Bi +1,i ( t ) (1) j =1 Bi ( t ) = ⎡⎣ − ILi ( t ) ⎤⎦ + (2) Bi ( t ) = Bii ( t ) + Bi ,i −1 ( t ) (3) B1,0 ( t ) = 0; BN +1, N ( t ) = 0 (4) The explanation for (1) parallels that in Graves (1985): at time t the outstanding orders for stage i are either in-process to stage i or are backordered at the immediate upstream stage i + 1. All items that were in-process at time t will arrive at stage i by time t + li, by the definition of the lead-time. However, none of the backorders at stage i + 1 at time t can arrive to stage i by time t + li, again by the definition of the lead-time. Furthermore, stage i is subject to demand from its own external demand process, plus that for all downstream stages due to the one-for-one replenishment policy. Any demand during the time interval (t, t + li] reduces its inventory level and cannot be replenished by time t + li. Hence, the inventory level at time t + li at stage i equals its inventory position at time t net of its outstanding orders, namely the backorders at time t and all demand during the time interval (t, t + li]. In equation (2) we state the backorders to be the negative part of the inventory level. In equation (3) we decompose the backorders at stage i into backorders created by the external demand at stage i and backorders from replenishment requests from the immediate downstream stage. We stipulate boundary conditions on the model in equation (4), namely stage 1 serves no downstream stages and the outside supplier for stage N is reliable and meets any request within its lead-time lN = L. In the context of the DCS, the replenishment lead-time li = 0 for stages i, i ∈ { 1, N − 1 } . Furthermore, due to the continuous-review one-for-one replenishment policy at stages i, i ∈ { 1, N − 1 } , the inventory position for each stage always equals its 11 base-stock level si. For stage N, its lead-time is positive, lN = L. The steady-state inventory position for stage N is uniformly distributed on the range [ sN + 1, sN + Q ] , given the assumption of a reorder-point, reorder-quantity replenishment system with these parameters (Zipkin 2000, p. 193). We now use these observations to re-write the steady-state form for equations (1) – (4): N ILN = IPN − ∑ DiL (5) i =1 ILi = si − Bi +1,i for i = 1, 2, N -1 (6) Bi = [ − ILi ] (7) Bi = Bii + Bi ,i −1 (8) B1,0 = 0 (9) + where DiL is the random variable for the external demand at stage i over an interval of length L; thus, it represents a Poisson random variable with mean λi L . We need to establish one more property before we can use equations (5) – (9) to determine the steady-state distribution of the inventory level at each stage. We intend to use (5) or (6) to find the distribution of the inventory level, and then (7) to get the distribution of the total backorders Bi at a stage. We then need to find the distribution of Bi ,i −1 , the backorders at stage i due to downstream demand. To do this, we contend that the probability distribution of Bi ,i −1 , conditioned on a realization for Bi , is a binomial. In particular, we have for j ∈ { 0, n } that i −1 ⎛n⎞ n− j Pr ⎡⎣ Bi ,i −1 = j Bi = n ⎤⎦ = ⎜ ⎟ pij (1 − pi ) ⎝ j⎠ where pi = ∑λ j =1 i ∑λ j =1 j . (10) j As explanation, we note that once stage i stocks out, backorders occur randomly according to the rates for the Poisson demand processes. The backorders due to external demand at stage i occur at rate λi ; backorders due to internal demand from i −1 stage i-1 occur at rate ∑ λ j . Thus, if n backorders occur, the number of backorders due j =1 12 to internal demand is a binomial random variable with parameters ( n, pi ) . Furthermore, the allocation scheme for filling backorders, described in the prior section, preserves this random distribution of backorders, as it fills backorders in the order of their occurrence. As a consequence, at any time t, if stage i has positive backorders, i then Bi ( t ) = ∑ D j ( s, t ) for some value of s<t. Due to the memory-less property and j =1 independence of the Poisson demand processes, the conditional distribution of Bi ,i −1 is binomial. We can now determine the steady-state distribution of the inventory levels, given the policy parameters ( Q, R ) and ( c1 ,… , cN −1 ) . The procedure starts from the most upstream stage N and moves iteratively to each downstream stage, as follows: Step 1: Set i = N. Determine the steady-state distribution of ILN. We obtain the distribution of ILN from equation (5) by convolving the distribution of IPN with that for N ∑D i =1 L i . The former is a uniform random variable on the interval [ sN + 1, sN + Q ] ; the N latter is a Poisson random variable with mean L ∑ λi . i =1 Step 2: Obtain the steady-state distribution of Bi = [ − ILi ] , backorders at stage i. + Step 3: Determine the steady-state distribution of Bi ,i −1 . We use the distribution for Bi with (10) to get the un-conditioned distribution for Bi ,i −1 . Step 4: Set i := i − 1 . Determine the steady-state distribution of ILi from (6). Step 5: Stop if i =1. Otherwise go to Step 2. With the steady-state distribution of the inventory level at each stage, we can compute relevant performance measures, such as the expected on-hand inventory, the expected backorders, and the fill rate for each demand class. We can then pose an optimization problem to find the best choice for the control parameters, namely the reorder point R, reorder quantity Q, and the critical levels {ci : i = 1,..., N − 1} (or equivalently the reserve stocks {si = ci − ci −1 : i = 1,..., N − 1} ). In the next section, we illustrate one such optimization, in which we minimize the expected on-hand inventory 13 subject to constraints on the fill rates for each demand class. 5. Service Level Problem There are many ways to look at the tradeoff between holding inventory and achieving a high level of customer service. We consider one problem variant, in which we minimize the amount of inventory needed to satisfy a given fill rate target for each demand class. In effect, we define the demand classes by their fill-rate targets; we would cluster customers into the demand classes according to their service promises or expectations, with demand class 1 corresponding to the highest level of service and so on. We formulate this service level problem (SLP) for a DCS as follows: N SLP Min z = ∑ E [ ILi ] + i =1 s.t. Fillratei ≥ β i si ≥ 0, integer for i = 1,… , N for i = 1,… , N − 1 sN integer where ⎧Pr ( ILi > 0 ) if si > 0 ⎫ Fillratei = ⎨ ⎬ for i = 1,… , N − 1 ⎩ Fillratei +1 if si = 0 ⎭ FillrateN = Pr ( ILN > 0 ) The objective is to minimize the expected on-hand inventory, which is the positive part of the inventory level. The reserve stocks si are the decision variables, from which we can find both the critical levels ci and the reorder point R. To simplify the presentation we assume that the order quantity Q is not a decision variable, but has been pre-specified. The constraints assure that we meet a fill-rate target βi for each demand class i. The computation of the fill rate depends on the reserve stock level of the demand class. If the reserve stock for the demand class is positive, then for Poisson demand the fill rate equals the probability that the inventory level is positive. When the reserve stock for the demand class i is zero, then the fill rate for demand class i is the same as that for demand class i+1. This is because when si = 0, there is no distinction in order fulfillment between a demand from class i and a demand from class i+1. In formulating the SLP, we expect (although don’t require) that the higher-priority demand classes have larger fill-rate targets; that is, we expect β1 ≥ β 2 ≥ … ≥ β N . Indeed, the structure of the critical-level policy guarantees 14 that demand class i has a fill rate no worse than that for demand class i+1. From the model (5) – (9), we see that the inventory level at demand class i, ILi, depends on its reserve stock and that for lower-ranked demand classes; that is, ILi is a function of ( si ,… , sN ) . In the following, we will at times use the notation ILi ( si ,… , sN ) to make this dependence explicit. Solution Procedure for the Service Level Problem In this section we state a sequential solution method, the Single-Pass-Algorithm (SPA), which provides us with a good feasible solution for the SLP. We then establish a bound on the gap between the SPA solution and the optimal solution to the SLP. SPA uses the model given by (5) - (9) to find the reserve stock for each demand class sequentially, starting with stage N. For each demand class i, SPA finds the minimum value for its reserve stock that satisfies its fill-rate target, given the previously-determined reserve stocks for demand classes i+1,…,N. We state the algorithm as follows: { } 1. Find reserve stock and fill rate for stage N: sˆN = min s : Pr ( ILN ( s ) > 0 ) ≥ β N ; and FillrateN = Pr ( ILN ( sˆN ) > 0 ) ; let i := N-1. 2. Find reserve stock and fill rate for stage i : a. If Fillratei +1 ≥ βi : sˆi = 0; Fillratei = Fillratei +1 b. If Fillratei +1 < β i : sˆi = min s : Pr ( ILi ( s, sˆi +1 ,… , sˆN ) > 0 ) ≥ β i ; and { } Fillratei = Pr ( ILi ( sˆi , sˆi +1 ,… , sˆN ) > 0 ) 3. Stop if i:= 1. Otherwise, let i := i-1 and repeat step 2. The Single-Pass-Algorithm yields a feasible solution for the SLP by construction: at each iterative step, it sets the reserve stock for a demand class to satisfy the fill-rate constraint for this demand class. However, there is no guarantee that the solution is optimal; later in this section we provide an example that illustrates this. We contend that the solution for the SPA should be quite good. To develop this argument, it will be helpful to re-write the objective function of SLP as N N z = ∑ E [ ILi ] = ∑ ( si + E [ Bii ]) + i =1 + i =1 N Q +1 − L ∑ λi . 2 i =1 15 (11) We obtain this expression from substituting (5), (6) and (8) into E [ ILi ] = E [ ILi ] + E [ Bi ] , with the observation that E [ IPN ] = sN + + Q +1 . Thus, we 2 observe that the objective function consists of the sum of the reserve stocks and the sum of the external backorders, plus a constant K: N N i =1 i =1 z = ∑ si + ∑ E [ Bii ] + K . (12) We will develop a bound on z by finding a lower bound on the sum of the reserve stocks, and then a lower bound on the sum of the external backorders. We first show that moving one unit of reserve stock from class j to class j-1 cannot decrease the inventory level at any of the higher-ranked classes, but can result in more backorders. Proposition 1: Consider two stocking policies ( s11 , s12 ,… , s1N ) and ( s12 , s22 ,… , sN2 ) where for some j, s 2j = s1j − 1, s 2j −1 = s1j −1 + 1, and si2 = si1 , ∀i ≠ j , j − 1 . We have that: (i) ILi ( si2 ,… , sN2 ) ≥ ILi ( si1 ,… , s1N ) for i = 1, 2,... j − 1 , and ∑ B ( s , … , s ) ≥ ∑ B ( s ,… , s ) . j (ii) j i =1 ii 2 i 2 N i =1 ii 1 i 1 N Proof. From (5) and (6) we find that IL j ( s 2j ,… , sN2 ) = IL j ( s1j − 1, s1j +1 ,… , s1N ) = IL j ( s1j ,… , s1N ) -1 . Thus from (7) and (8), we obtain B j ( s 2j ,… , sN2 ) ≤ B j ( s1j ,… , s1N ) + 1 and B j , j −1 ( s 2j ,… , sN2 ) ≤ B j , j −1 ( s1j ,… , s1N ) + 1 . We can now use this result in (6) to show that: IL j −1 ( s 2j −1 ,… , sN2 ) = s 2j −1 − B j , j −1 ( s 2j ,… , sN2 ) ≥ s1j −1 + 1 − B j , j −1 ( s1j ,… , s1N ) − 1 = IL j −1 ( s1j −1 ,… , s1N ) From IL j −1 ( s 2j −1 ,… , sN2 ) ≥ IL j −1 ( s1j −1 ,… , s1N ) and si2 = si1 , i = 1,… j − 2 , we find that ILi ( si2 ,… , sN2 ) ≥ ILi ( si1 ,… , s1N ) for i = 1, 2,... j − 2 , which proves the first result. For the second result, we can make a sample path comparison. Suppose at time t, we have B j +1, j ( t ) < s1j ; then there are no backorders for either case: ( ) ∑ Bii t si2 ,… , sN2 = ∑ Bii ( t si1 ,… , s1N ) = 0 . If B j +1, j ( t ) ≥ s1j , then j i =1 j i =1 16 ( ) ( ) B j t s 2j ,… , sN2 = B j ( t s1j ,… , s1N ) + 1 and either B jj t s 2j ,… , sN2 = B jj ( t s1j ,… , s1N ) + 1 or ( ) B j , j −1 t s 2j ,… , sN2 = B j , j −1 ( t s1j ,… , s1N ) + 1 . In the former case we have ∑ B ( t s ,… , s ) = ∑ B ( t s ,… , s ) + 1 ; in the latter case we have j j 2 i ii i =1 2 N ( i =1 ) 1 i ii 1 N ∑ Bii t si2 ,… , sN2 = ∑ Bii ( t si1 ,… , s1N ) . This proves the result. j i =1 j i =1 We now use these results to establish bounds on the optimal solution. We first show that the solution for the SPA provides a bound on the sum of the reserve stock. Proposition 2: For all feasible solutions ( s1 ,… , sN ) for the SLP, we have N N ∑ s ≥ ∑ sˆ for all j where ( sˆ ,… , sˆ ) is the solution found by the SPA. i= j i i= j i 1 N Proof. Suppose we have a feasible solution ( s11 , s12 ,… , s1N ) such that ∑ si1 < ∑ sˆi . We will N N i= j i= j iteratively construct a series of feasible solutions, which leads to a contradiction of the supposition. In order for ( s11 , s12 ,… , s1N ) to be a feasible solution, we must have s1N ≥ sˆN ; otherwise the fill-rate constraint for class N is violated. If s1N = sˆN then we must have s1N −1 ≥ sˆN −1 by the same logic. If both s1N = sˆN , s1N −1 = sˆN −1 , then we must have s1N − 2 ≥ sˆN − 2 and so on. Iterative Step: Let k be the largest index such that s1k > sˆk ; that is, s1N = sˆN ,… , s1k +1 = sˆk +1 , and s1k > sˆk . If k ≤ j, we have a contradiction of the original N N i= j i= j supposition that ∑ si1 < ∑ sˆi . If there does not exist an index k, then we must have ( s , s ,…, s ) = ( sˆ , sˆ ,…, sˆ ) , which is also a contradiction of the original supposition. 1 1 1 2 1 N 1 2 N Given k > j, then we construct a new solution: sk2 = s1k − 1, sk2−1 = s1k −1 + 1, and si2 = si1 , ∀i ≠ k , k − 1 . By application of proposition 1 (i), we can show that this new solution is feasible. Since k > j, we have that N N N i= j i= j i= j ∑ si1 = ∑ si2 < ∑ sˆi . 17 We now use the new solution to repeat the Iterative Step. At each step we move one unit of reserve stock from a higher-numbered class to a lower-numbered class to create a new feasible solution. The number of possible iterative steps is finite as each unit of reserve stock can be moved at most N-1 times. Therefore, at some step n we have either sin = sˆi for i = j ,… , N or s nj > sˆ j and ( s nj +1 ,… , sNn ) = ( sˆ j +1 ,…, sˆN ) , both of which are contradictions of the original supposition. N As a special case of this proposition, we see that ∑ sˆ is a lower bound on the sum of i =1 i N the reserve stocks in the objective function of the SLP. We denote ∑ sˆi = Rˆ , since the i =1 sum of the reserve stocks is the reorder point for the critical-level policy. Proposition 3: Consider two stocking policies ( s11 , s12 ,… , s1N ) and ( s12 , s22 ,… , sN2 ) with j j ∑s ≤ ∑s i =1 1 i 2 i i =1 for j = 1,… , N − 1 and N N ∑s = ∑s i =1 1 i i =1 2 i . Then we have z ( s11 ,… , s1N ) ≤ z ( s12 ,… , sN2 ) . Proof. From (12) and the assumption that N N i =1 i =1 ∑ si1 = ∑ si2 , we need to show that ∑ E ⎡⎣ B ( s ,… s )⎤⎦ ≤ ∑ E ⎡⎣ B ( s ,… s )⎤⎦ . N i =1 N ii 1 i 1 N i =1 ii 2 i 2 N This result follows directly from application of proposition 1 (ii). Starting with the stocking policy ( s12 , s22 ,…, sN2 ) , we can construct a series of new policies in which we move one unit of reserve stock from class j-1 to class j, and eventually reach the stocking policy ( s11 , s12 ,… , s1N ) . From proposition 1 (ii), each such move reduces the external backorders in classes 1 ,2, … j, and has no impact on backorders at class j+1,…, N. Thus we show that ∑ Bii ( si1 ,… s1N ) ≤ ∑ Bii ( si2 ,… sN2 ) , and we get the desired result by taking N N i =1 i =1 expectations. From this proposition, we have a lower bound on the optimal objective function value of the SLP: 18 ( N ) Rˆ + ∑ E ⎡ Bii si = 0, si +1 = 0,… sN −1 = 0, sN = Rˆ ⎤ + K ⎣ ⎦ i =1 (13) Based on these propositions we conjecture that the solution for the SPA should be near optimal in most settings. We see from the lower bound that any improvement to the SPA solution must come by means of a reduction in backorders. As most settings have high service expectations, the fill-rate targets are such that any feasible solution will generate, at most, a modest amount of backorders. As a consequence, we expect there to be minimal opportunity to improve upon the solution given by the SPA. We explore this conjecture in the next section with a computational experiment. Example The purpose of this example is to provide some insight into why the SPA solution need not be optimal, yet is likely to be close to optimal. We assume three demand classes with the Poisson demand rates λ1 = 8 units/year, λ2 = 12 units/year, and λ3 = 16 units/year. The replenishment lead-time is L = 0.25 years (3 months), and the reorder quantity is Q = 1 . The fill-rate targets are: β1 = 0.99, β2 = 0.94, and β3 = 0.87. When we apply the SPA to this problem we get: sˆ1 = 2, sˆ2 = 1, sˆ3 = 12 with z = 7.09. This translates into the critical level policy: cˆ1 = 2, cˆ2 = 3 and Rˆ = 15 ; we reorder when the inventory position reaches 15, we stop serving demand classes 3 and 2 once the on-hand inventory drops to 3 and to 2, respectively. We can use (11) to break the objective value into its constituent parts: 3 3 i =1 i =1 N Q +1 − L∑ λi 2 i =1 + 1 − 9 = 7.09 z ( sˆ1 , sˆ2 , sˆ3 ) = ∑ sˆi + ∑ E [ Bii ] + = 15 + 0.09 As the expected backorders are quite small, we know from Proposition 3 that this solution must be very close to optimal. Indeed, the lower bound from Proposition 3 is 7.02. The optimal solution (found by exhaustive search) is s1 = 1, s2 = 0, s3 = 14 with z = 7.08. The only difference between the optimal solution and the SPA solution is that one unit of reserve stock has been moved from demand class 1 and demand class 2 to demand class 3; this move reduces the backorders at demand class 3 without jeopardizing the fill-rate constraint for demand class 1 and for demand class 2. The 19 move does reduce the fill rate for demand class 1, but it still is above 0.99. To appreciate the benefit of differentiating the demand classes, suppose all customers were to get the highest service level, namely a fill rate of 0.99. Then we need to set the reorder point R = 17 and the expected on-hand inventory (z) is 9.00, which is 27% higher than the optimal solution. Suppose now that the fill-rate targets are β1 = 0.99, β2 = 0.93, and β3 = 0.70. The SPA finds the solution: sˆ1 = 2, sˆ2 = 2, sˆ3 = 10 with z = 6.24. The expected backorders for the SPA solution is 0.24, and the lower bound on the expected backorders is 6.04. The optimal solution entails moving a unit of reserve stock from demand class 1 to demand class 3: s1 = 1, s2 = 2, s3 = 11 with z = 6.14. In each of these two cases we see that the SPA generates a near-optimal solution. We are able to improve slightly the SPA solution by shifting a unit of reserve stock from a higher-ranked class to a lower-ranked class. The result of this shift is that we reduce some backorders at the lower-ranked demand class, yet still satisfy the fill-rate target at the higher-ranked class. 6. Numerical Experiment: To test the effectiveness of the SPA on the SLP, we compare its solution to the optimal solution on two set of test problems in two experiments. For the first experiment, we examine the performance of SPA as we vary the reorder quantity, the lead time, the fill-rate targets and the demand rates. For the second experiment, we vary the number of demand classes. For each test problem in the first experiment, there are three demand classes. The reorder quantity takes on one of four values: Q = 1, 4, 9, or 18. The replenishment lead-time from the outside supplier is one of the three values: L = 1/24 year, ¼ year, ½ year. There are three possible values for the fill-rate target for each of the demand classes: β1 = 0.9, 0.95, or 0.99, β 2 = 0.8, 0.9, or 0.95, and β 3 = 0.7, 0.8, or 0.9 . We only consider combinations with either β1 > β 2 ≥ β 3 or β1 ≥ β 2 > β 3 ; thus, we have 20 combinations of fill-rates. Finally, we have four possible settings for the demand rates: {λ1 = 8, λ2 =12, λ3 = 16}, {λ1 = 16, λ2 =12, λ3 = 8}, {λ1 = 1, λ2 = 3, λ3 = 8}, and {λ1 = 4, λ2 = 4, λ3 = 4} units/year. We specify a test problem in the first experiment by setting the number of 20 demand classes (1 candidate), the replenishment lead-time (3 candidates), the reorder quantity (4 candidates), the set of desired fill-rates (20 candidates), and the set of demand rates (4 candidates). This provides a total of 960 test problems. For each test problem, we compute the SPA solution ( sˆ1 , sˆ2 , sˆ3 ) and its cost from equation (12); the lower bound from equation (13); and the optimal solution and its cost. We find the optimal solution by a search algorithm. We first compute z ( s1 = 0, s2 = 0, s3 = sˆ1 + sˆ2 + sˆ3 + 1) , which is a lower bound on the cost for any solution for the SLP with total reserve stock equal to sˆ1 + sˆ2 + sˆ3 + 1 . In all test problems, we find z ( sˆ1 , sˆ2 , sˆ3 ) to be less than z ( s1 = 0, s2 = 0, s3 = sˆ1 + sˆ2 + sˆ3 + 1) . This observation together with the results in Proposition 2 and Proposition 3 guarantee that the total reserve stock in the optimal solution must be sˆ1 + sˆ2 + sˆ3 . Next, we find the optimal solution by searching over the integer solutions in the space: s3 ≥ sˆ3 ; s2 + s3 ≥ sˆ2 + sˆ3 ; and s1 + s2 + s3 = sˆ1 + sˆ2 + sˆ3 . The results of this numerical experiment support our intuition that the SPA is quite effective. The SPA finds the optimal solution in 274 problem instances or 29% of the cases. The cost of the SPA solution is on average 0.57% higher than the cost of the optimal solution and 1.28% higher than the lower bound. The maximum error for SPA is 3.24%. In Table 2, we examine how the relative performance of the SPA heuristic changes as we vary the problem parameters. Each cell of the table provides the average cost increase for the SPA solution for all test problems with the single parameter fixed. For instance in the cell with L=1/24, we report the average performance of the SPA for the 320 test problems with lead time L=1/24. For the fill-rate targets, we have divided the 20 combinations according to the spread between the fill-rate targets for class 1 and class 3 ( β1 − β 3 ). There are six combinations and 288 test problems with 0.05 ≤ β1 − β3 < 0.15 , eight combinations (384 problems) with 0.15 ≤ β1 − β 3 < 0.25 , and six combinations (288 problems) with 0.25 ≤ β1 − β 3 . The performance of the SPA seems quite insensitive to the settings for the reorder quantity, and the replenishment lead-time. However, the performance seems to depend on the distribution of demand rates and the spread in fill-rate targets. The performance improves slightly when there is a higher percentage of demand in the higher-priority demand class (class 1). In addition, the SPA performs best when the 21 spread in service levels is smallest. For each test problem we also compute the cost for the optimal inventory policy in which we provide the highest fill-rate β1 for each demand class. Admittedly this is a sub-optimal policy as there is no rationing of inventory between demand classes; nevertheless, we observe this policy in practice as it satisfies the service requirements and is easy to implement. For this set of test problems, the cost of a no-rationing policy is on average 18% higher than the optimal critical-level policy. In the second experiment, we specify four test problems, one for each setting for the number of demand classes: N = 2, 3, 4, or 5. We set the replenishment lead-time L = ¼ year and the reorder quantity Q = 4 for each test problem. In Table 3, we specify the fill-rate targets and the demand rates for each test problem. As with the first experiment, we compute the SPA solution and cost for each test problem, as well as the optimal solution and its cost. We report the results in Table 3. On this set of test problems, the relative performance of the SPA heuristic improves as the number of demand classes increases. This observation is consistent with our intuition that the SPA performs better when there are smaller differences between the fill-rate targets for consecutive demand classes. Lead Time L = 1/24 L=¼ 0.52% 0.66% Q=1 Q=4 0.58% 0.56% {λ = 8, 12, 16} {λ = 16, 12, 8} 0.64% 0.46% Reorder Quantity Demand Rates L= ½ 0.54% Q=9 0.58% {λ = 1, 3, 8} 0.65% . ≤ β1 −β3 < 015 . 0.15 ≤ β1 − β3 < 0.25 0 . 2 5 ≤ β 1 − β 3 Service Target 005 Spread 0.84% 0.32% 0.56% Table 2: Average increase in SPA solution relative to optimal solution N Service Targets 2 {β = 0.99, 3 4 5 {β = 0.99, {β = 0.99, {β = 0.99, Demand Rates Q=18 0.57% {λ = 4, 4, 4} 0.53% 0.8} {λ = 18, 18} SPA Solution 7.627 0.9, 0.8} {λ = 8, 12, 16} 6.646 6.583 0.96% 6.644 6.587 0.86% 6.628 6.591 0.56% 0.95, 0.9, 0.8} 0.95, 0.9, 0.85, {λ = 4, 6, 10, 16} 0.8} {λ = 4, 6, 8, 8, 10} Optimal Solution 7.542 Percent Difference 1.13% Table 3: Test problems and results from second computational experiment 7. Extensions In this paper we consider a single-product inventory system with multiple 22 demand classes. We show how to map this system into an equivalent single-product serial inventory system. We then apply a modeling framework for multi-echelon divergent systems to obtain a characterization of the steady-state performance of the N-demand-class inventory system for a critical-level policy. To find the best critical-level policy, we pose an optimization problem to minimize the on-hand inventory subject to fill-rate constraints for each demand class. We provide a computationally-efficient approximate procedure for solving this problem, and demonstrate its effectiveness on a set of test problems. In this section we first show how to incorporate service times into the model and how to use the model to characterize a multi-echelon system with multiple demand classes. We then discuss possible extensions to this research. Service Times. In the presentation so far, we assume that the service time for each demand class is zero. That is, customers in each demand class expect their demand to be filled at the time of its occurrence. In many contexts, however, it is common to have non-zero service times, whereby a customer expects demand to be filled within some specified time window. Indeed, this can be the basis for defining demand classes. Demand class 1 might be the customers, who, say, have a twenty-four-hour service time. The other demand classes might have longer service times, say three days for class 2, one week for class 3, and so on. For instance, for service parts inventory systems, these service times are part of the contract between the customer and the provider of the service parts. Another example is where customers select the time of delivery, as is available from most e-tailers. In this manner the customer defines (and pays for) a desired service time. We need to describe how the critical-level policy applies when service times are non-zero. Let wi be the service time for demand class i. We assume each wi < L. We say that a demand from class i that arrives at time t is due at time t + wi. Let IOH represent the on-hand inventory in the system. Suppose that c j −1 < IOH ≤ c j for some j ∈ { 1, N } . Then, if the next demand due were from class i, i ∈ { 1, j } , it is served and the inventory level IOH is reduced by one; if the next demand due were from class i, i ∈ { j + 1, N } , then it is backordered. This policy is not optimal as it ignores information about demand that is not yet due. Nevertheless, the policy would be relatively easy to implement and does allow for 23 stock rationing so as to protect the service to higher priority demand classes. We do assume that when a demand arrives from any demand class, the system inventory position is reduced by one, and a reorder is placed once the system inventory position reaches the reorder point. With these assumptions, we can re-state the steady-state equations analogous to (5) and (6): N ILN = IPN − ∑ Di ( L − wi ) (14) i =1 ILi = si − Bi +1,i for i = 1, 2, N -1 (15) where Di (τ ) is the random variable for the external demand at stage i over an interval of length τ ; thus, it represents a Poisson random variable with mean λτ i . The equations (7), (8), (9) are the same. As explanation, we refer to the operation of the N-stage serial inventory system. When a demand (either external or internal) occurs at time t at stage i ∈ { 1, N } with a due date of t + w, we assume that stage i does not fill this demand until its due date; if the stage cannot fill the demand on the due date, then the stage backorders the demand until it has inventory to fill it. We also assume that at time t stage i ∈ { 1, N − 1 } initiates a one-for-one replenishment from its upstream supplier but with the due date of t + w. When a demand (either external or internal) occurs at time t at stage N with a due date of t + w, we assume that stage N reduces its inventory position by one; when its inventory position reaches a reorder-point equal to sN = R − cN −1 , stage N orders on an external supplier. The last step in developing the model for non-zero service times is to indicate the allocation scheme for filling backorders at each stage. We assume that at each stage we fill the backorders in the order of their due dates, with no differentiation between external and internal backorders. As a consequence, if Bi ( t ) > 0 for some stage i, then we can express the internal and external backorders as: i Bi ( t ) = ∑ D j (τ i − wi , t − wi ) j =1 where τi < t is the most recent time at which stage i stocks out. With this assumption we have that the probability distribution of internal backorders, conditioned on the total 24 backorders at a stage, is binomial, as given by (10). We thus see that the model (5) – (9) extends directly to permit non-zero service times, with the same computational requirements. Nevertheless, there is an open question as to how effective is the (myopic) critical-level policy for this extension. Multi-Echelon Systems As a second extension, we describe how one might develop a model of a multi-echelon inventory system with multiple demand classes. For instance, consider a service-parts distribution system in which there is a central warehouse that replenishes several local sites. We assume each of the local sites is subject to Poisson demand from N classes, operates with a critical-level policy, and reorders on the central warehouse with an order quantity Q = 1. We assume the central warehouse replenishes its inventory with a one-for-one replenishment from an external supplier with a deterministic lead-time, and fills order from the local sites on a first-come, first-served basis with a deterministic lead-time. These assumptions are quite typical for low-volume, high-value service parts. We can use the model (5) – (9) for each site, but with one modification. When the central warehouse stocks out, replenishment requests from the local sites are delayed. Thus, we need re-state equation (5) for the inventory at local site k as: N ILN , k = IPN ,k − ∑ DiL,k − B0, k (16) i =1 where the second subscript refers to the local site, and where B0,k denotes the backorders at the central warehouse that are due to local site k. For Poisson demand we can use either the exact or approximate model in Graves (1985) to characterize the backorders at the central warehouse as a function of its base stock level. Thus, we can model the performance of a multi-echelon system with N-demand classes for Poisson demand, one-for-one replenishment policies, and deterministic lead-times. We can use this model to optimize the inventory parameters, namely the base stock at the central warehouse and the critical levels and reorder point at each of the local sites. One approach would be to do a single-dimension search over possible settings for the base stock at the central warehouse. Given a base stock at the central warehouse, we can characterize the backorders to each of the local sites. We can then use (16) and (6) – (9) to optimize the inventory parameters at each local site, as 25 described in this paper. General Demand Process. We assume a Poisson demand process. The model (1) – (4) remains valid for demand processes with independent increments, e.g., compound Poisson demand. However, we would need to re-visit the next steps in the model development if demand were from a compound Poisson process. The distribution of the inventory position in equation (5), IPN, is no longer uniform, as it will depend on the compounding distribution. Similarly, the conditional distribution of backorders for demand class i due to downstream demand is not binomial, as given by (10). The computation of fill rate at each demand class is also more complicated. Alternatively, one might approximate the demand for each demand class by an independent Brownian motion process, i.e., Di ( s, t ) is normally distributed with mean and standard deviation given by ( t − s ) µi and t − sσ i . As this process has independent increments, we can apply the model (1) – (4), but some care is needed in the subsequent analysis. As with the case of compound Poisson demand, we would have to adapt the conditional distribution of Bi ,i −1 in (10), as it is no longer binomial. One would also need to examine how best to specify and measure service, when demand is approximated by a Brownian motion process. Allocation Process. We assume that when the replenishment quantity Q is not sufficient to cover all backorders, we fill the backorders in the order of occurrence with no differentiation between external and internal backorders. The intent is to allocate the replenishment quantity fairly between filling the backorders at lower-ranked demand classes and restoring the reserve stock for higher-ranked demand classes. Nevertheless, this process is independent of any objective function, and is not optimal. It would be of interest to understand better how this allocation scheme performs for various problem criteria. Lost Sales. The development of the model in this paper depends on the assumption that demand is backordered when it cannot be met from stock. We have not found an easy way to modify the current model to accommodate a lost sales assumption. We leave this for future research. 26 Cost Minimization Problem. In the text we develop our analysis and solution procedure for one specification of the inventory problem, namely the Service Level Problem. One might consider another problem specification whereby we minimize the total inventory-related costs, with no service-level constraints. The objective function would include the expected inventory holding costs, plus the expected backorder costs. For instance, suppose we have an inventory holding cost of h per unit per unit time, and a backorder cost for demand class i of bi per unit per unit time, with bi ≥ bi +1 , i ∈ { 1, N − 1 } . We suggest a single-pass algorithm for this problem, in which we solve a newsboy problem for each stage (demand class) in the serial inventory system, starting with stage N. For each class i the overage cost for the newsboy problem is cio = h . We propose the following recursion for setting the underage cost: c1u = b1 ⎛ λi bi ⎜⎜ λ u + 1− i i ci = i ⎜ λj ⎜ ∑λj ∑ j =1 j =1 ⎝ u c where β i = u i o ci + ci ⎞ ⎟ ⎟ (1 − β i −1 ) ciu−1 ⎟ ⎟ ⎠ As explanation, the underage cost needs to reflect the expected cost of both an external backorder as well as an internal backorder. The cost of an external backorder is the stage’s backorder cost bi. The cost of an internal backorder is the underage cost at stage i-1 times the probability that stage i-1 is out of stock; we estimate this probability from the fill-rate βi-1 imputed from the newsboy problem at stage i-1. We get the underage cost at stage i from a demand-weighted average of the cost of an external and internal backorder. We expect this algorithm to perform similarly to the SPA for the Service-Level Problem. It should provide near-optimal solutions with a modest computational effort. Nevertheless, we leave it to future research to explore this. References Atkins, D. and Katircioglu, K. 1996. "Managing Inventory for Multiple Customers Requiring Different Levels of Service," Working Paper, University of British 27 Columbia, Vancouver, Canada, B.C. Dekker, R., R.M. Hill, and M.J. Kleijn, 1997. "On the ( S − 1, S ) Lost Sales Inventory Model with Priority Demand Classes," Technical Report 9743/A, Econometric Institute, Erasmus University Rotterdam, The Netherlands. Deshpande, V., M.A. Cohen, and K. Donohue, 2003. "A Threshold Inventory Rationing Policy for Service-Differentiated Demand Classes," Management Science, 49(6), 683-703. Evans, R.V., 1968. "Sales and Restocking Policies in a Single Inventory System," Management Science, 14(7), 463-473. Frank, K.C., R.Q. Zhang, and I. Duenyas, 2003. "Optimal Policies for Inventory Systems with Priority Demand Classes," Operations Research, 51(6), 993-1002. Graves, S.C., 1985. "A Multi-Echelon Inventory Model for a Repairable Item with One-for-one Replenishment," Management Science, 31(10), 1247-1256. Graves, S.C., 1996. "A Multi-Echelon Inventory Model with Fixed Replenishment Intervals," Management Science, 42(1), 1-18. Ha, A.Y., 1997a. "Inventory Rationing in a Make-to-stock Production System with Several Demand Classes and Lost Sales," Management Science, 43(8), 1093-1103. Ha, A.Y., 1997b. "Stock Rationing Policy for a Make-to-Stock Production System with Two Priority Classes and Backordering," Naval Research Logistics, 44(5), 457-472. Kaplan, A., 1969. "Stock Rationing," Management Science, 15(5), 260-267. Melchiors, P., R. Dekker, and M.J. Kleijn, 2000. "Inventory Rationing in an (s, Q) Inventory Model with Lost Sales and Two Demand Classes," Journal of Operations Research Society, 51(1), 111-122. Moon, I. and S. Kang, 1998. "Rationing Policies for Some Inventory Systems," Journal of the Operations Research Society, 49(5), 509-518. Nahmias, S. and S. Demmy, 1981. "Operating Characteristics of an Inventory System with Rationing," Management Science, 27(11), 1236-1245. Topkis, D., 1968. "Optimal Ordering and Rationing Policies in a Non-stationary Dynamic Inventory Model with n Demand Classes," Management Science, 15(3), 160-176. Veinott, A.F., 1965. "Optimal Policy in a Dynamic, Single Product, Nonstationary Inventory Model with Several Demand Classes," Operations Research, 13(5), 761-778. de Véricourt, F., F. Karaesmen, Y. Dallery, 2000. “Dynamic Scheduling in a 28 Make-to-stock System: A Partial Characterization of Optimal Policies,” Operations Research, 48(5), 811-819. de Véricourt, F., F. Karaesmen, Y. Dallery, 2002. “Optimal Stock Allocation for a Capacitated Supply System,” Management Science, 48(11), 1486-1501. Zipkin, P.H., 2000. Foundations of Inventory Management, McGraw-Hill, New York. 29