The min-max policy, written (s, S), triggers an order as soon as the stock position reaches the minimum, and orders enough to climb back to the maximum. It combines the trigger of continuous review with the top-up of periodic review. It is the most widespread policy in enterprise systems, and probably the most poorly parameterised, because the gap between the two bounds is very often set with no calculation at all.
Why it matters
Ask any company how it replenishes: in the vast majority of cases, the answer will be two numbers per reference, a minimum and a maximum. It is the default policy of almost every enterprise system, the one teams handle daily and understand intuitively. Its strength lies there, in its operational obviousness.
Its weakness is of the same order. Because those two numbers are easy to type, they are very often set by hand, rounded, copied from one reference to another, or derived from a simple rule such as the maximum equals twice the minimum. Yet the two bounds answer entirely different questions and obey different economic logic. Setting them in one gesture means deciding a major share of tied-up capital at random.
The minimum is a reorder point: it answers the timing question, it must cover consumption during the lead time and the uncertainty around it. The maximum protects against nothing. The gap between the two bounds is, quite exactly, the lot size you grant yourself, hence the cycle stock you decide to carry. Two distinct lines of reasoning, two distinct calculations.
This is what makes this page a convergence point for the domain. The minimum comes from the reorder point and safety stock; the gap comes from the economic order quantity and cycle stock. When both bricks are laid properly, min-max becomes a strong policy. When they are guessed, it becomes the most expensive of habits.
In most parameter audits, the same finding repeats: minimums have received some form of thought, maximums almost never. They come from a multiple applied uniformly, a rounding to the pallet, or a value carried over from an old migration. Since the gap between the bounds alone determines cycle stock, this means a considerable share of the balance sheet was set without any trade-off.
A second point deserves practitioners’ attention, the undershoot. When demand arrives in bursts, a large order can drive the stock position well below the minimum before the trigger is processed. The buffer actually available is then thinner than the one in the parameters, and observed service disappoints without the calculation looking at fault.
The expert lesson comes down to a simple method. Set the minimum from the reorder point, set the gap from the economic lot calculation, add a margin to the minimum where demand is lumpy, and above all industrialise the revision of these parameter pairs. A sound min-max is a living min-max: across portfolios of several thousand references, these values are recomputed, not retyped.
The mechanism
The operation is immediate. On every movement, the stock position is compared with the minimum. As long as it stays above, nothing happens. As soon as it reaches or drops below, you order the difference between the maximum and the observed position. The order therefore always climbs back to the ceiling, but its volume varies with the level reached at the moment of the trigger.
The minimum is computed as a classic reorder point: average demand times the lead time, plus the safety stock matching the target service level. It carries all the protection against uncertainty and depends in no way on the desired ordering frequency.
The maximum is not computed directly: the gap is. That gap is the lot size, and it belongs to the trade-off between ordering cost and holding cost, hence to economic order quantity reasoning. The signature above makes it visible: widening the band spaces out orders and thickens average stock, exactly as playing with lot size does, while the minimum line does not move at all.
That leaves the case of lumpy demand, where a single customer order can overshoot the threshold by a wide margin. The quantity ordered must then fill that undershoot on top of rebuilding the lot, and effective protection is eroded during the lead time that follows. The remedy is to raise the minimum to account for the typical size of those jumps, rather than to widen the band, which protects against nothing.
The traps
The rule of a maximum equal to two or three times the minimum is comfortable and baseless. It ties a bound that protects against uncertainty to a bound that sets lot size, when the two follow independent logic. The result: the cycle stock of the whole portfolio is fixed by a convention, not a calculation.
On demand arriving in blocks, the stock position does not stop politely at the minimum: it overshoots it widely. The buffer actually available during the next lead time is therefore below the parameterised buffer, and observed service stays lastingly under target.
These value pairs age silently. Lead times lengthen, demand shifts, pack sizes change, but the bounds remain those of go-live. Across several thousand references, the only viable answer is automated periodic recomputation, not retyping.
The rollout
Extract the minimums and maximums in force and spot the signatures of uncomputed parameters: constant ratios between the bounds, round values, identical settings on references with very different profiles.
Recompute each minimum as D·L + SS, with a service level differentiated by segment. This bound carries all the protection, it is not to be judged by eye.
Derive the gap between the bounds from the economic order quantity calculation, then round it to a practical pack size. That figure alone determines the cycle stock the reference carries.
On lumpy references, measure how far the position typically overshoots the threshold and raise the minimum accordingly, so that the parameterised buffer matches the buffer actually available.
Put in place an automated periodic recomputation of the pairs, with review by exception of the largest gaps. On a wide portfolio this is the only way to stop parameters freezing again.
Neighboring concepts
From knowledge to action
Across thousands of references, the gap between the two bounds alone sets the portfolio’s cycle stock. Our Inventory & distribution file recomputes these pairs and installs their automatic revision.