The reorder point formula is average daily demand times lead time in days, plus safety stock. The safety stock formula, when demand varies but lead time stays steady, is Z (a multiplier set by the service level you want) times the standard deviation of daily demand times the square root of the lead time in days. Those two lines are the whole textbook answer to how to calculate a reorder point, and they are correct as far as they go, but they quietly assume you can place an order any day of the week, that your truck always shows up on time, and that demand in July looks like demand in April.

If you run a hardware, farm and feed, or lawn and garden store, you order on a weekly truck, you get shorted now and then, and you sell six bags of lawn fertilizer a day in April and one in July. So let's walk one real-shaped SKU through the math, fix the formula for the way supply stores buy, and land the result in the min and max fields of your POS.

The formulas, and what each input means in a supply store

The two standard formulas, in plain language:

  • Reorder point = (average daily demand x lead time in days) + safety stock
  • Safety stock = Z x standard deviation of daily demand x square root of lead time in days

The Wikipedia entry on safety stock has the full statistical treatment, but here is what each piece means behind your counter.

  • Average daily demand is how many units you sell on a typical day. Divide units sold by days open over a stretch that matches the season you are planning for, rather than across the whole year.
  • Lead time is the number of days between placing the purchase order and having the product on the shelf ready to sell, which for a weekly distributor truck runs from order day to truck day.
  • Standard deviation of daily demand measures how wild your swings are. A staple fastener that sells four boxes a day, every day, has a low one, while fertilizer on the first warm Saturday of spring has a high one.
  • Service level and Z are the same idea in two forms: service level is the chance you do not run out during a replenishment cycle, and Z is the multiplier that delivers it.
Service level Z
90% 1.28
95% 1.65
98% 2.05
99% 2.33

Higher service costs more stock, and the jump from 95% to 99% is steep, so pick it by item: around 98% on the products that define you (fertilizer in April, ice melt before a storm, the contractor's staple fasteners) and around 90% on the long tail.

Step 1: the textbook reorder point

Take an illustrative SKU, a 15,000-square-foot bag of spring lawn fertilizer at an independent hardware and farm store that is open seven days a week. In peak season, mid-April through May, it sells an average of 6 bags a day with a standard deviation of 3 bags a day. The distributor truck comes weekly, with the order going in on Tuesday and the truck arriving the following Monday, so lead time is 6 days, and the target service level is 95%, which puts Z at 1.65.

The textbook version pretends you could order any day and get the truck 6 days later:

  • Lead-time demand: 6 bags x 6 days = 36 bags
  • Safety stock: 1.65 x 3 x square root of 6 (2.45) = 12.1, call it 12 bags
  • Reorder point: 36 + 12 = 48 bags

Forty-eight bags feels responsible, and the next step shows why it will leave you short.

Step 2: the weekly truck changes the math

The textbook formula assumes continuous review, meaning you can order the moment stock hits the reorder point, but you order on Tuesday, and if you skip a Tuesday, nothing new arrives until the Monday after next. Your stock has to cover the review period plus the lead time, which here is 7 + 6 = 13 days, and the formula becomes an order-up-to level.

  • Demand over the 13-day protection period: 6 bags x 13 days = 78 bags
  • Safety stock: 1.65 x 3 x square root of 13 (3.61) = 17.8, call it 18 bags
  • Order-up-to level: 78 + 18 = 96 bags

The textbook 48 would leave you short, because if you pass on ordering with 50 bags on the floor on Tuesday, your next chance at product is 13 days away, during which you expect to sell 78, so you would run dry about five days before the truck, on a Saturday, naturally.

The order-up-to level also turns the reorder trigger into a weekly habit. On a Tuesday with 30 bags on hand and none on order, you order 96 minus 30, or 66 bags, rounded up to the vendor's pack quantity.

Step 3: when the truck is late or shorted

Now for the part every buyer knows and no textbook admits: sometimes the distributor shorts the line and it shows up on the next truck. Say lead time has a standard deviation of 2 days. When both demand and lead time vary, the safety stock formula grows a second term:

Safety stock = Z x square root of [ (protection period x demand standard deviation squared) + (average daily demand squared x lead time standard deviation squared) ]

  • Demand term: 13 x 3 squared = 13 x 9 = 117
  • Lead-time term: 6 squared x 2 squared = 36 x 4 = 144
  • Safety stock: 1.65 x square root of (117 + 144) = 1.65 x 16.2 = 26.7, call it 27 bags
  • Order-up-to level: 78 + 27 = 105 bags

Look at the two terms, because the lead-time term (144) is bigger than the demand term (117). At peak season, an unreliable truck costs you more safety stock than an unpredictable customer does, so when a vendor's fill rate keeps wobbling, the cheaper fix is often a conversation with that vendor or a second vendor on the product rather than a bigger pile in the aisle.

Step 4: the season changes everything

Every input above was an April number. In July the same bag sells 1 a day with a standard deviation of 1, so the order-up-to level becomes 1 x 13 + 1.65 x 1 x 3.61 = 13 + 6 = 19 bags.

A static 96 in July is more than three months of supply gathering dust and tying up cash, while a static 19 in April runs out in about three days, so each number is right for half the year and wrong for the other half. Reset seasonal items at least at the season's start and end, and plan the preseason build separately, through early-order programs and the first truck of the season. We dig into the pricing side of the season in bulk soil, mulch, and seasonal pricing.

The shortcut that over-buys

You have probably seen the popular "max minus average" shortcut, where safety stock equals maximum daily sales times maximum lead time, minus average daily sales times average lead time. Say your busiest day was 12 bags and your worst lead time was 9 days:

  • (12 x 9) minus (6 x 6) = 108 minus 36 = 72 bags of safety stock

That is six times the 12 bags the statistical method gives for the same continuous-review case. The shortcut is easy, and it over-buys, because it assumes your busiest day and your latest truck happen together every single cycle, which is a fine plan for a doomsday bunker and an expensive one for a fertilizer aisle.

From formula to min and max

Your POS does not want a formula, it wants two numbers, and the translation goes like this:

  • Min is the reorder point. When on hand plus on order drops to or below it, order.
  • Max is the level you order up to. It is min plus a sensible order quantity, for example one week of typical sales.
Season Min Max
Peak (April and May) 96 96 + 42 (one week at 6 a day) = 138
July 19 19 + 7 = 26

Three rules keep the numbers honest. Always count on hand plus on order rather than on hand alone, or you will order the same bags twice; remember that inventory committed to a will call is not available to sell, so it should not count toward covering demand; and recheck min and max whenever demand shifts, the vendor changes lead time, or a pack size changes.

Two warnings before you trust the math. The formula is only as good as the on-hand number it starts from, and bad counts mean bad reorder points, which is why cycle counting is the other half of this job. And a min and max set for last year's demand is how dead stock gets reordered, so pair this with a regular sweep of what has stopped selling and an eye on your inventory turnover and GMROI.

How Rundoo handles it

In Rundoo, Min and Max are set per product, per location, on the product's Inventory tab, and when on hand plus on order drops to or below Min, Rundoo suggests enough to bring stock up to Max, rounded up to the product's case quantity.

In the purchase order builder, a Generate order button fills a proposed order for a vendor using one of three methods, chosen per vendor: Replenishment, which reorders what you sold over the last N weeks; Min & Max, as above; and Predictive. Predictive uses a year-over-year forecast, comparing the last N weeks this year with the same weeks last year to get a growth factor and then applying it to what sold in the next N weeks last year, so the season is built into the suggestion. It needs sales history in all three windows, so brand-new items are skipped until they have a year behind them.

The suggestion is a proposal rather than a command, so you review and adjust quantities in a grid before placing the purchase order, then send it by EDI, email, or print, with EDI ordering running live with distributors including Orgill (we wrote up ordering from Orgill over EDI separately). Products can carry more than one vendor, which helps when a wobbly fill rate sends you looking for a backup. Dooey, the AI on every screen, can draft a reorder list and turn it into a draft purchase order, and scheduled AI agents can draft a weekly reorder for you to review and approve, while stock, cost, and on-order quantities update in real time as you check out customers and receive trucks. The same logic scales across a deep aisle of tens of thousands of SKUs, and our pricing and purchasing page shows the product side.