Demand forecasting for an imported SKU should produce a documented range and a reviewable set of assumptions—not one confident number copied from last month's sales. Start with clean SKU-level history, identify periods when sales did not represent normal demand, choose a simple baseline, record known future changes separately, and measure the error after the period closes.
For an Australian importer, that discipline matters because the order may be committed long before the selling period. A weak baseline can turn a temporary promotion into months of excess stock, or treat a stockout as low demand and trigger another shortage.
Define the decision before choosing a method
Write down four fields before calculating anything:
- the SKU and location or channel being forecast;
- the future period, such as the next calendar month or 13 weeks;
- the decision the forecast will inform; and
- the date on which actual demand and forecast error will be reviewed.
Keep this decision separate from the stock trigger. The reorder-point and safety-stock process uses demand and lead-time inputs to decide when action is required. The economic order quantity calculation explores an ordering-versus-holding-cost baseline. This article owns the demand input that those later decisions may consume.
Build a clean history table
Export units sold at the lowest reliable grain you can maintain—usually SKU by day or week—and retain the related operational flags. Do not overwrite the raw export. Build a separate working table.
| Field | Why it matters | Treatment |
|---|---|---|
| Period and SKU | Keeps like-for-like observations together | Reject merged or renamed variants until mapped |
| Units sold | Observed transactions, not automatically demand | Preserve raw value |
| Available for sale | Identifies censored periods | Flag zero or partial availability |
| Promotion or price change | Separates planned uplift or discount effects | Flag and describe |
| Return or cancellation adjustment | Avoids mixing gross orders with retained demand | Apply one declared convention |
| Channel or location | Exposes different demand patterns | Forecast separately where material |
| One-off event | Records launches, bulk orders or listing outages | Flag; never delete silently |
Shopify's current demand-forecasting guidance identifies historical sales, market trends and qualitative input as possible forecasting evidence. Its current inventory-optimisation guidance also lists seasonality, promotions, returns, stockouts and channel or location patterns among relevant inputs. Those are evidence categories, not permission to blend unlike periods without a record.
Treat stockouts as missing demand evidence
When available stock reaches zero, recorded sales can fall to zero even while customers still want the product. That period shows availability-constrained sales. It does not reveal the exact missed demand.
Use a transparent status such as:
normal: the SKU was continuously available;partial: availability was constrained for part of the period;stockout: no sale could occur for a material part of the period; orunknown: the inventory history is insufficient to classify the period.
Do not fill stockout periods with an invented uplift. Instead, calculate the baseline both with the affected periods visible and with a documented comparable-period estimate. Present the difference as a sensitivity range. If lost-sales, waitlist or back-order evidence exists, retain it separately and state its limitations.
Anecdotal ecommerce discussions repeatedly describe stockouts making sales history look weaker than underlying interest. That is a useful reader pain point, but it does not supply a universal correction factor.
Separate promotions and launches from the baseline
A promotion can increase sales by changing price, reach or urgency. A launch can start from no comparable history. Neither should quietly redefine steady-state demand.
For a promotion, keep at least three values:
- the unadjusted baseline for the period;
- the promotion override and its stated reason; and
- the final approved forecast.
For a new SKU, use an explicitly analogue-based or judgemental range. Record which existing products, customer commitments, pre-orders, research or campaign plans support it. Mark the confidence as low until actual observations accumulate.
Choose a simple baseline you can reproduce
The right baseline depends on the data. Start simple enough that another person can repeat it.
Recent average
Use an average of comparable recent periods when demand is reasonably stable. Record the window and exclusions. A four-week average and a 13-week average answer different questions.
Same-period seasonal comparison
Use the comparable period from a prior year only when the product, channel, price and availability are sufficiently comparable. Record changes in range, distribution and marketing that weaken the comparison.
Weighted recent history
Give more weight to recent periods when the direction is changing, but publish the weights. A weighting scheme is an assumption, not proof that the trend will continue.
| Baseline | Suitable starting condition | Main caution |
|---|---|---|
| Recent average | Stable SKU with clean availability | Can lag a real trend |
| Seasonal comparison | Repeat seasonal pattern and comparable offer | Prior year may not be comparable |
| Weighted history | Directional change with enough observations | Can overreact to a short spike |
| Analogue range | New SKU with a relevant comparator | Comparator choice can dominate the result |
Do not select a method because it gives the preferred purchase quantity. Select it before seeing the commercial answer, or document why it changed.
Add overrides as a separate decision layer
Known future events belong in an override register. Examples include an approved promotion, a planned listing launch, a wholesale order, a price change, a channel closure or a product transition.
| Override | Evidence owner | Units or percentage | Period | Confidence | Expiry/review |
|---|---|---|---|---|---|
| Approved campaign | Marketing lead | +240 units | November | Medium | Review after campaign |
| Wholesale commitment | Sales lead | +120 units | November | High if accepted order exists | Close on dispatch |
| Product transition | Product lead | -15% | December onward | Medium | Review after replacement launch |
Do not hide overrides inside the baseline formula. Keeping them separate lets the team see whether error came from the history model or from a business assumption.
Produce a range before handing demand to purchasing
A single forecast conceals uncertainty. Build at least a downside, base and upside scenario when the purchasing decision is material.
For example, if the clean-history baseline is 1,000 units for a selling period:
- downside: 850 units, reflecting a weaker repeat rate;
- base: 1,000 units, using the declared baseline; and
- upside: 1,180 units, including a documented campaign scenario.
These are planning scenarios, not probability claims unless a valid model supplies probabilities. Purchasing can then test each scenario against the supplier production lead time, cash, MOQ, pack and freight constraints.
Measure error without hiding direction
After the period closes, compare forecast units with actual demand evidence under the same definition. Track both magnitude and direction.
error = actual - forecast- a positive result means the forecast was low;
- a negative result means the forecast was high; and
- absolute error removes direction for size comparisons.
Percentage measures can become unstable when actual demand is very small or zero. Use unit error alongside any percentage metric and disclose how zero-demand periods are handled. Do not average away repeated over-forecasting and under-forecasting into a harmless-looking zero.
Shopify inventory reports can expose SKU-level sell-through and ABC information for relevant merchants. Whatever system is used, preserve the actual input extract and the approved forecast version.
Run one monthly forecast review
For every material imported SKU, review:
- data completeness and availability flags;
- forecast versus actual units;
- repeated high or low bias;
- promotion and one-off override performance;
- stockouts, returns and channel changes;
- supplier or inbound changes that affect the later replenishment decision; and
- the next baseline method, owner and approval date.
Do not change historical forecasts after seeing actual sales. Version the next forecast instead. That creates a learning record rather than a spreadsheet that always appears to have been right.
Hand purchasing a governed input, not a promise
The finished handoff should state the SKU, horizon, baseline method, clean-history window, excluded or flagged periods, overrides, scenario range, error history, owner and review date. It should also state what the forecast does not decide.
Demand forecasting does not set the reorder point, guarantee availability or determine the final purchase quantity. It gives the purchasing team a transparent demand input. The immediate next step is to take one material SKU, rebuild its clean history and see whether another reviewer can reproduce the baseline without asking what the spreadsheet author meant.






.png)
