MGG
← All notes

July 29, 2026

Min/Max Is Not a Strategy

inventoryreplenishment

Every ERP replenishment screen runs on the same two numbers: a min that triggers the order and a max that sizes it. The system is honest about what it does — it compares today's on-hand against a threshold somebody set. What it never tells you is when somebody set it.

That's the rot. Min/max doesn't break. It just quietly stops describing your business.

Reorder points age like milk, not wine

A min is a snapshot of four assumptions: demand rate, lead time, desired buffer, and the item's importance. All four move. The min doesn't.

  • A customer ramps up, and an item that turned 4x starts turning 12x — against a min sized for the old world. The buyer discovers this via stockout.
  • A customer leaves, and the max keeps refilling shelves for demand that no longer exists. The buyer discovers this never, because nothing flags it.
  • A vendor's real lead time slips from 10 days to 25, and the min that assumed 10 is now a scheduled stockout with extra steps.

None of these trigger an alert, because to the system nothing is wrong. On-hand fell below min; a PO was suggested; everyone did their job. The parameters were the failure, and no one owns the parameters.

A min/max set eighteen months ago isn't a policy. It's a guess by a previous version of your business.

The tell: your expedite list and your dead stock report are the same story

Look at any branch struggling with service levels and you'll usually find both problems at once — stockouts on fast movers and racks full of slow ones. That combination isn't bad luck. It's the signature of stale parameters: the mins are too low where demand grew and the maxes are too high where it died. The inventory isn't wrong in total; it's wrong in composition, which is worse, because the total looks fine on the balance sheet while the branch bleeds service.

What review cadence should look like

Recalculating every min/max nightly sounds rigorous and mostly produces noise — demand for most distribution SKUs is too lumpy for last week's blip to deserve a parameter change. The workable middle:

| Item class | Review | Trigger | | --- | --- | --- | | A items | Monthly | Any stockout, any lead-time change | | B items | Quarterly | Demand shift beyond a set band | | C/D items | Twice a year | Zero usage in the window → exit review, not a new min | | New items | 90 days after first stock | Replace the launch guess with observed demand |

The point isn't the exact cadence — it's that someone is scheduled to look, that the look is prioritized by consequence, and that lead-time changes force a review instead of waiting for one.

The takeaway

Min/max is a fine mechanism and a terrible strategy. The mechanism executes whatever the parameters say; the strategy is deciding how often, and by what rules, the parameters get to change. If you can't name who reviewed your A-item reorder points last month, your replenishment system isn't automated — it's abandoned, at scale, with a very reliable trigger.