← All posts Inventory

Low stock alerts for Shopify: getting the threshold right

A fixed number for every product is why your alerts get ignored. Here is a threshold rule that adapts to how fast things actually sell.

JT Jules Tahoe6 August 2026 · 7 min read
thresholdset from lead time

Why one number fails

Most stores set a single low-stock threshold and apply it everywhere. Ten units. It is simple, and it is wrong for almost every product you sell.

Ten units of something that sells twice a week is six weeks of cover and an alert you did not need. Ten units of your bestseller during a promotion is Thursday. Same number, opposite meanings, and after a few weeks of both your team learns to ignore the alert entirely.

Think in days, not units

The useful question is not “how many are left” but how many days of selling are left. That reframes the threshold as a function of two things you already know.

Threshold = average daily sales × (lead time in days + safety buffer)

Lead time is how long a restock actually takes, measured door to shelf, including the days nobody is working. Safety buffer is your tolerance for being wrong, usually a few days.

Worked through

  • Slow mover: sells 0.3/day, 21-day lead time, 7-day buffer. Threshold = 0.3 × 28 = 8 units.
  • Steady seller: sells 4/day, 14-day lead time, 7-day buffer. Threshold = 4 × 21 = 84 units.
  • Promoted item: sells 4/day normally but 20/day on promotion. During the promotion the same 14+7 days means a threshold of 420, which tells you the honest answer: do not promote it without checking cover first.

That third case is the point of the exercise. The arithmetic surfaces a decision you were going to make blind.

Three adjustments worth making

  1. Raise it before a campaign, not during. The threshold should change when demand is about to change.
  2. Treat variants separately. Aggregate stock hides the fact that you have forty smalls and no mediums.
  3. Suppress alerts for things you are discontinuing. Running out is the plan.

An alert that fires when nothing should change is not a false positive, it is training. You are teaching your team that this alert can be ignored.

Then decide who sees it

Getting the number right is half the job. The other half is routing: the person who can act on a stock warning is usually not everyone. Store Huddle surfaces low-stock and high-risk order alerts in Store pulse where the team can see them, and any alert can become an assigned task with a deadline rather than a notification everyone assumes someone else read.

More on the routing question in the five-minute rule for store alerts.

Setting the number so it fires in time

An alert is only useful if it arrives while you can still act, which means the threshold has to be anchored to how long replenishment actually takes rather than to a round number that felt about right.

The calculation is short. Daily sales rate multiplied by your realistic lead time, plus a buffer. A product selling three a day with a three-week replenishment needs roughly sixty-three units of cover before you add any margin at all, which is usually far above whatever number people set by instinct.

Two inputs decide whether it works. The sales rate should exclude promotions and one-off bulk orders, which otherwise inflate it and make the threshold fire constantly. The lead time should be your measured worst case from order placed to stock sellable, including the days a delivery sits in receiving before anyone books it in, which is the step almost nobody counts.

The full working, with an example, is in building a restock rule.

Per variant, not per product

The most common way a correctly calculated threshold still fails.

Stock is reviewed at product level and bought at variant level. A jumper with two hundred units looks healthy while the mediums, which are most of the demand, went in the first day. The dashboard is green and the product is effectively out of stock for most of the people trying to buy it.

Set thresholds per variant on anything where demand concentrates, which is most apparel and most products with a dominant size or colour. It is more work once and it removes an entire class of invisible stockout.

Sending it to the right person

A stock alert should go to whoever places orders, and generally nobody else.

Wider distribution feels like a safety net and works as the opposite. When several people receive an alert, each reasonably assumes one of the others is handling it, and the alert that reached five people gets acted on by none. Adding recipients reduces the chance of action rather than increasing it.

The exception is a product in an active campaign, where three people genuinely need to know quickly: whoever reorders, whoever can pause the advertising, and whoever will answer customers asking where it went. That is the one alert worth engineering carefully, because the cost of a delay accrues by the hour in ad spend.

When to change the number

Thresholds are not permanent. Three triggers should prompt a recalculation.

A promotion. Raise it for the duration, because ordinary velocity is exactly what a campaign suspends, then set a reminder to put it back. A permanently raised threshold produces constant false alarms.

A supplier change. A new supplier invalidates your lead time until you have measured theirs. Use a pessimistic number for the first few orders.

An alert that fired too late. Almost always an understated lead time, and almost always the receiving step. Measure the last delivery end to end and the gap is usually obvious.

What to do in the first ten minutes

An alert firing is not the outcome. The outcome is a decision, and there are only four.

Reorder now. The default when the product is core and the supplier is reliable.

Reorder and change something. If this is the third time it has fired early, the threshold or the order quantity is wrong; fix it while you are in there rather than adding it to a list.

Do not reorder, and mark it. Discontinued lines, seasonal items going out of season, anything you are deliberately running down. Recording the decision stops the same alert prompting the same discussion next week.

Escalate. The order is above whatever spend limit the person has. That is a decision-rights question rather than a stock question, and it should have been settled in advance.

Alerts during a campaign

The one case where a stock alert needs more than one recipient.

When a promoted product runs low, three people need to know within the hour: whoever can reorder, whoever can pull it from the email or pause the ads, and whoever will answer customers asking where it went. Of those, the advertising one is the most time-sensitive, because spend continues at full rate against a page that can no longer convert.

Decide the three names before the campaign starts. During a busy promotion nobody will work out the routing from scratch, and the default outcome is that everybody assumes somebody else noticed.

Auditing alerts you already have

Most stores set thresholds once and never revisit them, so the existing set is usually a mix of numbers that made sense at some point.

Twenty minutes, once a quarter. For each alerting product, ask two questions. Did this fire with enough time to act? And did anyone act? An alert that fires reliably and produces no action is either reaching the wrong person or reporting something nobody considers worth doing, and both are worth knowing.

Also look for products that ran out without alerting at all. Those are the expensive ones, and the cause is almost always that the threshold was set below the real replenishment window.

One number to start with

If the full calculation feels like more than you want to do today, start with your ten highest-revenue products and nothing else.

Those ten are where a stockout costs real money, and getting them right delivers most of the benefit for a fraction of the effort. The long tail can keep a rough fixed minimum indefinitely without anyone noticing.

Doing ten properly beats doing the whole catalogue approximately, and it is the version that actually gets finished.

Common questions

How do I set a low stock alert in Shopify?

Shopify shows inventory levels, and apps can watch them and notify you. Store Huddle surfaces low-stock products in Store pulse so the alert lands where the team is talking, with the product attached.

What number should the threshold be?

Daily sales rate multiplied by your realistic lead time, plus a buffer. It differs per product, and a single figure across the catalogue is late on fast movers and noisy on slow ones.

Should thresholds be per variant?

Yes, wherever demand concentrates in particular sizes or colours. Product-level thresholds hide the most common stockout, which is running out in the variants people actually buy.

Who should receive stock alerts?

Whoever places orders. Extra recipients make action less likely, because each assumes someone else has it. Promoted products are the exception and need marketing and support told too.

Why does my alert always arrive too late?

Usually the lead time is understated because it omits the days between a delivery arriving and stock becoming sellable. Measure a few deliveries properly and reset.

Keep reading

Inventory

Reading Shopify's fraud analysis without over-reacting

What the indicators mean, which ones deserve weight, and why the location signals produce most of the false positives you are cancelling on.

29 May 2026·11 min read
Inventory

Backorder communication that does not generate tickets

Every vague delay message creates support work. What to say, when to say it, and the one number customers actually want.

26 May 2026·10 min read
Inventory

Building a restock rule instead of restocking by feel

Four numbers turn reordering from a judgement call into arithmetic. Most stores already have three of them.

22 May 2026·11 min read

Run your store team in one room.

Free for teams up to five, and about two minutes to connect your store.