Ordering stock is a forecast. Setting a hiring plan is a forecast. Committing to a budget is a forecast. Most businesses make dozens of them a month, informally, and almost never check afterwards how close they were.
Formal forecasting is not fundamentally different — it is the same judgement, written down, tested against what actually happened, and improved.
Every business series has three parts
Take any monthly sales history and it breaks into three components. Separating them is most of the work.
Trend — the underlying direction over time. Growing, flat, declining. Strip out the noise and the seasonal swings, and this is what remains.
Seasonality — patterns that repeat on a fixed cycle. In Malaysia these are unusually strong and unusually specific: Ramadan and Hari Raya shifting roughly eleven days earlier each year, Chinese New Year moving between January and February, school holidays, monsoon effects on east-coast logistics, payday spikes around month-end, and the 1st-to-5th surge in F&B and retail.
Noise — genuine randomness. A competitor's one-off promotion, a rainy weekend, a viral post. The critical discipline is not explaining noise. Teams that construct a narrative for every fluctuation end up chasing ghosts.
The moving festival dates matter more than most teams account for. A model that assumes seasonality repeats on fixed calendar months will get Malaysian retail wrong every year, because the biggest spending period moves. This is the single most common technical failure we see in local forecasting.
Every business series is trend + seasonality + noise
Methods, from simplest up
Naive forecast — next month equals this month. Sounds useless; it is not. It is the benchmark every other method must beat. If your sophisticated model cannot outperform "same as last month," it is not adding value and you should know that.
Moving average — average the last few periods. Smooths noise, ignores trend and seasonality. Fine for stable, high-volume items.
Exponential smoothing — weighted average giving recent periods more influence, with variants that handle trend and seasonality explicitly. The workhorse of business forecasting, and adequate for a large share of real cases.
ARIMA — models how a series relates to its own past values. More flexible, harder to explain, and needs a reasonable amount of history.
Regression with drivers — forecasts using external factors: price, marketing spend, holidays, weather. Powerful, with an obvious catch — to forecast next quarter you need next quarter's driver values, which are themselves forecasts.
Machine-learning methods — genuinely useful with many products, many locations and long history. Frequently overkill. With eighteen months of data on forty products, they will not beat exponential smoothing.
The freely available textbook Forecasting: Principles and Practice by Hyndman and Athanasopoulos is the standard reference here, and is more readable than its subject matter suggests.
The range matters more than the number
"Sales next month will be RM480,000" is nearly useless on its own. "Between RM440,000 and RM520,000, with 80% confidence" lets you plan — you can stock for the upper bound on critical items and staff for the lower bound.
Any forecast presented without a range should be sent back. The width of that interval is the information: a wide range honestly signals an unpredictable business, and hiding it behind a single confident number does not make the uncertainty go away.
A forecast without a range is a guess
Measuring accuracy honestly
Two rules that most teams break.
Test on data the model has not seen. Fit on months 1–18, forecast months 19–24, compare against what actually happened. A model evaluated on the same data it learned from will always look excellent and frequently fail in production.
Always compare against the naive benchmark. A 12% error rate means nothing in isolation. If "same as last month" achieves 14%, your model adds modest value. If naive achieves 9%, your model is actively worse than doing nothing — and without the comparison, nobody would ever know.
MAPE (mean absolute percentage error) is the usual business metric, with a known weakness: it behaves badly on low-volume items and cannot handle zeros. For intermittent demand — spare parts, slow movers — use absolute error instead.
Where AI genuinely helps
- Trying many methods quickly. Fitting six approaches and comparing them on held-out data used to be a week's work.
- Handling many series. Forecasting 800 SKUs individually is impractical manually and routine for a model.
- Explaining the output. A plain-language summary of what drives the forecast makes it reviewable by the people who will act on it.
- Catching data problems. A month where a branch stopped reporting will otherwise be silently treated as a genuine collapse in demand.
What AI does not do is know about the things absent from your data — the new competitor opening in March, the contract you are about to lose, the product you plan to discontinue. Statistical forecasts are baselines. Human judgement adjusts them, and both should be recorded so you can learn which was closer.
Getting started
- Pick one decision that forecasting would improve — usually inventory or staffing.
- Gather 24 months of history if you can. Twelve is a workable minimum; below that, seasonality is guesswork.
- Establish the naive benchmark first, so you know what "better" means.
- Try exponential smoothing with seasonality. Compare on held-out data.
- Publish a range, not a number.
- Record every forecast and review accuracy monthly. This step is skipped almost universally and is where the improvement actually comes from.
Our AI Analytics programme covers forecasting, seasonality and planning analytics hands-on — HRD Corp SBL-KHAS claimable for eligible Malaysian employers.