Why a 6-month moving average is overstocking you
A common Shopify reorder workflow: export ShipStation shipment volume, paste into a Google Sheet, compute a trailing six-month average per SKU, reorder when cover drops below six months. It works. It also overstocks fast movers and misses every seasonal ramp.
What a 6-month rule actually says
Reordering when cover drops below six months is effectively a 99th-percentile-or-higher safety policy. For a high-velocity, low-variability A-item, that's a fortune in parked working capital. The honest version: "I don't want to think about it, so I apply the worst-case buffer to every SKU."
Why moving averages miss seasonality
A six-month moving average gives equal weight to every week. If you're forecasting an October reorder using April-through-September data, your average is dominated by summer demand — which has nothing to do with what your customers buy in November.
The fix is exponential smoothing (Holt-Winters or Holt double-exponential), which weights recent observations more heavily and decomposes the signal into level, trend, and seasonal components.
Why one buffer per SKU is wrong
Safety stock = z × σ_LT
The point of z is that different SKUs deserve different service levels. Top-revenue A-items want 99% (z ≈ 2.33). Lumpy C-items might be fine at 90%. A flat "6 months" applies the same z to everything. Result: overstocking C-items, understocking A-items, usually both.
A worked example
A-item shipping 150/wk, σ=20, lead time 30 days. Average lead-time demand ≈ 643 units. σ_LT ≈ 47 units.
- 6-month rule: 150 × 26 = 3,900 units of cover. At $25/unit = $97,500 parked.
- Service-level-segmented at 99%: ROP ≈ 753, plus cycle stock ≈ 900 total. At $25 = $22,500.
Same 99% service level, $75,000 less working capital tied up in one SKU. Multiply across a hundred A-items and the number gets very large.
Three things to do this week
- Tag your top 20 SKUs. Their cover should be measured in weeks, not months.
- Pull a vendor on-time history. Don't pay for vendor unreliability with a blanket 6-month rule.
- Stop reordering by averages. Even simple exponential smoothing dramatically beats trailing average.
Why skubase
skubase runs Holt double-exponential with weekly seasonality on every SKU, classifies on ABC × XYZ, sets safety stock per class, scores suppliers, surfaces stockout probability. The math is visible — every recommended quantity explains itself.