SKU-Level Forecasting: What It Is and How Demand Models Work Per SKU

SKU-level demand forecasting predicts sales for each product on its own history, not a category average. See the four patterns and try it on one SKU.

Try it on one SKU

Paste 8 to 52 weeks of unit sales for one product. Nothing you enter leaves your browser.

Your Numbers

Separate numbers with commas, spaces, or new lines. 13 weeks entered.

Results

Demand PatternSteady

Sells most weeks at a fairly consistent size. A recency-weighted average tracks it well. Seasonality needs a full 52 weeks of data to check; 13 given.

Method UsedSimple exponential smoothing (SES)
Next 4 Weeks (forecast)40.3, 40.3, 40.3, 40.3
How this was calculated

Average demand interval (ADI): 1 (cut-off 1.32). Coefficient of variation (CV) of the weeks with a sale: 0.05 (cut-off 0.5). ADI at or below the cut-off means it sells most weeks; CV below the cut-off means the size of each sale is fairly consistent. Those two comparisons are what sort the pattern into steady, variable, intermittent, or lumpy, and they are the same two tests, with the same cut-offs, that ReplenishRadar runs against your real sales history.

Simple exponential smoothing (SES) uses a smoothing weight (alpha) of 0.3 on the most recent week.

* This is a simplified, single-SKU version of the pattern classification and forecast routing the product runs automatically for every SKU in your catalog. It runs entirely in your browser; nothing is sent to a server.

See the season shape in the product

Inspect the pattern before you act

ReplenishRadar shows the saved seasonal curve month by month. You also see how sure it is and when we worked it out.

In this saved example, the order we suggest is shown above the curve. It was not sized from that curve. The product says this on the screen. So you can look at the seasonal shape and still know it did not change the order we suggest.

Seasonal forecasts start on Growth. The plans above it get them too.

SKU-level demand forecasting predicts sales for one product at a time, from that product's own history. It does not forecast a category or a store total and split the number down.

What Is SKU-Level Demand Forecasting?

Every SKU in your catalog gets its own demand history, its own pattern, and its own forecast. Nothing is shared or averaged across products.

Most sellers do the opposite. They forecast a category total, then split it across SKUs by past share. That only works when every product sells at close to the same rate. In real catalogs, shares shift all the time. One item catches on and grabs a bigger slice. Another cools off and drops toward zero. A category total can look stable while the SKUs inside it move in opposite directions.

The garlic press that sells 40 units a day and the avocado slicer that sells 3 a week get smoothed into one average under a category forecast. One ends up understocked. The other sits in a warehouse for months. SKU-level forecasting keeps each product's own velocity and pattern intact, so the number you order against is the number for that one product.

This starts to matter once a catalog passes roughly 50 active SKUs. Below that, the errors are small enough to absorb by eye. Above it, aggregate forecasts quietly cost real money in overstocked slow movers and understocked fast sellers, and the category total hides it. I have seen a $40,000 pile of dead stock sit next to constant stockouts on the actual bestsellers, with the category number looking healthy the whole time.

The Four Demand Patterns

Not every product sells the same way, so not every product should get the same forecast method.

Steady demand. Consistent volume, sale after sale, with only small week-to-week swings. Bestsellers and staples fall here. A recency-weighted average tracks a steady seller well.

Seasonal demand. A predictable spike tied to a time of year: holiday goods in November, pool floats in May. A model that only looks at the last few weeks will miss the ramp or overreact once it starts. Seasonal patterns need a full year of history to confirm.

Intermittent demand. Long stretches with no sale, then a small burst. Specialty parts and niche accessories often look like this. A plain average is misleading here, since it sits between zero and the real burst size and is wrong most of the time.

Variable demand. Swings without a seasonal shape: trending items, or products sensitive to a competitor's stockout. These need a wider buffer because the signal is noisier.

Matching Method to Pattern

Method Best for Data needed
Exponential smoothing (SES) Steady sellers 8-13+ weeks
Exponential smoothing, wider band Variable demand 8-13+ weeks
Croston's method with SBA correction Intermittent and lumpy demand 13+ weeks, more if very sparse
Seasonal naive / decomposition Seasonal products A full 52 weeks

Croston's method asks two smaller questions: how often does this SKU sell, and how much does it sell each time. It forecasts each one on its own, then combines them. The Syntetos-Boylan fix (SBA) nudges that combined number down a little, since the plain version runs a bit high.

How Much History You Need

SKU age Data on hand What to do
Under 8 weeks Almost none Borrow a similar product's demand curve as a proxy
8-13 weeks Thin Simple average, wide safety stock
13-26 weeks Workable Pattern classification and model selection
26-52 weeks Solid Full method set except seasonal detection
52+ weeks Complete Full method set, seasonal included

Steady SKUs work with 13 weeks of data. That is enough to set a reliable average and see how much it varies. Seasonal SKUs need the full 52 weeks. Without a complete year, a model cannot tell a growth trend from a seasonal ramp. A new product under 8 weeks old has too little history to trust yet.

A Worked Example: Three SKUs, One Category

Three products, same category, three different answers.

SKU Pattern Demand history Forecast approach What a flat average would do
Bamboo cutting board Steady 38, 41, 36, 40, 39, 42, 37, 41, 38, 40, 43, 39, 41 SES, forecast ≈ 40/week Gets this one about right
Pumpkin carving kit Seasonal 5/week Jan-Aug, then 15, 45, 180, 220, 30, 5 Seasonal naive on the October weeks A 26-week trailing average reads about 7/week as October opens; actual demand is 180
Left-handed peeler Intermittent 0, 0, 3, 0, 0, 0, 0, 5, 0, 0, 0, 2 Croston/SBA: sale about every 4 weeks, size ≈ 3 Forecasts under 1/week, which is right on no single week

One model applied to all three nails the cutting board, misses the pumpkin kit's October spike by roughly 25x, and keeps the peeler chronically overstocked between its rare sale weeks.

A Deeper Worked Example: One SKU, Thirteen Weeks of Math

I want to show what the math actually looks like, not just the label "exponential smoothing." Take the bamboo cutting board above and walk through it week by week, using SES with alpha = 0.3 (recent weeks get 30% weight; older weeks decay from there).

Weeks 1-4 set the starting level: (38+41+36+40) / 4 = 38.75. From week 5 on, each new level blends the latest actual sale into the prior level, and that level becomes the next forecast.

Week Forecast Actual Error
5 38.75 39 -0.25
6 38.83 42 -3.17
7 39.78 37 +2.78
8 38.94 41 -2.06
9 39.56 38 +1.56
10 39.09 40 -0.91
11 39.36 43 -3.64
12 40.46 39 +1.46
13 40.02 41 -0.98

The average error across those nine weeks is 4.6%, which is easy for a steady seller like this one. The same math, run on the pumpkin kit's seasonal spike or the peeler's rare bursts, would look nothing like this.

Every figure in the Forecast column is a forecast made before that week's sale was known, so none of them is the number to order against. Fold week 13's actual back in and the level lands at 40.31, and that is what the next three weeks are forecast from. Lead time is 3 weeks, so the forecast over that window is 3 x 40.31 ≈ 121 units. Safety stock at a 95 percent service level:

Safety stock = 1.65 x (standard deviation of weekly sales) x sqrt(lead time in weeks)
             = 1.65 x 2.02 x sqrt(3)
             ≈ 6 units

Reorder point = 121 + 6 = 127 units. One SKU, thirteen weeks of sales, one forecast model, and every step of the math visible. A 500-SKU catalog runs this same routine across three or four method types at once, which is the point where most sellers stop doing it by hand.

Where Spreadsheets Break

I built per-SKU forecasts in a spreadsheet for two years. It worked, for a while.

At around 50 SKUs, it costs a few hours a month: classify patterns by eye, run the formulas, update reorder points by hand. Manageable.

At 200 SKUs, it costs most of a day, and corners start getting cut. The same model gets applied everywhere, accuracy checks get skipped, and a SKU that quietly turns seasonal doesn't get reclassified.

Past 500 SKUs, it is not really possible anymore. Nobody classifies 500 demand patterns by eye, or reruns 500 formulas without the sheet crawling, or checks 500 SKUs a month for drift. The math does not get harder at that scale. The number of things a person has to remember to redo, correctly, on schedule, does.

Measured on Whether You Were Covered

The number that matters is not how accurate a forecast looks on average. It is whether it warned you in time to act.

  • Forecast Quality dashboard. Leads with warned coverage: of the times a SKU ran out, how many were flagged while there was still time to place an order. Alongside it: in-stock rate, days of cover, alert volume, and how often a suggestion actually got acted on. Anything not yet measured on a given account shows as unknown, not as a zero. Available on Growth plans and above.
  • Model diagnostics, one level down. Per-SKU error rate, bias direction, and forecast-vs-actual charts are still there for anyone who wants them, each labeled with the window and the SKUs it was measured over.
  • Confidence, not a fixed target. Each SKU shows high, medium, or low confidence based on how closely the model has been tracking its actual sales, because a steady seller and an intermittent one are not held to the same bar.

You can override any forecast with your own judgment for a launch, a planned promotion, or a discontinuation.

Three Ways to Order Every SKU

Every reorder suggestion comes with three options and a cost comparison:

  • Bridge. Enough to cover until the next scheduled order window. Lowest spend, shortest coverage.
  • Full Cycle. Lead time plus safety stock. The balanced default.
  • Skip Ahead. Order heavier to lock in pricing, prepare for a seasonal ramp, or order less often. Higher spend, longest coverage.

Every SKU, Routed on Its Own

Connect a store and every SKU gets classified the moment it syncs. Steady sellers get exponential smoothing. Seasonal products get a seasonal-aware model. Intermittent and lumpy SKUs get Croston's method with the SBA correction. Nothing to configure. The classification re-checks itself as new sales come in, so a SKU that turns seasonal gets caught and re-routed.

The same engine powers Shopify inventory forecasting for Shopify-first catalogs. It adds per-supplier lead times and native Shopify Flow alerts.

Transparent by Design

Expand any suggestion to see exactly why it was made:

  • Which method was selected, and why
  • The demand pattern classification for that SKU
  • The inputs: velocity, lead time, safety stock math, and any constraint adjustments
  • Whether seasonality changed the number, and by how much

Every figure traces back to your own sales data and parameters you can see and adjust.

Safety Stock Built From Both Sides

Safety stock covers two things: how much demand moves, and how much supplier lead time moves. It is not just the average sale. A supplier with tight, steady delivery windows earns a smaller buffer. A supplier who runs late often earns a bigger one, set from real delivery history tracked in the supplier scorecard.

The buffer targets a 95 percent service level. That is the formula's target, not a promise. What you actually get depends on how close future lead times and demand come to the data behind the formula. The Forecast Quality tab shows that gap on its own, rather than assuming it away.

Works Across Channels and Locations

Selling on both Shopify and Amazon means one forecast, not two. A sale on either channel draws from the same demand model and adjusts for returns, so nothing gets double-ordered and no channel gets missed. The same SKU can be steady on Shopify and seasonal on Amazon; both get the model that fits.

The same is true across locations. If a SKU sits in more than one warehouse, 3PL, or FBA region, each location gets its own forecast, its own pattern, and its own stockout risk. One SKU can show a comfortable cushion at one location and a stockout warning at another, because it genuinely sells at a different rate in each place. The number you act on is the number for the shelf that is actually running low.


Related Features

Learn More

See how forecasting works with your inventory | Compare to other tools | View Pricing

Frequently Asked Questions

Perfect For

  • Multi-channel sellers on Shopify + Amazon
  • Sellers with 100+ SKUs
  • Teams looking to automate reordering

Try this feature free

Connect your store and start a free 14-day trial.
Start Your 14-Day Free Trial
No credit card required14-day free trialCancel anytime

Doing $5M+ in revenue? Talk to our team