Operations Research

Inventory Optimization: How Much Stock Should You Really Hold?

Too much stock ties up cash and too little loses customers. This guide takes one distributor through seven stocking decisions, from order size and safety stock to seasonal plans, warehouse pooling and service levels across a product range, and prices each one exactly.

21 Min Read Updated: September 2026 Beginner to Intermediate
Mohammed Islam Hadjoudj
Mohammed Islam Hadjoudj
Expert Operations Research Engineer

1. Too much stock and too little both cost money

For most distributors, retailers and manufacturers, inventory is the largest asset on the balance sheet that nobody manages with a formula. Stock levels are set by rules of thumb such as "keep a month's supply" or "never run out of our best sellers", adjusted after every shortage and every cash squeeze. Both failure modes are expensive. Too much stock ties up cash, fills warehouses and risks obsolescence. Too little loses sales, triggers expensive expediting and damages customer relationships.

Inventory theory is where operations research began. Ford Harris published the economic order quantity in 1913, Kenneth Arrow, Theodore Harris and Jacob Marschak founded the modern theory of inventory under uncertainty in 1951, and Harvey Wagner and Thomson Whitin showed in 1958 that planning orders for changing demand is a shortest path problem. Edward Silver, David Pyke and Douglas Thomas's textbook and Sven Axsäter's Inventory Control cover the field as it is practised today.

This article takes one distributor and answers the question in its title seven ways: how much to order, how much safety stock to hold, which service measure to promise, how to plan a seasonal product, whether to run one warehouse or four, where in the supply chain to keep buffers, and how to set service levels across a product range. Every number was computed exactly from the model, not estimated.

2. What stock costs

Three costs decide how much stock a business should hold:

These figures are illustrative rather than taken from any particular company, but they are typical in structure. Holding cost pushes towards small, frequent orders and little safety stock; ordering cost pushes towards large, infrequent orders; shortage cost pushes towards more safety stock. The optimal policy balances all three.

3. The distributor used throughout

A tools distributor buys a best-selling cordless drill for $80 and sells it in four regions from one central warehouse. Weekly demand in each region varies around its average:

RegionAverage weekly demandStandard deviation
North18060
South14050
East11045
West7035

Total demand averages 500 drills a week, 26,000 a year. At a 25% holding rate each drill costs $20 a year to keep in stock. The supplier's lead time averages 2 weeks, but deliveries vary, with a standard deviation of half a week.

The distributor's current rule is simple: when stock falls to three weeks of demand, 1,500 drills, order a month's supply, 2,000 drills. The question is whether that rule is right.

4. How much to order: the economic order quantity

Start with the order size, ignoring uncertainty for a moment. Ordering more at a time means fewer orders a year but more stock on average, because stock falls from the order quantity to zero between deliveries and so averages half the order quantity. Harris's 1913 formula balances the two costs exactly:

EOQ = √(2 × annual demand × ordering cost / holding cost per unit per year)

For the drill that is √(2 × 26,000 × $400 / $20) = 1,020 drills, about two weeks of demand, at a yearly ordering and cycle-stock holding cost of $20,396.

A line chart of yearly cost against order quantity from 400 to 3,000 drills. A dashed ordering cost curve falls, a dashed holding cost line rises, and the solid total cost curve has a flat minimum of 20,396 dollars at 1,020 drills. A green band marks order quantities from 745 to 1,397 drills that cost within 5% of the minimum. Markers show 1,500 drills at 21,933 dollars, 7.5% above the minimum, and a month's supply of 2,000 drills at 25,200 dollars, 23.6% above.
The total cost curve is flat near its minimum, so a rounded or convenient order quantity costs little. Doubling it does not.

The curve's most useful property is its flat bottom. Any order quantity between 745 and 1,397 drills costs within 5% of the optimum, so rounding to a full pallet or a convenient truckload is harmless. Ordering 1,500 costs 7.5% more. Ordering a month's supply, 2,000 drills, costs $25,200, 23.6% more. The EOQ is robust to small errors in the cost estimates, which is why a formula from 1913 is still the starting point of every inventory system.

5. How much safety stock: service levels and supplier delays

Demand is not steady, and the supplier is not punctual. The risk of running out is concentrated in the time between placing an order and receiving it: if demand is high or the delivery is late, stock runs out before the order arrives. Safety stock is the extra stock held for that period, and the reorder point is expected demand during the lead time plus safety stock.

Expected demand during a 2-week lead time is 1,000 drills. Its variability combines two sources. Weekly demand varies independently across regions, and a late delivery adds a whole extra period of demand. The standard formula for the standard deviation of demand during the lead time is:

σ = √(lead time × weekly variance + average weekly demand² × lead time variance)

Here that is √(2 × 9,350 + 500² × 0.25) = √(18,700 + 62,500) = 285 drills. If the supplier were always exactly on time it would be only 137. Supplier delays account for 77% of the variance. Eppen and Martin (1988) also showed that the usual normal approximation can mislead when lead times vary, so this component deserves careful measurement.

Left, a curve of safety stock against cycle service level from 80% to 100%, rising slowly and then steeply: 90% needs 365 drills with a fill rate of 98.68%, 95% needs 469 drills with 99.42%, 98% needs 585 with 99.79%, 99% needs 663 with 99.91%, and 99.9% needs 881 with 99.99%. Right, the best policy recomputed for six suppliers: 2 weeks always on time, 789 drills on average and 26,523 dollars a year; 2 weeks with a spread of 0.25 weeks, 887 and 28,684 dollars; today's supplier, 2 weeks with a spread of 0.5 weeks, 1,086 and 33,100 dollars; 2 weeks with a spread of 1 week, 1,542 and 43,318 dollars; 1 week with a spread of 0.5 weeks, 1,052 and 32,353 dollars; and 3 weeks with a spread of 0.5 weeks, 1,117 and 33,804 dollars.
The last few points of service are the most expensive, and an unreliable supplier costs far more stock than a slow one.

The cycle service level is the probability that stock does not run out before an order arrives. Assuming lead-time demand is roughly normal, safety stock is the service level's z-value times σ. With orders of 1,020 drills:

Cycle service levelSafety stockYearly holding costFill rateDrills short per yearYearly total cost
90%365$17,50098.68%344$36,305
95%469$19,58099.42%151$33,561
98%585$21,90099.79%53$33,432
99%663$23,46099.91%25$34,271
99.9%881$27,82099.99%2$38,066

The last step is the steepest: going from 99% to 99.9% needs 33% more safety stock to avoid about 23 shortages a year. The right-hand panel of the figure re-optimises the whole policy for different suppliers. A supplier who always delivered in exactly 2 weeks would cut average stock from 1,086 to 789 drills and yearly cost by $6,577. A supplier who delivered in 1 week, with the same unreliability, would save only $747. For this product, reliability is worth nearly nine times as much as speed, which is useful to know before negotiating with suppliers.

6. Service level or fill rate?

Service targets are often stated without saying what is measured, and the difference matters. The cycle service level counts replenishment cycles without a stockout. The fill rate counts the share of demand delivered from stock. A stockout late in a cycle may leave only a few customers waiting, so the fill rate is usually much higher than the cycle service level.

The expected shortage in a cycle is σ times the standard normal loss function of the z-value, and the fill rate is one minus that shortage divided by the order quantity. For the drill, a 95% cycle service level already delivers a 99.42% fill rate, and a 90% cycle service level delivers 98.68%. A manager who asks for "98% service" meaning fill rate, and receives a 98% cycle service level, gets 585 drills of safety stock, although 365 drills, a 90% cycle service level, would already have delivered 98.68%. Across a product range that confusion alone can inflate inventory by a large margin.

7. The best policy, and what today's rule costs

Order size and reorder point interact: larger orders mean fewer cycles, so fewer occasions to run out, so less safety stock is needed. Hadley and Whitin's 1963 method finds both together by alternating between the two formulas until they agree, and a final search over whole numbers confirms the optimum.

PolicyReorder pointOrder quantityFill rateOrderingHoldingShortagesYearly total
EOQ, no safety stock1,0001,02088.85%$10,196$10,200$72,444$92,840
Current rule1,5002,00099.77%$5,200$30,000$1,481$36,681
EOQ, 99% service level1,6631,02099.91%$10,196$23,460$615$34,271
EOQ, 95% service level1,4691,02099.42%$10,196$19,580$3,785$33,561
Optimal1,5161,13999.65%$9,131$21,710$2,259$33,100

The optimal policy reorders at 1,516 drills and orders 1,139 at a time, for $33,100 a year. The current rule costs $3,581 a year more for this one product, and holds about 415 more drills on average, around $33,000 of cash that could be used elsewhere. It does deliver a slightly higher fill rate, 99.77% against 99.65%, but at $25 per drill short that extra service is worth far less than the stock it takes.

The first row is the warning. Using the EOQ as a reorder rule with no safety stock runs out in half of all cycles, delivers only 88.9% of demand from stock, and costs $92,840 a year once shortages are counted. The EOQ answers how much to order, not when.

8. Seasonal products: ordering as a shortest path

The EOQ assumes steady demand. The distributor also sells patio heaters, whose demand swings with the seasons. Monthly forecasts are known, each order costs $900, and a heater held for a month costs $1.50. When should orders be placed, and how large should each be?

Wagner and Whitin (1958) proved that an optimal plan only orders when stock has run out, so every order covers the demand of a run of consecutive months. That turns planning into a shortest path problem. Draw nodes 0 to 12, where node t means "the first t months are covered", and an arc from i to j for an order placed in month i + 1 that covers months i + 1 to j. Its cost is $900 plus the holding cost of carrying the later months' heaters. Every plan is a path from node 0 to node 12, and the cheapest path is the best plan.

Top, monthly forecast demand for patio heaters: January 260, February 210, March 150, April 90, May 50, June 30, July 20, August 30, September 70, October 160, November 280 and December 340. Middle, 13 nodes numbered 0 to 12 on a line with all 78 possible order arcs drawn faintly. The shortest path in green uses arcs 0 to 2 costing 1,215 dollars, 2 to 8 costing 1,665 dollars, 8 to 10 costing 1,140 dollars and 10 to 12 costing 1,410 dollars. The Silver-Meal plan is shown dashed in red. Bottom, the cost of each plan: shortest path 5,430 dollars with orders in January, March, September and November; Silver-Meal 5,640 dollars, 3.9% more; least unit cost 6,105 dollars, 12.4% more; every 3 months 6,225 dollars, 14.6% more; every month 10,800 dollars, 98.9% more.
A year of orders is a path through a directed acyclic graph, and the best year is its shortest path.

The graph is a directed acyclic graph with 78 arcs, so the shortest path takes one pass in order of the nodes, and Dijkstra's algorithm works too because every arc cost is positive. The optimal plan costs $5,430: order 470 heaters in January for January and February, 370 in March to cover the quiet months to August, 230 in September and 620 in November.

MethodOrders placed inYearly costAbove optimum
Order every monthEvery month$10,800+$5,370
Order every 3 monthsJan, Apr, Jul, Oct$6,225+$795
Least unit costJan, Mar, Jun, Nov$6,105+$675
Silver-MealJan, Sep, Nov$5,640+$210
Shortest pathJan, Mar, Sep, Nov$5,4300

The heuristics are all sensible. Ordering every 3 months uses the EOQ's average interval. Least unit cost extends each order while the cost per heater falls. The Silver-Meal heuristic (1973) extends each order while the cost per month falls, and it is the best of them here: its first order covers January to August, which saves an order but pays to store the spring and summer heaters from January onwards. It is still $210 above the optimum, and nothing in the heuristic says so. The shortest path is exact and just as fast to compute, and Wagelmans, van Hoesel and Kolen (1992) showed it can be solved in O(n log n) time for long horizons.

9. One warehouse or four? Risk pooling

The sales team proposes regional warehouses so customers get next-day delivery. Before weighing that benefit, price the inventory. Each regional warehouse would order drills directly from the supplier, with its own reorder point and order quantity.

Left, stacked bars of average drills on hand. Four regional warehouses: 1,090 cycle stock and 550 safety stock, 1,640 drills, 54,605 dollars a year. One central warehouse: 570 cycle stock and 516 safety stock, 1,086 drills, 33,100 dollars a year. Right, safety stock for a 98% cycle service level in four scenarios. Demand uncertainty only: regional 552, central 281, 49% less. Plus supplier delays: regional 756, central 585, 23% less. Regions correlated 0.6: regional 756, central 691, 9% less. Regions move together: regional 756, central 754, 0% less.
Pooling demand in one warehouse saves both cycle stock and safety stock, but the safety stock saving shrinks when uncertainty is shared.

With every warehouse running its best policy, four regional warehouses cost $54,605 a year against $33,100 for one, $21,505 more, and hold about 555 more drills on average. Part of the difference is ordering: four warehouses place about twice as many orders in total, and each regional order is smaller, so cycle stock almost doubles from 570 to 1,090 drills.

The safety stock saving is the famous square-root law. If regional demands are independent, the standard deviation of total demand grows with the square root of the sum of the variances, not with the sum of the standard deviations. David Maister stated the law for inventory centralisation in 1976, and Gary Eppen proved the cost effect in 1979. At a 98% cycle service level, and counting demand uncertainty only, one warehouse needs 49% less safety stock than four.

Two things shrink the saving. Supplier delays hit all four warehouses at once, so pooling cannot cancel them out: with delays included, the saving falls to 23%. And when regions' demands rise and fall together, there is less to cancel: with a correlation of 0.6 between regions, the saving is 9%, and when regions move together it disappears. Pooling is most valuable for products with independent, noisy local demand and a reliable supplier, and least valuable for products driven by one national promotion calendar. The facility location guide covers the other side of this trade-off, transport cost and delivery distance.

10. Where in the supply chain to hold stock

So far the supplier has been a single lead time. In reality the drill passes through several stages, and safety stock could be held at any of them. The drill is made in a factory in 4 weeks, spends 5 weeks on a ship, takes 1 week to clear and ship out of the central warehouse, and 1 more week to reach a regional warehouse, where customers expect it to be in stock. Its value rises along the way, from $50 at the factory to $60 after shipping, $70 at the central warehouse and $80 in the regions.

The guaranteed service model, introduced by Kenneth Simpson in 1958 and made practical by Stephen Graves and Sean Willems in 2000, treats the supply chain as a graph. Each stage promises its customer a service time and holds enough safety stock to cover demand during its net replenishment time: the time its own supplier takes, plus its processing time, minus the time it promises downstream. A stage can hold a buffer, or it can hold nothing and pass its lead time downstream. Because safety stock grows with the square root of time, one buffer covering 10 weeks is much smaller than separate buffers for 4, 5 and 1 weeks.

Three rows showing a supply chain from a factory with a 4-week lead time, to ocean freight with 5 weeks, to a central warehouse with 1 week, to four regional warehouses with 1 week. First row, a buffer at every stage: 318 drills at the factory for 4 weeks, 356 in ocean freight for 5 weeks, 159 at the central warehouse for 1 week and 313 in the regions for 1 week, 18,345 dollars a year. Second row, buffers only in the regions: 1,037 drills covering 11 weeks, 20,730 dollars a year. Third row, the optimal placement: no buffer at the factory or in ocean freight, 503 drills at the central warehouse covering 10 weeks and 313 in the regions for 1 week, 15,052 dollars a year.
The best place for safety stock combines a pooling point with a long uncovered lead time, not the cheapest stage and not the stage closest to customers.

At a 95% service level, counting weekly demand variability only, all 225 combinations of service times can be checked. A buffer at every stage costs $18,345 a year to hold. Holding buffers only in the regions, where stock is most expensive and demand is split four ways, is worst at $20,730. The optimum holds no buffer at the factory or on the water, 503 drills at the central warehouse covering all 10 upstream weeks, and 313 drills in the regions for their final week, for $15,052 a year: 18% less than a buffer everywhere and 27% less than regional buffers only.

The central warehouse wins because it combines two advantages: it sees the pooled demand of all regions, and its drills are still cheaper than regional drills. For supply chains shaped as trees, Graves and Willems solve the problem with a dynamic programme over the graph, and Humair and Willems (2011) extended the approach to general acyclic networks. Andrew Clark and Herbert Scarf's 1960 work on serial systems is the foundation of the related stochastic-service models.

11. Many products, one service target

Real distributors manage thousands of products, and a common rule is to give them all the same service level, or to give the most valuable products the highest one. Consider six products that share a target: 98% of all units ordered delivered from stock.

ProductUnit costAverage weekly demandOrder quantityLead-time demand deviationOne service levelOptimalOptimal, each at least 95% fill
Cordless drill$805001,020285$14,640$12,080$12,880
Battery pack$259002,448210$3,375$6,075$4,400
Charger$303001,290120$2,310$2,610$1,080
Circular saw$15012036590$8,700$0$6,600
Blade pack$67004,406260$1,002$2,304$1,896
Laser level$2204017435$5,060$0$2,860
Total safety stock investment$35,087$23,069$29,716

Meeting the target with one cycle service level for every product requires 74%, and $35,087 of safety stock. But the target counts units, not dollars, and a unit of blade packs costs $6 while a laser level costs $220. The cheapest way to meet the target puts safety stock where each dollar prevents the most shortages. Because expected shortages fall with diminishing returns as safety stock rises, adding safety stock one unit at a time wherever it prevents the most shortages per dollar leads to the optimum, a result known as marginal analysis (Fox, 1966). The totals below are within one unit's cost of a mathematical lower bound on the best possible investment.

Horizontal bars of safety stock investment per product under three policies. Cordless drill: 14,640 dollars with one service level, 12,080 optimal, 12,880 with a 95% fill floor. Battery pack: 3,375, 6,075 and 4,400. Charger: 2,310, 2,610 and 1,080. Circular saw: 8,700, 0 and 6,600. Blade pack: 1,002, 2,304 and 1,896. Laser level: 5,060, 0 and 2,860. Totals: one service level of 74% for all 35,087 dollars, optimal mix 23,069 dollars, optimal with every product at least 95% fill 29,716 dollars.
The optimum raises service on cheap, fast-moving products and lowers it on expensive ones, the opposite of the usual rule.

The optimum meets exactly the same 98% target with $23,069, 34% less. It raises blade packs to a 93% cycle service level and battery packs to 88%, and holds no safety stock at all for the circular saw and the laser level, whose fill rates fall to about 90% and 92%. That is often unacceptable commercially, so the last column adds a rule that no product may fall below a 95% fill rate. The optimum under that rule costs $29,716, still 15% less than one service level for all. Teunter, Babai and Syntetos (2010) proposed classifying products by a criterion that combines shortage cost, demand, holding cost and order quantity, and showed on real data sets that it achieves the same service at lower inventory cost than the usual classification by sales value.

12. What is easy, what is hard

ProblemMethodDifficulty
Order quantity for steady demandEOQ (Harris, 1913)Closed-form formula
Safety stock for a service levelNormal distribution and loss functionClosed-form formula
Reorder point and order quantity togetherHadley and Whitin iterationA few iterations
Uncapacitated lot sizing with changing demandShortest path (Wagner and Whitin, 1958)Polynomial, O(n log n)
Lot sizing with limited capacityInteger programmingNP-hard (Florian, Lenstra and Rinnooy Kan, 1980)
Serial supply chain with random demandEchelon base-stock policies (Clark and Scarf, 1960)Efficient stage-by-stage recursion
Safety stock placement on a treeDynamic programming (Graves and Willems, 2000)Polynomial
Service levels across many products, one targetMarginal analysis or Lagrangian relaxationPolynomial

Compared with routing or scheduling, a surprising share of inventory optimisation is exactly solvable at scale. The hard parts are elsewhere: forecasting demand and its variability honestly, capturing capacity and minimum order constraints, and joining the separate models into one consistent policy. Paul Zipkin's Foundations of Inventory Management covers the theory behind each row.

13. What the model leaves out

None of these changes the core picture: order quantity from the balance of ordering and holding cost, safety stock from lead-time variability and a correctly defined service target, and placement from where pooling and value are most favourable.

14. From spreadsheet to inventory policy

Measure the real inputs. Demand history by product and location is usually in the ERP system. Supplier lead times are too, as order and receipt dates, and the spread of actual lead times is often the biggest surprise. The holding cost rate belongs to finance, and it should include the cost of capital, not only storage.

Price today's rules. Compute the ordering, holding and shortage costs of the current reorder points and order quantities with the same model. For the drill that baseline showed $3,581 a year and 414 drills of excess stock. Repeated across a product range, that is the business case for a project.

Agree the service measure. Decide whether the target is a cycle service level, a unit fill rate or an order fill rate, and whether it applies per product or across the range. As section 11 showed, the choice changes the required investment by a third.

Work on the supply side too. Supplier reliability, shorter internal processing and pooling points often reduce inventory more than any formula. Most ERP and planning systems can hold reorder points and safety stocks computed elsewhere, and dedicated inventory optimisation tools add multi-echelon placement. Whatever the tool, re-compute parameters regularly, because demand and lead times drift. The supply chain optimisation guide shows how inventory fits with network flows and transport.

15. Mistakes that quietly cost money

16. Frequently asked questions

What is inventory optimization?

+

It is setting order quantities, reorder points and safety stocks so that a target level of customer service is met at the lowest total cost of ordering, holding stock and shortages. It uses demand and lead-time data, cost parameters and models such as the economic order quantity, service level formulas, lot sizing and multi-echelon safety stock placement, instead of rules of thumb such as holding a fixed number of weeks of supply.

How do you calculate safety stock?

+

Safety stock is the z-value of the chosen cycle service level multiplied by the standard deviation of demand during the lead time. When both demand and lead time vary, that standard deviation is the square root of the lead time times the variance of demand per period plus the square of average demand times the variance of the lead time. In the article's example, a 95% cycle service level needed 469 drills of safety stock.

What is the difference between service level and fill rate?

+

The cycle service level is the probability that stock does not run out during a replenishment cycle. The fill rate is the share of demand delivered immediately from stock. Because a stockout often affects only a few units at the end of a cycle, the fill rate is usually much higher: in the example, a 95% cycle service level delivered a 99.42% fill rate. Setting targets without saying which is meant leads to excess inventory.

Is the economic order quantity still useful?

+

Yes, as a starting point for order sizes. Its total cost curve is flat near the optimum, so rounding to pallets or truckloads costs little: in the example, any quantity between 745 and 1,397 units cost within 5% of the minimum. It does not set reorder points or safety stock, it assumes steady demand, and it should be adjusted for quantity discounts, minimum orders and capacity limits.

What is the Wagner-Whitin algorithm?

+

It finds the cheapest schedule of orders for a product with known but changing demand, fixed ordering costs and holding costs. Because an optimal plan orders only when stock runs out, each order covers a run of consecutive periods, and the problem becomes a shortest path through a directed acyclic graph whose arcs are possible orders. In the example it beat the Silver-Meal heuristic by $210 over a year.

Does centralizing inventory always reduce stock?

+

It reduces cycle stock and ordering costs, and it reduces safety stock when local demands are independent, following the square-root law. The safety stock benefit shrinks when uncertainty is shared: in the example, one warehouse needed 49% less safety stock than four for demand uncertainty alone, 23% less once supplier delays were included, and none less when regional demands moved together. Transport costs and delivery times must be weighed against the saving.

Should expensive products have higher service levels?

+

Not if the target is a fill rate across units. Safety stock on cheap products prevents more shortages per dollar, so the cost-optimal allocation gives cheap, fast-moving products higher service and expensive ones lower service. In the example this met the same 98% fill rate with $23,069 of safety stock instead of $35,087, and $29,716 when every product was kept at a 95% fill rate or better.

17. References

The foundational papers, surveys and books behind the methods in this article, in chronological order.

  1. Harris, F. W. (1913). “How many parts to make at once.” Factory, The Magazine of Management, 10(2), 135–136, 152.
  2. Arrow, K. J., Harris, T. and Marschak, J. (1951). “Optimal inventory policy.” Econometrica, 19(3), 250–272.
  3. Simpson, K. F. (1958). “In-process inventories.” Operations Research, 6(6), 863–873.
  4. Wagner, H. M. and Whitin, T. M. (1958). “Dynamic version of the economic lot size model.” Management Science, 5(1), 89–96.
  5. Clark, A. J. and Scarf, H. (1960). “Optimal policies for a multi-echelon inventory problem.” Management Science, 6(4), 475–490.
  6. Hadley, G. and Whitin, T. M. (1963). Analysis of Inventory Systems. Englewood Cliffs: Prentice-Hall.
  7. Fox, B. (1966). “Discrete optimization via marginal analysis.” Management Science, 13(3), 210–216.
  8. Silver, E. A. and Meal, H. C. (1973). “A heuristic for selecting lot size quantities for the case of a deterministic time-varying demand rate and discrete opportunities for replenishment.” Production and Inventory Management, 14(2), 64–74.
  9. Maister, D. H. (1976). “Centralisation of inventories and the ‘square root law’.” International Journal of Physical Distribution, 6(3), 124–134.
  10. Eppen, G. D. (1979). “Effects of centralization on expected costs in a multi-location newsboy problem.” Management Science, 25(5), 498–501.
  11. Florian, M., Lenstra, J. K. and Rinnooy Kan, A. H. G. (1980). “Deterministic production planning: algorithms and complexity.” Management Science, 26(7), 669–679.
  12. Eppen, G. D. and Martin, R. K. (1988). “Determining safety stock in the presence of stochastic lead time and demand.” Management Science, 34(11), 1380–1390.
  13. Wagelmans, A., van Hoesel, S. and Kolen, A. (1992). “Economic lot-sizing: an O(n log n) algorithm that runs in linear time in the Wagner-Whitin case.” Operations Research, 40(Supplement 1), S145–S156.
  14. Graves, S. C. and Willems, S. P. (2000). “Optimizing strategic safety stock placement in supply chains.” Manufacturing & Service Operations Management, 2(1), 68–83.
  15. Zipkin, P. H. (2000). Foundations of Inventory Management. Boston: McGraw-Hill.
  16. Teunter, R. H., Babai, M. Z. and Syntetos, A. A. (2010). “ABC classification: service levels and inventory costs.” Production and Operations Management, 19(3), 343–352.
  17. Humair, S. and Willems, S. P. (2011). “Optimizing strategic safety stock placement in general acyclic networks.” Operations Research, 59(3), 781–787.
  18. Axsäter, S. (2015). Inventory Control, 3rd edition. Cham: Springer.
  19. Silver, E. A., Pyke, D. F. and Thomas, D. J. (2017). Inventory and Production Management in Supply Chains, 4th edition. Boca Raton: CRC Press.

Find the Cheapest Plan as a Shortest Path

Build a weighted graph and watch Dijkstra's algorithm find the cheapest route through it. The same calculation picks the best year of orders for a seasonal product.

Open the Dijkstra Visualizer