Low Stock and Reorder Points in WooCommerce: Getting Ahead of Stockouts
WooCommerce warns you when stock is low. It doesn’t tell you when to reorder. How to set thresholds from lead time and real demand, not a round number.

WooCommerce will tell you when stock is low. It will not tell you when to reorder, and those are different questions — the first is about a number on a screen, the second is about whether a delivery will arrive before you run out.
This covers what WooCommerce gives you natively, why a flat low stock threshold fails, and how to work out a real reorder point from data you already have.
What WooCommerce gives you out of the box
More than most people use:
- A global low stock threshold at WooCommerce → Settings → Products → Inventory, with an email notification when a product drops below it.
- A per-product override on the Inventory tab of any product, and on individual variations.
- An out-of-stock threshold, which controls when a product is treated as unavailable rather than merely low.
- Stock reporting under Analytics → Stock, sortable by stock status and quantity.
The machinery is fine. The problem is what you put in it.
Why a flat threshold doesn’t work
Almost everyone sets the global threshold to a round number — 2, or 5 — and leaves it. Consider what that number means for two products:
- A line selling one unit a month, with a supplier who delivers in three days. A threshold of 5 alerts you roughly five months before you need to do anything. You’ll learn to ignore the email.
- A line selling ten units a day, with a supplier who takes two weeks. A threshold of 5 alerts you half a day before you run out. The alert is technically correct and completely useless.
The same number is far too early for one and far too late for the other. That’s the structural flaw: a low-stock threshold measures quantity, but the decision to reorder is about time — specifically, whether you have enough stock to cover the wait for a delivery.
The reorder point formula
The fix is to express the threshold in terms of how long stock will last:
Reorder point = (average daily demand × lead time in days) + safety stock
In words: enough to cover normal sales while you wait for the delivery, plus a cushion for the days when things don’t go normally. Three inputs, each of which you can get.
Lead time
The number of days between placing an order and having it on the shelf and sellable. Not the supplier’s quoted shipping time — the whole thing, including the two days the box sat unopened in the back.
Measure it rather than assuming it. Look at your last three or four orders from each supplier: order date to shelf date. Use the realistic figure, not the best one you’ve ever had.
Average daily demand
Go to Analytics → Products, set a representative date range, and read items sold per product. Divide by the number of days in the range.
Two adjustments that matter more than the arithmetic:
- Exclude periods when the product was out of stock. A product that sold nothing for three weeks because there was none looks like a product with no demand. This one distortion causes more chronic stockouts than any other, because it suppresses exactly the products that keep running out.
- Pick a range that reflects the coming period, not the past one. If you’re setting reorder points in October for the Christmas season, last February’s data will let you down.
Safety stock
The cushion for when demand spikes or the supplier is late. A workable approach for a small store, without needing statistics:
Safety stock = (peak daily demand × longest lead time) − (average daily demand × average lead time)
This asks: how much worse could it plausibly get than normal? Take your busiest recent day and your slowest recent delivery, and cover the difference.
If that gives an uncomfortable number, that discomfort is real information about your supply chain — it’s not a reason to pick a smaller one.
A worked example
A product sells 84 units over 28 days. Its supplier has taken 7, 9 and 8 days on the last three orders. The busiest recent day sold 6 units.
- Average daily demand = 84 ÷ 28 = 3 units/day
- Average lead time = 8 days; longest = 9 days
- Safety stock = (6 × 9) − (3 × 8) = 54 − 24 = 30 units
- Reorder point = (3 × 8) + 30 = 54 units
So the low stock threshold for this product is 54, not 5. If that seems high, notice what it’s protecting against: a week where you sell double the average and the delivery takes its longest observed time. Both have already happened; they just haven’t happened together yet.
You can dial the safety-stock element down for products where a stockout is a minor inconvenience, and up for the lines customers come in specifically to buy.
Setting it up in WooCommerce
- Do the calculation for your A items only to begin with — the top 20% by value, the same ones you’d cycle count most often. Twenty products is an afternoon; two thousand is a project you’ll abandon.
- Enter the result as that product’s low stock threshold on its Inventory tab, overriding the global default.
- Leave the global threshold as a crude backstop for everything you haven’t calculated. It’s better than nothing, as long as you know that’s what it is.
- Recalculate seasonally. Demand and lead times both move. A reorder point set once is a reorder point that will be wrong within a year.
Why an accurate count comes first
Here’s the failure mode that makes all of the above worthless: a reorder point compares against your recorded stock level. If that number is wrong, the trigger fires at the wrong moment — or never.

A product whose recorded stock is 12 units higher than reality will sail past its reorder point without a sound and go out of stock while the system insists it’s fine. This is the mechanism behind the most frustrating pattern in retail: a phantom stockout, where the shelf is empty, the system says available, and nobody was warned.
Two habits close that gap:
- Count your fast movers regularly. The products that hit their reorder point most often are the ones where a stale number costs you the most. They deserve a monthly count, not an annual one.
- Treat negative stock as an alarm, not a rounding error. A negative figure means the store sold something it didn’t believe it had. Whatever caused that is still running.
In Stocktake, the free version includes a reorder and low-stock shortlist with CSV export, plus a warning for products sitting at negative stock — so the list of things to order and the list of things to investigate come out of the same count that fixed your quantities.
What to do with the shortlist
A reorder list is only useful if it produces an order. A short routine that works:
- Sort by supplier, not by product. You place orders with suppliers, so group the list the way you’ll act on it — and hitting a minimum order value is easier across a whole supplier’s lines.
- Check the count date on anything surprising. A product you didn’t expect to see is either selling better than you thought or has a stock record you shouldn’t trust.
- Look at what’s not on the list but should be. A fast mover that never appears is usually a fast mover with a wrong quantity.
- Order, then note the date. That date is next quarter’s lead-time measurement.
The whole loop — count, correct, shortlist, order, measure the lead time, recalculate — is what turns reordering from a reaction into a routine. It starts with knowing what you actually have, which is what a stocktake is for.
Reorder point FAQ
What is a reorder point?
The stock level at which you should place a new order so that it arrives before you run out. The formula is average daily demand multiplied by lead time in days, plus safety stock. Unlike a flat low-stock threshold it is expressed in terms of time rather than an arbitrary quantity.
Where do I set the low stock threshold in WooCommerce?
The global default is at WooCommerce → Settings → Products → Inventory, and you can override it per product on the Inventory tab, including on individual variations. Enter your calculated reorder point as the per-product threshold and leave the global value as a crude backstop.
Why are my low stock alerts useless?
Because a flat quantity ignores both sales velocity and lead time. The same threshold of five units alerts you five months early for a slow line and half a day too late for a fast one. The alert has to be based on how long the remaining stock will last, not on how many units are left.
How do I calculate average daily demand?
Go to Analytics → Products, pick a representative date range, read items sold per product and divide by the number of days. Exclude any period when the product was out of stock — otherwise the products that keep running out look like the products nobody wants, and you will under-order them permanently.
How much safety stock should I hold?
A workable approach without statistics: peak daily demand multiplied by your longest observed lead time, minus average daily demand multiplied by average lead time. That covers the plausible bad case of a busy week arriving at the same time as a slow delivery.
Why do I still get stockouts with alerts turned on?
Because the alert compares against your recorded stock level, and if that is higher than reality the trigger never fires. The shelf empties while the system insists the product is available — a phantom stockout. Counting your fast movers regularly is what closes that gap.