Practitioner's Guide
What forecasting method should I use?
A practitioner's guide to choosing the right time-series method for your data. No hype. No buzzword salad. Just clear guidance from someone who uses these in production.
Six things most forecasting guides won't tell you
Before you touch a model, these six principles will save you from the most common forecasting mistakes.
-
01
Simple methods win more than people expect.
Naive, SES, and Holt-Winters regularly beat complex models on real data. Before you reach for Prophet or LightGBM, run the simple baselines. If they lose, great — now you know your complex model is earning its complexity. If they win, you just saved weeks.
-
02
Always ensemble.
A simple average of 2–3 reasonable methods almost always beats picking the single best one. M5 (2020) first place was an equal-weighted blend of 6 LightGBM variants. Ensembling is not a fallback — it is the default production strategy.
-
03
Financial market data is fundamentally different.
Asset prices and returns are near-random walks. M6 competition evidence shows forecast accuracy clusters near luck, and accuracy does not correlate with investment outcomes. The methods on this site apply to business time series — revenue, churn, demand. Market data needs a different toolkit (GARCH, risk models, factor models).
-
04
Prophet is easy. It's not always accurate.
Prophet's defaults are forgiving and its interface is clean. That makes it a good first model. It is not always the best model. Verify it against simpler methods before deploying. If Holt-Winters beats Prophet on your data, use Holt-Winters.
-
05
The Theta method is the most underrated tool in forecasting.
Theta finished in the top 10 in both M3 and M4 competitions. It is easy to implement, interpretable, and reliably strong on business time series. Most practitioners have never heard of it. That is a mistake.
-
06
Foundation models are competitive, not universal.
TimeGPT, Moirai, and Chronos are impressive. They are also new, expensive to run, and not universally better than classical methods. Treat them as additional ensemble members, not replacements for understanding your data.
Describe your data in 7 questions
Answer these about your time series. Then scan the matrix below for methods that match all your answers. Aim for 2-3 candidate methods to implement and ensemble.
How many observations of history do you have?
Does your data have a trend?
Does your data have seasonality?
Is it univariate or multivariate with cross-series dependencies?
Do you have known external drivers? (marketing spend, holidays, weather)
Is the data intermittent (lots of zeros)?
Is this financial market data (asset prices, returns, volumes)?
Recommended action
Implement these 11 methods and ensemble them (simple average, weighted average, or stacking). A simple average of 2–3 reasonable methods almost always beats picking the single best one. M5 (2020) first place was an equal-weighted blend of 6 LightGBM variants.
The Complete Method Matrix
Twelve methods scored against seven data characteristics. Use the worksheet above to filter your shortlist, then reference this table for the full picture.
| Method | Min History | Trend | Seasonality | Multivariate | Exogenous | Intermittent | Interpretable | Difficulty | Best For |
|---|---|---|---|---|---|---|---|---|---|
| 01Naive / Seasonal Naive | Any | — | Seasonal Naive: single cycle | No | No | OK | High | Trivial | Benchmark; every other method must beat these |
| 02SES (Simple Exponential Smoothing) | 30+ | No | No | No | No | Poor | High | Easy | Flat, noisy series with no pattern |
| 03Holt (Linear Trend) | 30+ | Linear | No | No | No | Poor | High | Easy | Trending series, no seasonality |
| 04Holt-Winters | 2 seasonal cycles | Linear | Single | No | No | Poor | High | Easy | Trending + seasonal series; wins more often than expected |
| 05Theta | 30+ | Yes | Single | No | No | OK | High | Easy | Strong simple baseline; top-10 in M3/M4; underused |
| 06ARIMA / Auto-ARIMA | 50+ | Linear | No (use SARIMA) | No (use ARIMAX) | Via ARIMAX | OK | Medium | Medium | Flexible univariate; linear trend |
| 07SARIMA | 2-3 seasonal cycles | Linear | Single | No (use SARIMAX) | Via SARIMAX | OK | Medium | Medium | Univariate with seasonality + trend |
| 08TBATS | 2-3 seasonal cycles | Yes | Multiple | No | No | OK | Low | Medium | Multiple/complex seasonal cycles |
| 09Prophet | 30+ | Non-linear | Single or multiple | No | Yes | OK | Medium | Easy | Fast deployment with messy data; verify against simpler methods |
| 10LightGBM with features | 100+ | Yes | Yes (via features) | Yes (panel) | Yes | OK | Low | Medium-Hard | M5 winning approach; many series with shared structure |
| 11Croston / TSB / iETS | 30+ | No | No | No | No | YES (specialized) | Medium | Easy | Intermittent demand (many zeros) |
| 12Ensembling | N/A | Inherits | Inherits | Inherits | Inherits | Inherits | Low | Medium | Almost always beats picking one method; default for production |
Benchmark; every other method must beat these
Flat, noisy series with no pattern
Trending series, no seasonality
Trending + seasonal series; wins more often than expected
Strong simple baseline; top-10 in M3/M4; underused
Flexible univariate; linear trend
Univariate with seasonality + trend
Multiple/complex seasonal cycles
Fast deployment with messy data; verify against simpler methods
M5 winning approach; many series with shared structure
Intermittent demand (many zeros)
Almost always beats picking one method; default for production
Financial market data warning
Financial market data: M6 evidence shows competitor accuracy on price/return forecasting clusters near luck, and forecast accuracy doesn't correlate with investment outcomes. Use simple methods (Naive, Theta, Holt) as baselines, focus on volatility forecasting (GARCH family), and ensemble for stability. Complex models rarely earn their complexity here. This warning applies regardless of which row in the matrix matches your data.
Where to next?
Pick 2-3 methods from the matrix that match your data. Click each to read the full page — when to use, when not to use, Python code, and a real finance example. Then implement them and ensemble for production.
