Does your company frequently fail to meet customer demand despite high inventory costs, and you wonder if you could do better?
If your company lacks a well-designed decision-making process, the answer is “yes, you can certainly do better”! Inventory management is complex due to many interdependencies. Therefore, analytic models outperform gut feeling and rules-of-thumb in the long run. Many advanced companies have understood the value of analytical models in this context. This short article outlines the fundamental dynamics, chances, and challenges of optimizing inventory management.
Goals of inventory management
The goal of inventory management is to match supply and demand for final or intermediate products. In particular, we want to balance the following conflicting goals.
- Decrease costs (I explain the relevant cost factors below),
- Increase delivery capability and hence improve customer service.
- Decrease management effort and human error.
- Avoid excessive spoilage/waste when products are perishable (more on that in a future article).
A few words about data
Naturally, we first need to acquire the relevant data, which may not be readily available. Nevertheless, quantifying the costs is necessary for establishing an analytical decision-making process. When data is missing, we start with estimations or industry benchmarks. Many models are relatively insensitive to errors in measurement, and it’s always possible to fine-tune later.
Costs related to inventories
The following are the most relevant cost factors for inventory management decisions.
Fixed replenishment costs
Every replenishment (production or purchase order) causes a fixed replenishment cost independent of its size (quantity of items). For example, issuing a purchase order requires certain administrative activities such as handling invoices, receiving, and inspecting. When the fixed costs are relatively high, we want to make larger replenishments less frequently.
Unit variable costs
Each unit incurs a variable procurement cost whether it is purchased or produced. For example, when purchasing, the unit variable costs may comprise the purchase price, freight, and handling costs. A possible starting point is using the book value given by accounting.
Each unit on hand incurs a holding cost in every period (week, month, year). Self-evident causes are cooling, theft, and insurance. However, the largest share of the holding costs are typically the opportunity costs of the money invested. Therefore, the holding costs correlate with the unit variable costs. Another important factor is the opportunity costs of using warehouse space. When the holding costs are relatively high, we want to have fewer items on hand on average.
See further below!
Fixed costs versus variable costs
Let’s examine the fundamental dynamics that determine the best course of action. First of all, fixed replenishment costs and holding costs are adversaries. Fixed replenishment costs favor infrequent but large replenishments, i.e., larger batches. Larger batches increase the inventory on hand, which increases the holding costs. The inventory on hand that results from replenishing in batches is called cycle stock. The figure below illustrates the fundamental dynamic. The x-axis represents time, and the y-axis the on-hand inventory. The turquoise line shows the cycle stock. It increases when an order arrives and decreases according to the demand rate. You can move the slider to change the fixed costs and observe the increase in order sizes, order cycles, and average cycle stock on hand.
Demand forecasts and safety stocks
To make reasonable inventory management decisions, we need to forecast future demand. Forecasting techniques are most accurate when there is sufficient historical data to train the model (also see here). As the forecast accuracy decreases, unexpected demands become more likely. A straightforward way to compensate for such fluctuations is to keep additional units on hand. This amount is called safety stock, which additionally acts as a buffer against uncertain lead times on the supply side, but for simplicity, this post focuses on the demand side. Obviously, more safety stock reduces the likelihood of running out of stock. Therefore, our ability to deliver improves, and customer satisfaction increases.
Measuring customer service
The most common key performance indicator (KPI) to measure the service level is the fill rate. It is also called “Type 2 service level” or “Service level ”. The fill rate is the share of demand that is satisfied directly from the inventory on hand or the expectation thereof (also see here). Often, management defines a target service level such as . We then use this value to derive the cost-optimal inventory policy that achieves that target. There is a more analytical way to determine the target service level though. If we could quantify customer service in terms of costs, we could find the cost-optimal target service level.
Stockouts and consequences
Consider the consequences of stockouts (or out-of-stock events). First, we may be able to avoid the stockout with an emergency order. Otherwise, several things can happen.
- The customer waits until the item is available again (and is unhappy).
- The customer substitutes the product with another one.
- The customer gives up the order, goes to the competition, and the sale is lost.
If we knew how frequently these events occur and how costly they are, we could determine a penalty cost for stockouts. However, since it is virtually impossible to know these things, we simplify and work with estimates. For the sake of simplicity, let’s assume that customers always wait until their orders are filled once placed. Orders we cannot fulfill because we have no stock on hand are called backorders. Next, we estimate the cost per unit we must backorder and denote that cost as .
Optimizing the target service level
Now that we have done the math, we can determine the most economic target service level. The total costs comprise
- Holding costs (see above),
- Replenishment costs (see above), and
- Backorder costs (see previous section).
We can easily calculate the total costs depending on the target service level and solve for the cost-optimal target service level. The figure below illustrates this minimization (assuming a standard inventory policy and some example data). The slider allows changing the unit backorder cost. Moving the slider to the right increases the backorder cost. This increases the cost-optimal service level. Moving the slider to the left does the opposite. At some point, when becomes very small, it becomes cheaper to always backorder instead of keeping stock on hand since the holding costs would exceed the backorder penalty.
Optimizing the safety stock
Knowing the optimal target service level, we can calculate the safety stock given the demand forecast and its forecast error. The figure illustrates the underlying dynamic. The horizontal line shows the safety stock. On top of it sits the cycle stock. Increasing the forecast error increases the safety stock, while the cycle stock remains unchanged.
- The main goal in inventory management is decreasing costs while meeting service level targets.
- Cost-optimal order quantities and intervals depend on the fixed replenishment costs and on the holding costs.
- Uncertain demand and forecast errors require safety stocks.
- To determine the optimal amount of safety stock, we first estimate the costs of stockouts to find the optimal service level. Then, we calculate the optimal safety stock depending on the forecast error and the optimal service level.
Conclusion and extensions
This post introduced the fundamental dynamics underlying inventory management. While these dynamics are present for all stock-keeping units (SKUs), many SKUs are important enough to justify more sophisticated optimizations and control systems. Common extensions to consider are the following.
- Time-varying demand,
- Varying lead times when procuring products,
- Product spoilage and waste (also see here),
- Limited warehouse space that is shared between SKUs,
- The supply chain network with its inventory locations (see here).
If you have any questions or anything to add, please feel free to leave a comment!