Articles

How do you set the order quantity and reorder point together?

The economic order quantity ignores shortages and the optimal service level takes the batch as given. Solved together, the batch grows by a third and the reorder point falls.

Solve them in a loop: set the cycle service level from the batch, recompute the batch with the expected shortage each order carries, and repeat until neither moves. For part AF-7 the loop settles on an order quantity of 5,841 units, a 98.76 per cent cycle service level and a reorder point of 19,290 units, for 54,002 EUR a year: 683 EUR below the best policy built on the plain economic order quantity, with a batch a third larger.

Worked in full in Supply Chain Management by Julian R. Sterling, with every figure reproduced in a free workbook.See the book on Amazon →

Most planning systems set the two parameters of a continuous review policy separately. The batch comes from the EOQ, which balances ordering against holding and knows nothing about stock-outs. The service level then comes from a board vote or from the optimal service level formula, which takes the batch as fixed. Each is right given the other, and the pair is still not the cheapest policy, because the batch decides how many times a year the part is exposed to a shortage.

The assumptions

Part AF-7, Aldermere Filtration, illustrative
InputValue
Mean weekly demand / standard deviation1,840 / 462 units
Annual demand D (52 weeks)95,680 units
Lead time: mean / standard deviation6 / 1.9 weeks
Demand over the lead time: mean / standard deviation σ11,040 / 3,674.60 units
Cost of an order S385 EUR
Holding cost h (28.6 EUR at 13.4%)3.8324 EUR a unit a year
Shortage cost m: lost margin, 47.5 less 28.618.9 EUR a unit

The calculation, step by step

Annual cost has four parts: holding the cycle stock and the safety stock, ordering, and the margin lost on units short. Units short per cycle are σ × G(z), where G is the standard normal loss function, and there are D ÷ Q cycles a year.

Total = (Q ÷ 2 + zσ) × h + (D ÷ Q) × S + (D ÷ Q) × m × σ × G(z)

Condition 1, the service level for a given batch: α = 1 − Q × h ÷ (D × m)

Condition 2, the batch for a given service level: Q = √(2D × (S + mσG(z)) ÷ h)

Condition 2 is the EOQ with the order cost enlarged by the shortage each order brings with it. That is the whole idea: a stock-out can only happen once per cycle, so a larger batch buys fewer chances to run out.

1. Start from the EOQ. Q = √(2 × 95,680 × 385 ÷ 3.8324) = 4,384.50 units.

2. Service level for that batch. α = 1 − 4,384.50 × 3.8324 ÷ (95,680 × 18.9) = 99.07%, z = 2.3538, G(z) = 0.00312.

3. Batch for that service level. The expected shortage adds to the order cost, and the batch rises to 5,483 units. The service level for that batch is 98.84 per cent.

4. Repeat. A handful of passes converge. In Excel, put the two conditions in adjacent columns, copy the row down twenty times and read the last one; or use Solver on the total cost with Q and z as the changing cells.

Converged: Q = 5,840.71 units, α = 98.7622%, z = 2.2452, G(z) = 0.00429

Expected shortage per order = 18.9 × 3,674.60 × 0.00429 = 298.20 EUR, so the effective order cost is 683.20 EUR

Safety stock = 2.2452 × 3,674.60 = 8,250 units; reorder point = 11,040 + 8,250 = 19,290 units

The result

Three policies for AF-7, EUR a year
LineBoard vote, EOQOptimal α, EOQSet together
Order quantity, units4,3854,3855,841
Cycle service level98.00%99.07%98.76%
Safety stock / reorder point, units7,547 / 18,5878,649 / 19,6898,250 / 19,290
Holding37,32441,54942,810
Ordering8,4028,4026,307
Lost margin on units short11,1294,7354,885
Total56,85454,68554,002

The joint policy places 16.4 orders a year instead of 21.8, holds 329 more units on average, and accepts a slightly lower service level per cycle, because there are fewer cycles to protect. The fill rate barely changes, 99.73 per cent against 99.74. The saving is 683.37 EUR against the optimal service level on the EOQ and 2,852.30 EUR against the board's 98 per cent.

What if the supplier or the margin changes?

Joint optimum for AF-7 under other inputs
CaseBatchαReorder pointTotal, EURSaved vs EOQ policy
Base, σL 1.9 weeks5,84198.76%19,29054,002683
σL 1.0 week5,18698.90%15,98838,838234
σL 0.5 weeks4,90998.96%14,41131,732106
σL 0.0 (perfectly regular)4,78598.99%13,66728,40664
Shortage cost halved, 9.45 EUR5,99197.46%18,21750,468806
Shortage cost doubled, 37.8 EUR5,72599.39%20,25757,262593

The joint batch is driven by the spread of demand over the lead time. With an erratic supplier the batch is a third above the EOQ; with a regular one, at 0.5 weeks, it is 12.0 per cent above and the refinement is worth 106 EUR. The service level hardly responds to the supplier at all, between 98.76 and 98.99 per cent across the whole range: what moves is the batch. The value of the supplier lever itself is priced in how much more you can pay a reliable supplier.

The common mistake

Treating the order quantity as settled once the EOQ is computed, and tuning only the service level. The cost curve around the optimal service level is so flat that the fourth decimal of α is worth nothing, which persuades planners that the whole policy is insensitive. It is not: the field that moves in the joint solution is the batch, by 33.2 per cent, and it is the one field most planning systems never revisit. The second error is to keep the old reorder point after enlarging the batch. A bigger batch with the same 19,689-unit trigger holds 399 units of safety stock that the policy no longer needs.

The gain is small here, 683 EUR on a line earning 1,808,352 EUR of margin, because AF-7's cost curve is flat. On a part with an expensive stock-out and cheap storage the same loop can move the batch further and the money with it.

Takeaway

The iteration, the six policies and the checks are in the free workbook for this case, and the service level half of the problem on its own is in how to calculate the optimal service level.

Questions readers ask

Why is the optimal batch larger than the EOQ when shortages are costed?

Because every order opens one exposure to a stock-out. For AF-7 each replenishment cycle carries 298.20 EUR of expected lost margin, so the true cost of an order is 683.20 EUR, not 385. The square-root formula on that cost gives 5,840.71 units, 33.2 per cent above the 4,384.50-unit EOQ, and fewer cycles a year.

Does a larger order quantity lower the reorder point?

Yes. With fewer cycles a year, each can run a slightly higher stock-out risk for the same annual shortage, so the optimal cycle service level falls from 99.07 to 98.76 per cent. For AF-7 safety stock drops from 8,649 to 8,250 units and the reorder point from 19,689 to 19,290, while average stock rises by 329 units.

Is the joint optimisation worth doing in practice?

The money is small on a flat cost curve: 683.37 EUR a year on AF-7, against 54,685.21 EUR at the optimal service level with the EOQ. The batch is what moves, by a third, so it is worth doing whenever order sizes are being renegotiated or the shortage cost is large relative to holding cost.

Read the whole case

Chapter 11 of Supply Chain Management names this joint setting; the companion workbook's second case prices it. The book takes the same case from first principles to the decision, chapter by chapter, and every figure it prints is a live formula in the free companion workbooks.

Get the book on Amazon →Free companion files

Also on Amazon UK · Amazon Germany · Amazon France · Amazon Canada

Also on this site

Reading guide: business operations: cost, contracts, pricing and supply chain → · All 1340 articles →

If this book helped, or didn’t, a few lines on Amazon are worth more than they look: they are what the next reader goes on. Write a review. The workbook stays free either way.