EXAMPLE: A MULTIECHELON SUPPLY CHAIN

12.3 EXAMPLE: A MULTIECHELON SUPPLY CHAIN

This section extends the production/inventory system studied in Section 12.1 by adding several echelons to it. Specifically, this example studies a four-echelon supply chain consisting of a supplier, manufacturing plant, distribution center, and retailer. The system uses so-called installation stock policies (replenishment policies based only on local information at the supplied installation). Note that such policies utilize only inventory position data (inventory on hand, outstanding orders, and backorders). In contrast, so-called echelon stock policies require additional information in the form of inventory positions at the current installation, as well as at all downstream echelons.

12.3.1 P ROBLEM S TATEMENT

Consider a single-product, multiechelon supply chain consisting of a retailer (R), distribution center (DC ), manufacturing plant (P), and supplier (S ). The manufacturing plant interacts with two buffers: an input buffer (IB) storing incoming raw material, and an output buffer (OB) storing outgoing finished product. The system is depicted schematically in Figure 12.40.

The retailer faces a customer demand stream, and to manage inventory, it uses a continuous-review (Q R ,R R ) control policy, based only on information at the retailer. Recall that under this policy, a replenishment of quantity Q R is ordered from the distribution center whenever the inventory position (inventory on-hand plus outstand- ing orders minus backorders) down-crosses level R R . If the distribution center has sufficient inventory on hand, then the order lead time consists only of transportation delay. Otherwise, it experiences additional delays due to additional transportation delays

294 Modeling Supply Chain Systems

Retailer IB DC S R

Supplier Buffer

Finished Demand Material

Figure 12.40 Multiechelon supply chain system.

and possible stock-outs upstream of the distribution center. Any excess demand at the retailer that cannot be immediately satisfied from on-hand inventory is lost.

The demand stream at the distribution center consists of orders from the retailer. However, unlike the retailer, unsatisfied demand is backordered. In a similar vein, the distribution center replenishes its stocks from the output buffer (OB) of the upstream

plant, based on a (Q DC ,R DC ) continuous-review inventory policy. The unsatisfied portions of orders placed with the plant are backordered.

, The plant s manufacturing policy is a continuous-review (R OB ,r OB ) policy. The

plant manufactures one product unit at a time, having consumed one unit of raw material from the input buffer. Note that shortages of raw material in the input buffer (starvation) will cause production stoppages. The input buffer, in turn, orders from an external supplier assumed to have unlimited inventories at all times, so the raw-material

lead time is limited to transportation delay, and the plant s orders are always fully satisfied. The corresponding inventory control policy is a continuous-review (Q IB ,R IB )

policy. Table 12.2 displays the values of the model s inventory control parameters. The system is subject to the following assumptions:

1. The retailer faces customer demand that arrives according to a Poisson process. The demand quantity of each arrival is one product unit, and all unsatisfied demands are lost.

2. For modeling generality and versatility, we assume that the manufacturing time distribution of a product unit and all transportation time distributions are of the Erlang type (see Section 3.8.7). Specifically, all transportation delays are drawn from the Erl(k ¼ 2, l ¼ 1) distribution, while the manufacturing time distribution is Erl(k ¼ 3, l ¼ 5).

3. At all echelons, orders are received in the order they were placed (no overtaking takes place). In fact, an order shipment is launched only after the previous one is received at its destination.

4. When a stock-out occurs in the DC or plant and the unsatisfied portion of the order is backordered, order fulfillment (shipment) is deferred until the full order becomes available. In brief, there is no shipping of partial orders.

Table 12.2 Inventory control parameters

Input Buffer

Distribution Center Retailer R IB ¼ 10

Output Buffer

R R ¼5 Q IB ¼ 13

R OB ¼ 30

R DC ¼ 10

r OB ¼ 10

Q DC ¼ 20

Q R ¼ 10

Modeling Supply Chain Systems 295 We are interested in the following performance metrics:

The long-run time averages of all inventory levels in the system The average number of backorders at the distribution center and the output buffer Customer service levels in each echelon

These performance metrics would guide the modeler in making suitable choices for parameters of the inventory control policies.

12.3.2 A RENA M ODEL

The system under study is more complex by far than its counterparts in the previous two examples. Accordingly, its Arena model is composed of five segments, each associated with an inventory-holding buffer in a system echelon. Each such buffer is subjected to the following events: order arrival, inventory updating, replenishment order triggering, and order shipment. Additional supply chain activities are modeled at the endpoints of the supply chain, namely, demand arrival on the downstream end, and product manufacturing on the upstream end. Figure 12.41 displays all the variables of the Arena model.

Next, we describe each model segment in some detail, starting with the extreme downstream echelon and moving upstream the supply chain.

12.3.3 I NVENTORY M ANAGEMENT S EGMENT FOR R ETAILER

Figure 12.42 depicts the retailer inventory management segment of the Arena model. This segment generates the demand stream, handles demand fulfillment, and triggers replenishment orders from the distribution center.

The Poisson stream of customer arrivals with single-unit demand quantities are generated by the Create module, called Customer Demand Arrival At Retailer. On arrival, a customer entity first enters the Record module, called Tally Retailer Demand, to tally its demand.

The customer entity then proceeds to test whether the retailer has sufficient inventory on hand by entering the Decide module, called Check Retailer Inventory, whose dialog box is shown in Figure 12.43. The test has two possible outcomes. First, if the condition

module, called Take Away From Retailer Inventory, where it decrements the on-hand inventory by 1. It then proceeds to another Assign module, called Take Away From Retailer Inventory Position to decrement by 1 the variable InventoryPosition_Retailer. Second, if the condition Inventory_Retailer ¼ 0 holds, then the customer entity takes the False exit and the current demand is lost. In this case, the customer entity proceeds to the Record module, called Tally Retailer Lost Sales, to tally the lost demand.

Note that the two Assign modules make use of two variables to keep track of inventory information: Inventory_Retailer, which tracks the on-hand inventory level, fluctuating between 0 and R R þ Q R , and InventoryPosition_Retailer, which tracks the inventory position, fluctuating between R R and R R þ Q

, R . The former is used to

satisfy a customer s demand, while the latter is used when triggering a replenishment order. Recall that whenever the inventory position at the retailer down-crosses R R ,a

296 Modeling Supply Chain Systems

Figure 12.41 Dialog spreadsheet of the Variable module for the Arena model of the multiechelon supply chain system.

Modeling Supply Chain Systems 297

Figure 12.43 Dialog box of the Decide module Check Retailer Inventory.

replenishment order of quantity Q R is placed with the distribution center, and the inventory position is immediately updated to R R þQ R .

Both paths converge at the Decide module, called Order From DC, where the customer entity checks whether the variable InventoryPosition_Retailer has just down-crossed R R . If it has, then the customer entity proceeds to the Assign module, called Order From DC And Update Retailer Inventory Position, and performs two assignments. The first assignment sets Order_DC ¼ 1, which would promptly release a pending order entity currently detained in the Hold module, called Shall We Release Retailer Order?, in the distribution-center inventory management segment (see Figure 12.44). The second assignment sets InventoryPosition_Retailer ¼ InventoryPosition_ Retailer þ Q_R to immediately update the retailer inventory position. Either way, the customer entity proceeds to be disposed of in module Dispose Customer Demand.

12.3.4 I NVENTORY M ANAGEMENT S EGMENT FOR D ISTRIBUTION C ENTER

Figure 12.44 depicts the Arena model s inventory management segment for the distribution center. This model segment generates incoming retailer orders, updates distribution-center inventory levels, triggers replenishment orders from the output buffer at the manufacturing plant, sends shipments to the retailer, and updates the retailer inventory level.

The Create module, called Demand Arrival To DC, creates a single order entity at time 0, which later generates a pending order to be shipped from the distribution center to the retailer. The order entity enters the Hold module, called Shall We Release Retailer Order?, where it is held until the variable Order_DC equals 1, whereupon the order entity proceeds to the Assign module, called Change Flag For Order From Retailer, and sets Order_DC to 0. The order entity then proceeds to the Separate module, called Separate 1, where it duplicates itself. The order entity itself proceeds to enter the system

298 Modeling Supply Chain Systems

Figure 12.44 Arena model of the inventory management segment for the distribution center.

as a retailer order, while its duplicate loops back to the Hold module Shall We Release Retailer Order? to generate the next retailer pending order.

The retailer order entity is next tallied in the Record module, called Tally DC Demand, and then enters the Assign module, called Take Away From DC Inventory Position, where the variable InventoryPosition_DC is decremented by the value of the variable Q_R. The order entity then enters the Decide module, called Order From Output Buffer, to check whether the variable InventoryPosition_DC has down-crossed

level R DC . If it has, then the order entity proceeds to the Assign module, called Order From Output Buffer And Update DC Inventory Position, and performs two assignments. The first assignment sets Order_Output ¼ 1; this assignment promptly releases the order entity currently detained in the Hold module Shall We Release DC Order? in the output-buffer inventory management segment (see Figure 12.47). The second assignment increments the distribution-center inventory position variable Inventory- Position_DC by the value of the variable Q_DC.

The order entity next enters the Decide module, called Check DC Inventory, to test whether the retailer has sufficient inventory on hand. The test has two possible

the True exit to the Assign module, called Take Away From DC Inventory, where it decrements the on-hand inventory by Q_R. (2) If the condition Inventory_DC < Q_R holds, then the order entity takes the False exit. In this case, the demand is not fully satisfied, and should be backordered from the manufacturing plant. To this end, the

Modeling Supply Chain Systems 299 order entity proceeds to the Assign module, called Take Away From DC Inventory And

Increase Backorders, where three assignments take place:

1. The backorder level is incremented by the shortage.

2. The attribute UnsatisfiedPortionDemand_DC of the order entity is assigned the unsatisfied portion of the demand.

3. The inventory level is decremented by 1. Figure 12.45 depicts these assignments by displaying the dialog box of the Assign

module Take Away From DC Inventory And Increase Backorders (bottom) and its associated Assignments dialog boxes (top).

The order entity next proceeds to the Hold module, called Enough In DC?, where it is detained until sufficient inventory accumulates in the distribution center to satisfy the shortage, as shown in the Condition field of the dialog box in Figure 12.46.

The variable AvailableForBackorders_DC is used to track the number of inventory product units on hand that are currently available to satisfy backorders during stock-out periods. That is, the order entity is detained in this Hold module until sufficient inventory becomes available to satisfy its unsatisfied portion. Note that multiple order entities may be simultaneously detained in this Hold module, but those will be satisfied in their order of arrival at this module, since the Hold module , s queue discipline is

mand_DC holds, then the order entity is released and proceeds to the Assign module, called Decrease Available Items For Backorders In DC, where the variable Available- ForBackorders_DC is decremented by the value of the variable UnsatisfiedPortion- Demand_DC.

The retailer order entity is now ready for shipment to the retailer. Recall that we assumed that product units are processed sequentially in the transportation system, so as to preclude overtaking. To enforce this rule, we use the Process module, called Order Arrival At Retailer, to model the transportation delay from the distribution center to the retailer. The order entity next enters the Assign module, called Update Retailer Inventory, to update the retailer inventory level by incrementing variable Inventory_Retailer by Q_R. Keep in mind that the inventory position at the retailer was updated when the replenishment order was placed, but the inventory level at the retailer is only updated after the shipment is actually received there. Finally, the order entity proceeds to be disposed of in the Dispose module, called Dispose Retailer Demand.

12.3.5 I NVENTORY M ANAGEMENT S EGMENT FOR O UTPUT B UFFER

Figure 12.47 depicts the output-buffer inventory management segment of the Arena model. This model segment generates distribution-center orders, updates the output- buffer inventory level, triggers resumption of suspended manufacturing as necessary, sends shipments to the distribution center, and updates the distribution-center inventory level.

The logic of generating distribution center orders placed at the output buffer is virtually identical to the generation logic used in the previous segment, and therefore will not be described in detail. Recall that a pending order entity (bound for the distribution center) is detained in the Hold module, called Shall We Release DC Order?.

300 Modeling Supply Chain Systems

Figure 12.45 Dialog boxes of the Assign module Take Away From DC Inventory And Increase Backorders (bottom) and its associated Assignments dialog boxes (top).

This order entity is released once the variable Order_Output is set to 1. Similarly to the logic in the previous segment, the order entity proceeds to the Separate module, called Separate 2, where it duplicates itself. The order entity itself proceeds to enter the system as a distribution center order, while the duplicate loops back to the Hold

Modeling Supply Chain Systems 301

Figure 12.46 Dialog box of the Hold module Enough In DC?

Figure 12.47 Arena model of the inventory management segment for the output buffer.

302 Modeling Supply Chain Systems module, called Shall We Release DC Order?, to generate the next pending order of the

distribution center. The order entity next enters the Record module, called Tally Output Buffer Demand, to tally the order quantity. It then proceeds to the Decide module, called Check Output Buffer Inventory, to check whether the output buffer has sufficient inventory on hand to satisfy its demand. Again, two outcomes are possible. (1) If the condition

module, called Take Away from Output Inventory, where it decrements the on-hand inventory by Q_DC. (2) If the condition Inventory_Output < Q_DC holds, then the order entity takes the False exit. In this case, the demand is not fully satisfied and is backordered from the output buffer, and the order entity enters the Assign module, called Take Away From Output Inventory And Increase Backorders, to perform three assignments:

1. The backorder level variable Backorder_Output is incremented by the shortage amount.

2. The UnsatisfiedPortionDemand_Output attribute of the order entity is assigned the unsatisfied portion of the demand.

3. The inventory level Inventory_Output at the output buffer is set to 0. The order entity next proceeds to the Hold module, called Enough In Output?, where

it is detained until sufficient inventory accumulates in the output buffer, that is, until the condition

becomes true. Once this happens, the order entity is released and proceeds to the Assign module, called Decrease Available Items For Backorders In Output Buffer, where the variable AvailableForBackorders_Output is decremented by the shortage portion, UnsatisfiedPortionDemand_Output.

The order entity then proceeds to the Decide module, called Restart Production At Plant, to check whether the variable Inventory_Output has just down-crossed the reorder level r_Plant. If it has, then the order entity enters the Assign module, called Restart Production, where it sets Production_Plant ¼ 1, which would promptly release the pending production entity currently detained in the Hold module, called Shall We Produce?, in the input-buffer inventory/production management segment (see Figure 12.48), effectively resuming the production process.

The order entity is now ready for shipment to the distribution center. To this end, it proceeds to the Process module, called Order Arrival At DC, to model the transporta- tion delay from the output buffer to the distribution center. The order entity next proceeds to the Decide module, called Update DC Inventory, where three outcomes are possible:

for the Assign module, called Decrease DC Backorders Only, where it decrements Backorder_DC by Q_DC and increments AvailableForBackorders_DC by Q_DC.

2. If the condition Backorder_DC ¼ 0 holds, then the order entity takes the exit for the Assign module, called Increase DC Inventory Only, where it increments Inventory_DC by Q_DC.

Modeling Supply Chain Systems 303

3. If the condition 0 < Backorder_DC < Q_DC holds, then the order entity takes the exit for the Assign module, called Increase DC Inventory Decrease DC Backorders, where it sets Inventory_DC ¼ Inventory_DC þ Q_DC – Back- order_DC, increments AvailableForBackorders_DC by Backorder_DC by 1, and sets Backorder_DC to 0.

Finally, the order entity proceeds to be disposed of in the Dispose module, called Dispose DC Demand.

12.3.6 P RODUCTION /I NVENTORY M ANAGEMENT S EGMENT FOR I NPUT B UFFER

Figure 12.48 depicts the input-buffer production/inventory management segment of the Arena model. This model segment manages raw-material consumption and finished goods production by keeping track of a circulating control entity that modulates the suspension and resumption of production.

Figure 12.48 Arena model of the production/inventory management segment for the input buffer.

304 Modeling Supply Chain Systems To manufacture a product unit, the plant removes one unit of raw material from

the input buffer, processes it, and adds the resulting finished product to the output- buffer inventory and updates its level. If the target level is subsequently reached, then further production is suspended; production is re-started later when the reorder point is down-crossed. Production may also be stopped due to starvation resulting from depletion of raw material in the input buffer, until it is replenished from the supplier.

The Create module, called Production Process At Plant, generates a single control entity at time 0, which cycles in the segment such that each cycle represents a produc- tion cycle. The control entity first enters the Hold module, called Shall We Produce?, and is detained there until the production is allowed to re-start (recall that this happens when the inventory level in the output buffer down-crosses the reorder level there). Once production is allowed to resume, the control entity enters the Record module, called Tally Input Buffer Demand, to tally the next product unit.

The control entity then proceeds to the Decide module, called Check Input Buffer Inventory, to check if there is raw material in the input buffer. If true, it proceeds to the

Assign module, called Proceed to Production, to update the number of satisfied demands. If false, starvation is in effect and the control entity takes the False exit to the Hold module, called Wait For Inventory In Input Buffer, until the condition

proceeds to the Seize module, called Seize Plant, where it immediately seizes the Plant resource. To model the consumption of one unit of raw material, the control entity enters the Assign module, called Take Away From Input Buffer Inventory, and decrements by 1 both the inventory on-hand variable Inventory_Input and the inventory position variable InventoryPosition_ Input.

Similarly to the previous segments, the control entity next proceeds to the Decide module, called Order From Supplier, to check whether the reorder point at the input buffer has been down-crossed. If it has, a raw material replenishment is promptly triggered by releasing the order entity currently detained in the Hold module, called Shall We Release Plant Order?, in the supplier inventory management segment (see Figure 12.49). The control entity next enters the Assign module, called Order From Supplier And Update Input Buffer Inventory Position, where it updates the input buffer

Figure 12.49 Arena model of the production/inventory management segment for the supplier.

Modeling Supply Chain Systems 305 inventory position (variable InventoryPosition_Input) and triggers a supplier order by

setting the variable Order_Supplier to 1 of the variable Q_Input. In all cases, the control entity eventually enters the Delay module, called Production, to model the manufacturing time delay of one product unit, following which it proceeds to the Release module, called Release Plant, where it releases the Plant resource. Before adding the finished product unit to inventory, the control entity enters the Decide module, called Update Output Buffer Inventory, to check if there are any pending

holds). If there are pending backorders, the control entity takes the True exit for the Assign module, called Decrease Output Backorder, where a pending backorder is satisfied by decrementing the variable Backorder_Output by 1 and incrementing the variable AvailableForBackorders_Output by 1. Otherwise, if no backorders are pend- ing, the control entity takes the False exit for the Assign module, called Increase Output Inventory, where the output buffer inventory level is updated by incrementing the variable Inventory_Output by 1.

The control entity then proceeds to the Decide module, called Check Output Buffer Target Inventory, to check whether the inventory level at the output buffer has reached its target level. If it has, then the control entity takes the True exit for the Assign module, called Stop Production, and sets Production_Plant ¼ 0 to suspend production, after which it cycles back to the Hold module, called Shall We Produce?, to wait until the next production cycle is resumed. Otherwise, the control entity takes the False exit and cycles back to the Record module, called Tally Input Buffer Demand, to start the next production cycle.

12.3.7 I NVENTORY M ANAGEMENT S EGMENT FOR S UPPLIER

Figure 12.49 depicts the supplier inventory management segment of the Arena model. This model segment generates input buffer orders, sends shipments from the supplier to the input buffer, and updates the input buffer inventory level.

The logic of generating input buffer orders to the supplier is virtually identical to the generation logic used in the previous segments, and therefore will not be repeated. Note, however, that this model segment is a bit simpler than its counterparts; because the supplier always has sufficient inventory on hand, replenishment delays reduce to transportation delays.

12.3.8 S TATISTICS C OLLECTION

Figure 12.50 displays the spreadsheet view of the Statistics module for the multi- echelon supply chain model. The spreadsheet includes Time-Persistent statistics of on- hand inventory levels at the retailer, distribution center, output buffer, and input buffer, as well as Time-Persistent statistics of backorder levels at the distribution center and output buffer. It also includes the Time-Persistent statistic of plant utilization, that is, the percentage of time the plant is busy producing. Finally, the Output statistics estimate customer service levels at each echelon in terms of the fill rate, namely, the probability (fraction) of orders that were satisfied from on-hand inventory, without experiencing backordering.

306 Modeling Supply Chain Systems

Figure 12.50 Dialog spreadsheet of the Statistic module for the multiechelon supply chain system.

12.3.9 S IMULATION R ESULTS

The simulation study explored six supply-chain scenarios with varying demand rates. To attain reliable statistical outputs, each simulation run consisted of a single replication simulating 50,000,000 product-unit departures.

Simulation outputs for the six parameter settings of the demand arrival rate, l, are displayed in Table 12.3. The computed statistics are average inventory levels, average backorder levels, and customer fill rates (table columns) at four echelons: input buffer, output buffer, distribution center, and retailer (table rows). The notation N/A stands for “not applicable.”

An examination of Table 12.3 reveals that for a parameter setting of l ¼ 1:0, the average inventory level in the input buffer is 15.0203 and its fill rate is 99.88%. Furthermore, the average inventory level at the retailer is 8.5209 and its fill rate is 98.61%. This means that 1.39% of the demand at the retailer is lost. Varying the demand-arrival rate parameter for each given inventory shows an expected pattern:

a parameter increase results in concomitant decreases of the corresponding average inventory levels and fill rates, and concomitant increases in the corresponding average backorder levels.

Note that as the system load increases, the customer service level deteriorates the most at the output buffer of the manufacturing plant. This is due to the fact that the plant has a fixed production rate that must cope with an increasing demand rate. Thus, the highest supply chain echelon (excluding its supplier) is most affected by the increasing load. This phenomenon is consistent with the bullwhip effect explained in the beginning of this chapter.