# A generalized approach to demand buffering and production levelling for JIT make-to-stock applications.

INTRODUCTION

Product flow and production pull are key concepts of lean manufacturing (Womack and Jones, 1996). When product can flow through the factory at the same rate at which it is consumed by the customer then inventories can be kept low and capital that would have been tied up in work in process and finished goods inventory can be used more effectively. If customer demand is known exactly and production is set equal to this known demand then the factory can function like a production line only needing small amounts of inventory to accommodate possible yield variations in the production cells within the plant. However, even in the overly simple case, where demand is varying randomly around some known fixed mean, and the production rate is set to this mean rate, finished goods inventory can vary significantly. The reason for this can easily be proven by writing the inventory mass balance.

[I.sub.t] = [I.sub.t-1] + [P.sub.t-1] - [D.sub.t] (1.1.1)

where [I.sub.t] = inventory at time "t"; [P.sub.t-1] = production decision for time period "t" made at "t - 1 "; [D.sub.t] = Demand from "t - 1" to "t".

With demand varying randomly around a fixed mean, inventory can then be written as:

[I.sub.t] = [I.sub.t-1] + [e.sub.t] (1.1.2)

where [e.sub.t] = the difference between our specified [P.sub.t-1] and the mean of the sample demand that actually occurred during the "t - 1" to "t" time interval.

In this case the rate of change in inventory is random error, and inventory is made up of the sum of those random errors that have accrued over time. Mathematically this can be shown by defining a backshift operator, B, such that B[I.sub.t] = [I.sub.t-1], Equation (1.1.2) could then be rewritten as

(1 - B) [I.sub.t] = [e.sub.t] (1.1.3)

Dividing both sides of Equation (1.1.3) by (1 - B) permits us to write [I.sub.t] in terms of only current and past errors.

[I.sub.t] = [e.sub.t] + [e.sub.t-1] + [e.sub.t-2] + ...

This is significant because it mathematically demonstrates that inventory is a random walk (i.e., a sum of random errors) even when production and the true mean demand are known exactly.

Below are two plots. The 1st plot shows a generated time series of N(0,1) random deviates. The 2nd plot shows the sum of those random deviates. Even though the random deviates varied between [+ or -] 3, the sum of those random deviates (i.e., its random walk) varied between about 5 and -25 (Fig. 1).

Because finished goods inventory is a random walk it can also wander randomly, as in the second plot shown below. Inventory is not a memoryless process, and it will continue to accumulate any set of small biases that might be present in the difference between production and demand. It cannot be assumed that these differences will rapidly cancel each other out. The finished goods inventory time series is a nonstationary process.

[FIGURE 1 OMITTED]

Since finished goods inventory is the highest value-added inventory in the supply chain it makes economic sense to keep it as small as possible. However, this cannot be guaranteed with constant production, as shown above, because finished goods inventory is a random walk when future demand is not known exactly. And production capacity cannot be used and planned most efficiently when it must be varied to maintain low finished goods inventory. Therefore, a trade off is needed between the level of finished goods inventory needed to service customers with an acceptable level of backorders and an appropriate level of production variability that can be efficiently managed. The manufacturing cost as a function of finished goods inventory, production variability, and customer backorders will not be derived in this paper. Instead, production design curves will be developed that can be used to specify the amount of time that it is possible to produce at a level rate with a user-specified inventory level, customer service level, and production flex capability. This will then allow each production facility to determine the mix of these variables that will work effectively with their own unique cost function and manufacturing constraints. These production design curves will be developed by deriving the inventory variance that will result when production is kept constant for an arbitrary period of length N. The distributional properties of inventory will then be used to set an inventory level that will meet a user-defined level of backorders (i.e., a desired service level). The inventory buffer will be kept as close as possible to this service-mandated protection level at the start of each level production period via a feedback control law. This control law will determine the constant production rate for the upcoming period of length N. It will be shown that this control law results in a pull production system that sets its new production rate to exactly compensate for any mismatch between actual production and true demand in the previous level production cycle and a forecast for demand for the next production period. However, this pull production rate might result in unacceptably large changes in this rate. Therefore, a control strategy that only corrects for a proportion of the deviation of actual inventory from its desired aim has also been developed. This strategy can maintain a desired customer service level with a large decrease in production variance and only a minor increase in the desired inventory aim relative to the pure pull strategy. The production design curves that have been developed give a clear graphical representation of the possible benefit of backing off slightly from the pure pull production strategy.

Literature Review

The level mixed production JIT scheduling technique know as heijunka, Coleman and Vaghefi (1994), is aimed at trying to produce the right products at the right times with minimal inventory. Kovalyov et al. (2001) give a comprehensive review of the sequencing heuristics and algorithms that identify the production sequence that will result in a production rate that matches a predefined demand rate in some optimal manner (i.e., minimum sum of squares or minimum sum of absolute deviations). A simple method to determine a constant demand rate that can be used as a production aim is addressed by Kirwan (2002). Houghton and Portougal (2001) presents an optimum analytic production planning framework that develops a balance between JIT production that attempts to minimize inventory by varying production capacity versus batch production that attempts to maximize capacity by limiting the variability of the production process. Karmakar (1989) stresses the importance of hybrid systems that balance push and pull based on the complexity and dynamics of the products being produced. Groenevelt and Karmakar (1988) highlights the selection and maintenance of a target level of finished inventory and along with McCullen and Towill (2001) stresses the need to dynamically flex production to accommodate demand and yield variations. However, no details on how best to set the inventory target or flex production were presented. Bernegger (2002) highlights the problems caused by the inventory random walk and weaves an entertaining story of the exploits of an industrial engineer as he tries to apply Lean Manufacturing principles in the hypothetical KDK Corporation. The major thrust of his paper was to focus on the problems encountered when one attempts to use Ahead and Behind limits on inventory for JIT Make-To-Stock production applications. Similar to the work of Groenevelt, Bernegger suggests the importance of a target level of finished inventory and the need to control to this target on a regular basis. He gives no proof for his inventory random walk assertions and his results are entirely heuristic and apply only to the limited case where demand is constant with random error. Bernegger's unpublished work appears to be the only literature where the insidious nature of the inventory random walk has been addressed. Previous published work has assumed that inventory would remain under control if the production rate was aligned with the demand rate. This is not always true because of the stochastic nature of demand and its impact on inventory. This was demonstrated in the introduction to this paper. A method for determining reasonable production requirements and lead times that will result in acceptable production capacity variation and customer service levels under both stationary and nonstationary stochastic demand will be the topic of this paper. The control technique is analogous to the optimal averaging level control problem which arises in chemical process control when the manipulated flowrate exiting a surge tank feeds a sensitive downstream unit. Campo and Morari (1989) showed that a Proportional-Integral control law was the Linear Quadratic regulator that minimized the Var([[??]sub.t]) + [lambda] Var ([nabla][P.sub.t]) for this problem when demand could be modelled as a random walk disturbance and production could be adjusted at every sample instant. It was extended to the general disturbance case by Horton et al. (2003). In contrast to the work of Campo and Morari the control law developed here does not require that the production rate be adjusted at every sample instant. In addition, it develops design curves that will allow production management to choose an appropriate control interval, N, that will meet their production flex and inventory objectives.

Overview of the Paper

The next section of this paper will develop the control law for production, [P.sub.t], that will allow manufacturing to produce at a fixed rate for a user defined period of length N and a user defined customer service level. This section will conclude with three examples using demand series with similar means and variances, but markedly different stochastic behaviour. The first demand series will represent an arbitrary stationary process and the second series will represent a nonstationary process. They were chosen to represent the robust nature of the derived control approach. There are many extensions to this JIT production control process that might be appropriate for different production environments, and the final section of this paper will serve to highlight these enhancements.

SOLUTION STRATEGY

The solution strategy highlighted in this paper can be broken into seven steps. They are:

(1) Develop a general product demand model.

(2) Integrate an inventory model with the Step 1 demand model.

(3) Derive the level N-period production rate based on the model developed in Step 2.

(4) Calculate an inventory aim based on the error variance of the sum of N periods of future demand.

(5) Forecast the average N-period ahead demand rate.

(6) Calculate the new level N-period ahead production rate. This will be made up of two components. The 1st component will be an average N-period ahead demand component. The 2nd component will account for previous average N-period ahead forecast error.

(7) Design the level production manufacturing process to adhere to management's inventory objective and production's capacity constraints.

Step 1: Product Demand Model

Although demand can sometimes be modelled as a constant mean with random error, this is frequently unrealistic. Demand is more likely to have trends and seasonals and random mean shifts. The simplest model that can handle all these situations is the exponentially weighted moving average or EWMA model. It is simply written as:

[D.sub.t+1/t] = [alpha][D.sub.t] + (1 - [alpha])[D.sub.t/t-1] (2.1.1)

where [D.sub.t+1/t] = Forecast of demand for time period "t + 1" on the condition that we are currently at time "t"; [alpha] = Smoothing constant [0,1]; [D.sub.t] = Actual demand for time period "t" [D.sub.t/t-1] = Previous demand forecast.

It was demonstrated by Harris et al. (1982) that the demand model corresponding to the forecasted demand model Equation (2.1.1) can be written in Box-Jenkins notation (Box and Jenkins, 1976), as:

[[??].sub.t] = (1 - [[theta].sub.1]B)/1 - B [a.sub.t] (2.1.2)

where [[??].sub.t] = mean corrected demand [[D.sub.t] - (mean of demand)]; [[theta].sub.1] = (1 - [alpha]); B = Backshift operator (B[[??].sub.t] = [[??].sub.t-1]); [a.sub.t] = forecast error [[[??].sub.t] - [[??].sub.t/t-1]].

Alpha or [[theta].sub.1] in the above equations can easily be calculated as the value that minimizes the 1-period ahead forecast error. Readily available statistical software like JMP or Minitab have time series software that can easily estimate this parameter, or a simple routine in Excel can be written to do the estimation. The beauty of this model is that when alpha equals zero it represents a demand series that is nothing more than a constant mean with random error, and when alpha equals 1 it represents a model where the best estimate of [D.sub.t+1/t] = [D.sub.t]. An estimate of truth can usually be modelled with a parameter that is between zero and 1.

Step 2: Integrate Inventory and Demand Model

The inventory model that is a function of N periods of level production as well as demand can be written as the following mass balance:

[I.sub.t] = [I.sub.t-N] + N[P.sub.t-N] - ([D.sub.t-N+1] + [D.sub.t-N+2] + ... + [D.sub.t]) (2.1.3)

The inventory at time "t" is nothing more than the inventory at time "t - N" plus N periods of the constant production decision made at "t - N" minus the demand that occurred between "t - N" and "t". The goal is to decide on a constant production rate at time "t" that can be maintained for N time periods without violating a customer service level. This will be accomplished by specifying an inventory aim that will account for forecast errors during the N-period lead time. Call this inventory aim, [I.sub.aim], and subtract it from both sides of Equation (2.1.3), and define these deviated variables as [[??].sub.*], where (*) represents the appropriate time index. Now index the result by N time periods to give:

[[??].sub.t+N] = [[??].sub.t] + N[P.sub.t] - ([D.sub.t+1] + [D.sub.t+2] + ... + [D.sub.t+N]) (2.1.4)

The inventory term on the right hand side of this equation can be eliminated by using the backshift operator B. This will be useful for the subsequent derivation of [P.sub.t]. The new equation for inventory can be written as:

[[??].sub.t+N] = N/(1 - [B.sup.N]) [P.sub.t] - 1/(1 - [B.sup.N]) ([D.sub.t+1] + [D.sub.t+2] + ... + [D.sub.t+N]) (2.1.5)

Since Box-Jenkins forecasting models are written in terms of mean deviated variables it is desirable to rewrite Equation (2.1.5) in an appropriate deviated form. This results in:

[[??].sub.t+N] = N/(1 - [B.sup.N]) [[??].sub.t] - 1/(1 - [B.sup.N]) ([[??].sub.t+1] + [[??].sub.t+2] + ... + [[??].sub.t+N]) (2.1.6)

where [[??].sub.t] = [P.sub.t] - [bar.D]; [bar.D] = mean of demand; [[??].sub.t+i] = [D.sub.t+i] = - [bar.D] for i = 1,2, ..., N

When Equation (2.1.5) is rewritten as Equation (2.1.6) it is obvious that the equality is unaffected because N[bar.D] is both subtracted and then added to the numerators on the right hand side of the equation leaving the quantity unchanged. Thus, both forms are equivalent representations of the deviation of inventory from its aim at "t + N".

Step 3: Derive the Level N-Period Production Rate

Step 4 will derive the inventory aim that will guarantee a user-defined customer service level. This step will derive the control equation that should be used to keep the process at its inventory aim while a level N-period production rate is maintained in manufacturing.

Equation (2.1.5) suggests that inventory can be kept on aim if its right hand side is equated to zero. If this operation is performed and the resulting equation is solved for [P.sub.t], the following result is obtained.

[P.sub.t] = 1/N ([D.sub.t+1] + [D.sub.t+2] + ... + [D.sub.t+N]) (2.1.7)

This should not be a surprise. It says that inventory can be kept at its aim if the production rate for the next N time periods equals the average of the future N periods of demand. However, the future demand is not known. Therefore, minimum variance forecasts of demand will be used in their place.

Step 4: Calculate an Inventory Aim

The inventory aim will be calculated to account for the sum of forecasted errors in the future N periods of demand. The EWMA model of Step 1 will be used for generating the forecasts.

Recall that this model could be written as:

[[??].sub.t] = (1 - [[theta].sub.1]B)/(1 - B) [a.sub.t] = [a.sub.t] + (1 - [[theta].sub.1])[a.sub.t-1] + (1 - [[theta].sub.1])[a.sub.t-2] + ...

The above results in the following forecast equations for future demands:

[MATHEMATICAL EXPRESSION NOT REPRODUCIBLE IN ASCII]

The [a.sub.t] 's' are independent residuals with expected values of 0. Minimum variance forecasts are made by setting unknown future residuals to 0. The above results in the following equations for future demands.

[MATHEMATICAL EXPRESSION NOT REPRODUCIBLE IN ASCII]

The error in the sum of the predicted demands is given by summing the future residuals that were set to zero in the forecasts. That sum is given below:

[MATHEMATICAL EXPRESSION NOT REPRODUCIBLE IN ASCII] (2.1.8)

The forecasts of future demand are all identical for an EWMA model and can be written as:

[[??].sub.t+n/t] = (1 - [[theta].sub.1])([a.sub.t] + [a.sub.t-1] + ...)

= (1 - [[theta].sub.1])/1 - B [a.sub.t] for n = 1,2, ..., N (2.1.9)

Substituting Equations (2.1.8) and (2.1.9) into the inventory mass balance equation gives:

[MATHEMATICAL EXPRESSION NOT REPRODUCIBLE IN ASCII] (2.1.10)

The second term in the curly brackets has an expected value of zero and a variance given by:

[MATHEMATICAL EXPRESSION NOT REPRODUCIBLE IN ASCII] (2.1.11)

where [[sigma].sup.2.sub.a] = variance of 1-period ahead demand forecast error. This is the variance that was minimized when alpha was estimated for the EWMA model.

The derivation for Equation (2.1.11) is given in Appendix.

The above equation represents the variance of a weighted sum of random shocks that result in unknown disturbances to the inventory from "t" to "t + N". If N[P.sub.t] at time "t" is calculated to account for the deviation of [I.sub.t] from [I.sub.aim] as well as the best IMA(1,1) forecast of demand from "t" to "t + N", then this variance will represent an estimate of the variance of the inventory deviation from aim that will exist at "t + N". The weighted sum of these unknown shocks has an expected value of zero, and because of the Central Limit Theorem can be assumed to be approximately normally distributed. An appropriate multiple of the square root of this variance will be used to choose an inventory value, [I.sub.aim], that would allow for a user-defined customer service level (i.e., frequency of backorders). A multiplier of 1.64 would result in a backorder being generated for about 5% of the N-period production cycles. This represents the probability that the sum of the demands for N periods will result in an inventory depletion greater than [I.sub.aim] 5% of the time.

Step 5: Forecast the Average N-Period Ahead Demand

The EWMA is a dynamic-mean forecast model. Its equation was given as (2.1.1). Other forecast models suggested by Pankratz (1983) could be used if the dynamic behaviour of demand warranted the additional complexity. It was shown in Step 4 that the EWMA forecast is exactly the same for all future periods. Therefore, the average N-period ahead demand is nothing more than the one period ahead forecast (i.e., Equation 2.1.1). The mean of the past data can be used as the [D.sub.1/0] term to generate the first forecast of the average N-period ahead demand.

Step 6: Calculate a New Level N-Period Ahead Production Rate

Equation (2.1.7) can be rewritten in its mean corrected notation as:

[[??].sub.t] = 1/N ([[??].sub.t+1] + [[??].sub.t+2] + ... + [[??].sub.t+N]) (2.1.12)

If the mean corrected demands are replaced with their representation in terms of past and present shocks or errors one gets the results given below.

[MATHEMATICAL EXPRESSION NOT REPRODUCIBLE IN ASCII] (2.1.13)

The 1st term on the right hand side of the above equation is nothing more than the EWMA forecast [[??].sub.t+1/t]. The 2nd term is the average forecast error that will result during the next N time periods. This term is made up of future unknown random shocks that were set equal to zero, their expected value, for the purpose of forecasting.

The [[summation].sup.N.sub.n=1][n - (n - 1)[[theta].sub.1]][a.sub.t+N - n+1] is the amount that the inventory will have deviated from aim at "t + N". It is the demand component that is unknown at time "t", but which is known exactly at time "t + N". It can be accounted for when the production rate is calculated at "t + N". If our inventory at "t + N" is above aim, then production was greater than the sum of demand from "t" to "t + N" and vice versa. Therefore, if it is desired to keep inventory on aim, a prerequisite for maintaining our customer service level, then the production rate at time "t" could be calculated as:

[[??].sub.t] = [[??].sub.t+1/t] - [K.sub.p] ([I.sub.t] - [I.sub.aim]/N) or [P.sub.t] = [D.sub.t+1/t] - [K.sub.p] ([I.sub.t] - [I.sub.aim]/N) (2.1.14)

where [K.sub.p] = 1.0.

The 2nd term in this equation can be thought of as the "pull" part of our production decision. It is accounting for any mismatch in the demand or production that has already taken place. The 1st term can be thought of as the "push" part of our production decision. It is the best estimate of period demand for an IMA(1,1) demand model for the next N time periods. The above equation for the production rate will minimize [[summation].sup.N.sub.n=1] [([[??].sub.t+n/t] - [I.sub.aim]).sup.2] when demand can be modelled as an IMA(1,1) time series process. However, this control law can sometimes result in greater variance in the production rate than desired. It is frequently possible to reduce the variance of the production rate without suffering a major increase in the variance of the inventory from aim, that is, reduction in customer service rate, by not correcting for 100 of ([I.sub.t] - [I.sub.aim]). This can be accomplished by setting [K.sub.p], frequently called the proportional constant in the control literature, Marlin (1995), to a value of less than 1.0.

Step 7: Design the Level Production Manufacturing Process

The previous steps have assumed a levelling period (N). However, this is a decision parameter along with [K.sub.p]. The decision that is made for these parameters will result in different finished goods inventory and production capacity flex requirements. Step 4 above derived how to determine an inventory aim as a function of [alpha], N, and [[sigma].sup.2.sub.a]. This step assumed that [K.sub.p] was 1.0. [K.sub.p] and N are the only design parameters that can be freely changed for a fixed customer service level. The [alpha] and [[sigma].sup.2.sub.a] parameters are dictated by the stochastic demand process. To determine the effect of [K.sub.p] on inventory aim it is necessary to start with the inventory mass balance given as Equation (2.1.10). At time "t" the 2nd term in {} was set to 0 because future [a.sub.t]'s are unknown with an expected value of 0.0. Due to this setting the inventory at "t + N" will have deviated from its value at time "t", assume initially that inventory at time "t" is on aim, by this amount. If the control law given as Equation (2.1.14) is used then (1 - [K.sub.p]) of the inventory deviation from aim will be unaccounted for, and at "t + 2N" the inventory will have deviated from aim by:

[N.summation over (n=1)](n - (n - 1)[[theta].sub.1])[a.sub.t+2N-n+1] + (1 - [K.sub.p]) [N.summation over (n=1)](n - (n - 1)[[theta].sub.1])[a.sub.t+N-n+1] (2.1.15)

Since the [a.sub.t]'s are independent random variables with a variance of [[sigma].sup.2.sub.a], the variance of the summations in Equation (2.1.15) are equal and will be defined as [V.sub.0]. This results in the following geometric sequence for the inventory variance from aim.

[V.sub.0][1 + (1 - [K.sub.p]) + [(1 - [K.sub.p]).sup.2] + ...] = [V.sub.0]/1 - (1 - [K.sub.p]) (2.1.16)

when (1 - [K.sub.p]) < 1.

As expected, when [K.sub.p] = 1, this reduces to [V.sub.0] which is the variance given as Equation (2.1.11). This equation specifies how inventory aim, that is, expected level of finished goods inventory, will change as a function of [K.sub.p] for an arbitrary level schedule of length N. With this equation production management has the capability to manage inventory levels by their selection of an appropriate N and [K.sub.p]. However, it does not address production's capacity flex capability. This is controlled by the [P.sub.t] values calculated by Equation (2.1.14) at the end of each control interval. How to manage this will be developed next.

The second term in {} of Equation (2.1.13) is the inventory deviation from aim that will result at "t + N". If the [a.sub.t]'s in this term are decremented by "N" time periods it represents the inventory error that occurred at time "t". By multiplying this decremented term by [K.sub.p], Equation (2.1.14) is recast in terms of past independent shocks. In addition, by multiplying both sides of this new equation by (1 - [B.sup.N]) it is possible to derive an equation for the change in [P.sub.t]. This equation can then be used to calculate the variance of [P.sub.t] changes as a function of [alpha], N, [[sigma].sup.2.sub.a], and [K.sub.p]. This equation can then be used as a measure of the production capacity flex that would be required for different values of N and [K.sub.p]. The appropriately decremented and differenced equation is given as Equation (2.1.17).

[MATHEMATICAL EXPRESSION NOT REPRODUCIBLE IN ASCII] (2.1.17)

Making appropriate cancellations and combining residuals results in:

[MATHEMATICAL EXPRESSION NOT REPRODUCIBLE IN ASCII] (2.1.18)

If [[theta].sub.1] is defined as (1 - [alpha]) the variance of Equation (2.1.18) is given as Equation (2.1.19). It is derived in the same manner as the derivation presented in Appendix.

Var([P.sub.t] - [P.sub.t-N]) =

[[sigma].sup.2.sub.a]([[alpha].sup.2]([N.sup.2]{2[K.sup.2.sub.p] + 3[K.sub.p] + 3} - 3N[K.sub.p]([K.sub.p] + 1) + [K.sup.2.sub.p]) + 6[K.sub.p][alpha](N([K.sub.p] + 1) - [K.sub.p]) + 6[K.sup.2.sub.p])/3N (2.1.19)

Equations (2.1.16) and (2.1.19) can be used to generate a family of curves similar to that shown above (Fig. 2).

[FIGURE 2 OMITTED]

These curves can be used to design the production manufacturing process that will adhere to management's inventory objective and production's capacity constraints.

RESULTS

Below are plots of two demand series with similar means and standard deviations. The 1st series is stationary with a constant mean that is superimposed with a starred line on the plot. The starred line was fit as an EWMA with an alpha of 0.0. The 2nd series is nonstationary with a dynamic mean. The starred line on this plot is the EWMA fit of the time series with an alpha of 0.19 (Figs. 3 and 4).

[FIGURE 3 OMITTED]

[FIGURE 4 OMITTED]

Stationary Time Series Results

Figure 5 is a composite of four subplots that show the results of levelling production with the average forecast demand model with a lead time, N, of 10 and the stationary demand series shown above. The 1st subplot is the EWMA of the mean corrected demand series. The title on that subplot gives the mean as 508.47 and indicates that it was fit with an EWMA with an alpha of 0.0.

The 2nd subplot shows what would have happened to inventory if production was maintained at 508.47 units/time period, the true demand mean, for the full 100 time periods. It shows the impact of the inventory random walk. Since the true mean for demand over the 100 time periods was used, this inventory disturbance series both starts and ends at zero. If no stockouts were desired this subplot shows that initial inventory would have had to be about 750 units.

[FIGURE 5 OMITTED]

The 3rd subplot gives the 10-period constant production rate generated with Equation (2.1.14). These production rates would have resulted in the inventory series given as the 4th subplot. This subplot indicates that a starting inventory and inventory aim of 467 units were used, and that no stockouts resulted from the production rates from the 3rd subplot. The initial inventory and inventory aim were calculated by multiplying the square root of Equation (2.1.11) by (1.64). This would result in backorders occurring in about 5 % of the 10-period production cycles. In this example Equation (2.1.11) was used with N equal to 10, alpha equal to 0.0, and [[sigma].sub.a] equal to 89.99.

By using Equation (2.1.14) to calculate the production rate or takt it was possible to eliminate the inventory random walk. This was done with a production rate standard deviation of about 30 units and a user defined production lead time and customer service level. It should be noted that even though a starting inventory of about 750 units would have been able to protect a constant production rate from backorders for the current realization of this stationary demand series, there is no guarantee that another demand realization would give the same results. By its nature it cannot be said in advance where the inventory random walk will take you. However, the production scheduling strategy developed here is continually adaptive and will continue to work as long as the demand series is reasonably similar to the EWMA demand series upon which it was developed. In addition, this EWMA model can be easily monitored to determine its ongoing validity.

[FIGURE 6 OMITTED]

If inventory and customer service problems can exist in a simple constant demand situation such as this, the situation can only deteriorate if demand is more complicated. The important point is that a system is needed to flex production to control inventory and to provide acceptable customer service. This example has shown that this can be done very simply for a simple demand example. The next example will show that it can also work well in more complicated demand environments.

[FIGURE 7 OMITTED]

Nonstationary Time Series Results

Similar in format to the stationary time series example, the plot above is a composite of four subplots that show the results of production levelling with a lead time, N, of 10 time periods for the nonstationary series that was previously plotted. The 1st subplot is the EWMA time series with an alpha of 0.19 for the mean corrected nonstationary time series. The mean for this time series is 499.99, and is approximately the same as the mean for the stationary time series.

The 2nd subplot shows what would have happened to inventory if production was maintained at its true mean. In this case about 1500 units of production would have been required to eliminate any backorders. As before, the 3rd subplot gives the 10-period level production rate generated via Equation (2.1.14). These production rates would have resulted in the inventory positions plotted in the 4th subplot. This subplot was generated with a starting inventory and an inventory aim of 834 units, and it shows that these parameters were sufficient to eliminate any stockouts. As before, this inventory aim was derived by multiplying the square root of Equation (2.1.11) by (1.64). In this example Equation (2.1.11) was used with N equal to 10, alpha equal to 0.19, and [[sigma].sub.a] equal to 83.12. This value of [[sigma].sub.a] was the resulting standard deviation of the 1-period ahead forecast error from the EWMA fit that resulted in the alpha of 0.19. As with the stationary demand series, the production rates derived with Equation (2.1.14) were able to eliminate the inventory random walk with a user defined production lead time, N, and customer service level (Fig. 6).

In the previous example management had suggested a 10-day levelling period. They were not aware that this would require an average inventory of over 800 units for their desired customer service level (i.e., 5% probability of a stockout). After some discussion it was decided that an average inventory of 500 units with a production capacity flex standard deviation of between 80 and 90 units would be a desirable objective for this product. The design curves presented in Figure 2 indicate that it would be impossible to meet these objectives with a 10-day levelling period, but that a 5-day levelling period with a [K.sub.p] parameter of about 0.75 would probably satisfy management's objective. It should be noticed from these curves that by appropriately choosing the [K.sub.p] parameter that a large reduction in production capacity flex is frequently possible with only a small increase in average inventory. Figure 7 shows the results of simulating this example with the above parameters.

The above figure demonstrates that management's objectives have been met with the redesigned level scheduling strategy. By changing the level scheduling interval from 10 to 5, and by using a [K.sub.p] of 0.75 it was possible to change the standard deviation of production flex to about 83 units and the average inventory to about 500 units as noted by the 3rd and 4th subplots respectively. As before, the control strategy was able to meet its customer service objective. However, this time it accomplished that goal with an inventory aim of 495 units.

CONCLUSIONS

By capturing the stochastic behaviour of the customer demand series with an EWMA time series model a simple control law has been developed to eliminate the unavoidable inventory random walk. This control law allows manufacturing to produce at a planned fixed rate without being jerked around by variation in customer demand while simultaneously meeting a user-defined customer service level. The method can be thought of as a proactive design process that aims to minimize costs by simplifying the planning process and balancing the cost of holding inventory against the cost of making production changes at the end of each control interval.

There are many enhancements to this basic model that might be appropriate for different production environments. In particular:

(1) Production might be limited by maximum machine capacity.

(2) Production changes might have to be made in predefined increments representative of an additional shift of production or the capacity of an additional piece of equipment being brought on line.

(3) Production might be made at one location, but assembly might be done in another plant. This might require a significant shipping delay or lead time. In this situation the inventory aim at the assembly or shipped-to location would have to account for the shipping lead time.

(4) Production planning might have to begin with, and thus be based on, data prior to the production implementation time period.

(5) Demand might be modelled better with a more representative time series model.

Items (1) and (2) are easily handled by limiting the output of the control law. Item (1) does not cause a problem as long as the maximum is not exceeded too frequently. Item (2) can be accommodated by appropriately rounding up or down. Items (3) and (4) can be accommodated by developing appropriate inventory balances and associated control laws. Item (5) could be developed in a manner analogous to the development in this paper with the substitution of an appropriately enhanced time series model. This would reduce the forecast error variance and result in a lower inventory aim for an equivalent customer service level. However, this might have to be balanced against model robustness and planning complexity.

In Monden (1998) a visual production planning model with Kanban Cards and an Heijunka planning process is the mainstay of the Toyota Production System. The model developed in this paper is very much in line with this well known pull production system. And, if desired, the control system developed here could be recast in this visual format. Bernegger (2006) has developed the simple Kanban Equations for the special case of stationary demand (i.e. EWMA demand model with [alpha] = 0.0). In this simple case the number of Kanban Cards in the production system remains constant. More realistic, nonstationary demand situations, however, will require the appropriate addition or removal of Kanban Cards when changes in mean demand are identified.

APPENDIX: DERIVATION OF EQUATION (2.1.11): INVENTORY VARIANCE

The variance in [I.sub.1+N] results from our inability to exactly forecast the sum of the next N periods of future demand. The 2nd term in curly brackets from Equation (2.1.10) is the quantity that was set to zero in the process of making the demand forecasts. Its variance is the cause of the inventory variance that will be observed. Since this term is made up of independent random shocks its variance can be written as:

[MATHEMATICAL EXPRESSION NOT REPRODUCIBLE IN ASCII]

Note that:

[N.summation over (n=1)] [n.sup.2] = (N)(N + 1)(2N + 1)/6

[N.summation over (n=1)] n = (N)(N + 1)/2

[alpha] = (1 - [[theta].sub.1])

Substitute these identities into the above equation to get the following result.

[[[alpha].sup.2] [(N)(N + 1)(2N + 1)/6] + 2[alpha](1 - [alpha]) [N(N + 1)/2] + N[(1 - [alpha]).sup.2]][[sigma].sup.2.sub.a] (2.1.11)

ACKNOWLEDGEMENTS

The author acknowledges the valuable comments of an anonymous reviewer that highlighted the similarity of this work to the optimal averaging level control problem which arises in chemical process control.

Manuscript received February 17, 2008; revised manuscript received May 19, 2008; accepted for publication June 2, 2008.

REFERENCES

Bernegger, P., "The Factory Physics of Level Scheduling, Managing Demand Variability in a Lean Manufacturing Supply Chain," Eastman Kodak Company, Rochester, NY (2002), unpublished memorandum.

Bernegger, P., "Demand buffering and production leveling for JIT make-to-stock applications," to be submitted for publication. (2006).

Box, G. and G. Jenkins, "Time Series Analysis: Forecasting and Control," 2nd ed., Holden-Day, San Francisco (1976).

Campo, P. J. and M. Morari, "Model Predictive Optimal Averaging Level Control," AIChE J. 35(4), 579-591 (1989).

Coleman, J. and R. Vaghefi, "Heijunka (?): A key to the Toyota Production System," Prod. Inventory Manage. J. 35(4), 31-35 (1994).

Groenevelt, H. and U. Karmakar, "A Dynamic Kanban Case Study," Prod. Inventory Manage. J. 29, 46-50 (1988).

Harris, T. J., J. F. MacGregor and J. D. Wright, "An Overview of Discrete Stochastic Controllers: Generalized PID Algorithms With Dead-Time Compensation," CJChE 60(6), 425-432 (1982).

Houghton, E. and V. Portougal, "Optimum Production Planning: An Analytic Framework," Int. J. Oper. Prod. Manage. 21(9), 1205-1221 (2001).

Horton, E. C., M. W. Foley and K. E. Kwok, "Performance Assessment of Level Controllers," Int. J. Adapt. Control Signal Process. 17, 663-684 (2003).

Karmakar, U., "Getting Control of Just-in-Time," Harv. Bus. Rev. 67, 121-131 (1989).

Kirwan, J., "An Answer to Manufacturing's Pervasive Problems," Appliance 57(2), 57-59 (2002).

Kovalyov, M., W. Kubiak and J. Yeomans, "A Computational Analysis of Balanced JIT Optimization Algorithms," INFOR 39(3), 299-316 (2001).

Marlin, T., "Process Control: Designing Process and Control Systems for Dynamic Performance," McGraw-Hill, Inc, New York (1995).

McCullen, P. and D. Towill, "Achieving Lean Supply Through Agile Manufacturing," Integr. Manuf. Syst. 12(7), 524-533 (2001).

Monden, Y., "Toyota Production System, an Integrated Approach to Just-In-Time," 3rd ed., Engineering and Management Press, Norcross, GA (1998).

Pankratz, A., "Forecasting With Univariate Box Jenkins Models: Concepts and Cases," John Wiley & Sons, New York (1983).

Womack, J. P. and D. T. Jones, "Lean Thinking: Banish Waste and Create Wealth in Your Corporation," Simon & Schuster, New York (1996).

Ronald E. Swanson * Clearbrook Consulting, 123 Clearbrook Dr., Rochester, NY 14609