Demand and inventory planning is the discipline of deciding how much stock to hold and when to reorder it, based on how fast a SKU sells and how long it takes to get more. For a Shopify Plus operator doing $3M–$30M, this is not a forecasting exercise run once a quarter — it is a small number of settings, recalculated on a schedule, that decide whether a bestseller goes out of stock during a promotion or a slow mover ties up cash in a warehouse rack. This guide sets those settings up step by step, names the values that go into them, and covers the one step most teams skip.
What demand and inventory planning actually decides
Demand and inventory planning produces two outputs per SKU: a reorder point — the stock level that triggers a new purchase order — and a safety-stock buffer, which is the stock held specifically to absorb the gap between what you expected to sell and what you actually sold before the next shipment arrives. Everything else in the process — sales velocity, lead time, variability, service level — exists only to calculate those two numbers correctly.
Shopify’s own admin shows you current stock on hand. It does not calculate a reorder point, does not track lead-time variance, and does not know your supplier missed their last two ship dates. That gap is why a spreadsheet, a planning app, or demand and inventory planning software sits alongside Shopify rather than replacing it — Shopify stays the source of truth for what’s sellable right now, while the planning layer decides when to act on it.
Prerequisites before you calculate anything
Before setting a single reorder point, you need three data sources in place, because a formula built on guessed inputs produces a confident-looking number that is wrong.
Ninety days of clean sales history per SKU, pulled from Shopify order line items rather than from a dashboard total, because you need per-day units for the variance calculation in Step 3. Exclude any period the SKU was actually out of stock — velocity during a stockout is demand you lost, not demand you can plan against, and including it understates how fast the SKU really sells.
Measured lead time, not quoted lead time. A supplier’s contract might say “14 days.” The last six purchase orders might show 11, 19, 14, 22, 13, and 16. The second number set is what you plan against, because it’s what actually happens. Pull this from your own purchase order log — the date placed and the date receipted — not from an email a supplier sent a year ago.
A named owner for the review cadence in Step 8. The single most common reason a reorder point stops working isn’t a bad formula — it’s that nobody re-ran it after the supplier’s shipping lane changed.
Step 1: Pull 90 days of sales velocity per SKU
Export order line items for the trailing 90 days and calculate average daily units sold per SKU. Use a rolling window, not a fixed quarter, so the number stays current as you re-run the process. If a SKU is newer than 90 days, use whatever history exists and flag it as low-confidence until you have a full window — a reorder point calculated on three weeks of data moves the wrong SKUs when demand happens to spike or dip during that short window.
Segment by SKU, not by product, if variants sell at meaningfully different rates. A shirt in five sizes is not one demand curve; it’s five, and the medium selling three times faster than the extra-small needs its own reorder point, not a shared one averaged across sizes.
Step 2: Record actual lead time per supplier, not the quoted one
Log the placed date and the receipted date for your last 6–10 purchase orders per SKU or per supplier if SKUs share a supplier. Average those to get lead time, and hold onto the individual data points — you need the spread between them for Step 3, not just the average.
Skipping the variance calculation is where most teams get the setup wrong. A reorder point built from average lead time alone assumes every shipment arrives exactly on schedule. It never does. If your supplier’s lead time swings between 11 and 22 days, the average of 16 tells you nothing about how much extra stock you need to survive the 22-day outlier — that’s a job for lead-time variance, calculated next, not for the average by itself.
Step 3: Calculate lead-time and demand variability
Compute the standard deviation of daily demand across your 90-day window, and the standard deviation of lead time across your 6–10 purchase orders. Most spreadsheet tools have a built-in standard deviation function (STDEV in Excel or Google Sheets); apply it directly to the daily unit counts and the lead-time-in-days list.
Both numbers feed the safety-stock formula in Step 5. A SKU with steady daily sales and a reliable supplier needs a thin safety buffer. A SKU with volatile sales and an unreliable supplier needs a much thicker one — and a flat “hold two weeks of extra stock” rule, applied the same way to both, either starves the volatile SKU or drowns the steady one in idle cash.
Step 4: Set a service level and its z-score
Service level is the probability you’re willing to accept of staying in stock between reorder points — it is a business decision, not a calculation. A common working split for a $3M–$30M catalogue: 95% service level for A-tier SKUs (your top revenue drivers, where a stockout costs the most), 90% for B-tier, and 85% for the long tail, where carrying extra safety stock costs more than an occasional short stockout.
Each service level maps to a z-score, a statistical constant that scales the safety-stock formula:
| Service level | z-score |
|---|---|
| 99% | 2.33 |
| 95% | 1.65 |
| 90% | 1.28 |
| 85% | 1.04 |
Take the number from the row matching the tier you chose and use it directly in Step 5 — there’s no calculation required to produce it, it’s a fixed statistical value.
Step 5: Calculate safety stock
With daily demand variance, lead-time variance, average demand and average lead time all in hand, the safety-stock formula is:
Safety stock = z × √((average lead time × demand variance) + (average daily demand² × lead-time variance))
Illustrative example, to show the arithmetic, not a real SKU: a SKU sells an average of 20 units/day with a daily standard deviation of 5 (variance = 25), average lead time is 16 days with a lead-time standard deviation of 3 days (variance = 9), and the SKU is A-tier at a 95% service level (z = 1.65). Working through the formula: safety stock = 1.65 × √((16 × 25) + (20² × 9)) = 1.65 × √(400 + 3,600) = 1.65 × √4,000 = 1.65 × 63.2 ≈ 104 units.
Compare that to a flat rule of “hold one week of average demand as buffer” — 20 × 7 = 140 units for the same SKU. The variance-based number is lower here because this SKU’s demand and lead time are both relatively steady; a SKU with the same average sales but a shakier supplier would produce a higher safety-stock number than the flat rule, not a lower one. That’s the whole argument for calculating it per SKU instead of applying one rule of thumb catalogue-wide.
Step 6: Calculate the reorder point
Reorder point = (average daily demand × average lead time) + safety stock
The reorder point formula plugs the same illustrative SKU’s numbers in directly: reorder point = (20 × 16) + 104 = 320 + 104 = 424 units. When stock on hand drops to 424 units, a purchase order fires — not when the warehouse runs out, and not on a fixed calendar date regardless of how fast the SKU is actually selling.
Set this number directly as the reorder trigger in whichever system places the purchase order, whether that’s a manual check against a report, a rule inside demand and inventory planning software, or a Shopify inventory app that supports reorder alerts. The number only does its job if something actually watches for it — a reorder point sitting in a spreadsheet nobody opens is the same as not having one.
Step 7: Adjust for seasonality and planned promotions before the season starts
The reorder-point formula assumes demand this month looks like demand over the trailing 90 days. It doesn’t, around a planned promotion or a seasonal peak — and by the time a reorder point built on flat historical averages reacts to a demand spike, the spike has usually already sold through your stock.
For seasonality, build a simple index: divide each week’s historical units by the yearly average weekly units for that SKU, using at least one prior year of data. A week that indexes at 1.8 means demand runs 80% above average that week — multiply your average daily demand by that index before recalculating the reorder point for the weeks it covers.
For a planned promotion with no prior-year comparable, there’s no formula that predicts the lift reliably — metric to confirm against your own promotion history, if you have any, or treat it as a manual override: raise the reorder point and place the purchase order early enough to clear the supplier’s lead time before the promotion starts, rather than waiting for the automated trigger to catch up.
Step 8: Set a review cadence and re-run the calculation
Every input in this setup drifts. Sales velocity rises and falls with the season and with marketing spend. Lead time changes when a supplier switches freight lanes or a factory gets busier. A reorder point calculated once and left alone starts producing the wrong answer within a few months, quietly, because nothing about a static number tells you it’s gone stale.
Re-run Steps 1 through 6 monthly for A-tier SKUs, where the cost of getting it wrong is highest, and quarterly for B- and C-tier SKUs. Assign the recalculation to a named owner with a calendar reminder — the most common failure in a demand and inventory planning setup isn’t the formula, it’s nobody owning the re-run.
How to verify the setup worked
Check three things after a month of running the new reorder points. First, did any A-tier SKU go out of stock — if so, either its service level was set too low for how much a stockout costs on that SKU, or its lead-time variance is larger than what you measured, and the input needs revisiting rather than the formula. Second, has average stock on hand for B- and C-tier SKUs dropped without a corresponding rise in stockouts — that’s the sign the flat-buffer approach it replaced was carrying too much idle cash. Third, does the purchase order date actually land before the supplier’s measured lead time runs out relative to the reorder point being hit — if purchase orders keep firing late, the review cadence in Step 8 isn’t being followed, not the math.
What breaks this setup
Two things reliably break a demand and inventory planning setup after it’s running well. A supplier consolidation or freight lane change moves lead time without anyone updating the input — the reorder point keeps firing on the old lead time until a stockout forces a recheck. And a SKU crossing tiers — a slow mover that suddenly trends, or a bestseller that cools — needs its service level and z-score reassessed, not just its velocity number updated, because the tier assignment is what set the risk tolerance in the first place.
Demand and inventory planning is one piece of running the wider operation without someone manually watching every SKU. Treating it as an ops automation problem — inputs updated on a schedule, a reorder trigger that fires without a person checking a spreadsheet, and an owner accountable for the recalculation — is what keeps the reorder point accurate after the first month, rather than a one-time exercise that quietly goes stale. That’s the gap our ops automation work closes for Shopify Plus operators: wiring the calculation to actually run on schedule, not just building it once.
For the software layer that can hold and trigger these numbers, see our comparison of ecommerce inventory software. For what Shopify’s own admin tracks versus what it doesn’t, see Shopify inventory tracking.
Sources
No external figures are quoted; this article is written from the standard safety-stock and reorder-point formulas used in inventory planning, applied to how a Shopify Plus catalogue is operated. The z-score table in Step 4 reflects standard normal distribution values, not a claim from any vendor.