Time series forecasting turns historical patterns into future predictions. Whether you are projecting next quarter's revenue, planning inventory levels, or modeling financial volatility, the method you choose determines how accurate and useful those predictions will be. The challenge is not a shortage of techniques. It is picking the right one for your data's structure, your forecasting horizon, and the decisions you need to make.
The first question to ask is whether your data is univariate (a single variable over time, like daily sales) or multivariate (multiple interrelated series, like sales across product lines or economic indicators that influence each other). Univariate methods such as ARIMA, Prophet, and Holt-Winters focus on extracting trend, seasonality, and noise from one series. Multivariate methods like VAR model how several series influence each other simultaneously. Beyond that split, your data's characteristics (intermittent demand, volatile variance, multiple seasonal cycles) narrow the field further. This guide maps forecasting methods to the problems they suit. The example below compares two simple forecasts on made-up data.
Find the method for your question
Start with the question you are asking. Each guide says when its method does not fit.
| Your question | Method | Page |
|---|---|---|
| I want a classic model built on the series' own past values. | ARIMA | Read the guide |
| My series has trend and seasonality and I want a smoothing forecast. | Holt-Winters | Read the guide |
| I want a family of smoothing models, from simple to seasonal. | Exponential smoothing (ETS) | Read the guide |
| My series has holidays and more than one seasonal cycle. | Prophet | Read the guide |
| Several related series affect each other. | VAR (vector autoregression) | Read the guide |
| The size of the swings changes over time. | GARCH | Read the guide |
| I want to split a series into trend, season and remainder. | Seasonal decomposition | Read the guide |
| Demand comes in rare, irregular bursts. | Croston method | Read the guide |
| I want to check a forecast on later data it has not seen. | Held-out testing for forecasts | Read the guide |
Worked Example: Two Simple Forecasts on a Made-Up Series
This example covers only two simple baselines, naive and seasonal naive. It does not test ARIMA, Prophet or any other method on this page; see the ARIMA guide and the Prophet guide for those. The accuracy measures follow Hyndman and Koehler (2006); see Sources below.
Question: Which simple forecast has smaller errors for the next year of this made-up monthly series?
Inputs: Simulated data, seed 23. The script makes 60 monthly values with a rising trend, a yearly cycle and random noise. It uses the first 48 values to make each forecast and holds back the last 12 to score them.
Method: The naive forecast repeats the last value. The seasonal naive forecast repeats the values from the prior year. Mean absolute error (MAE) is the average size of the miss. Root mean square error (RMSE) gives more weight to large misses.
import numpy as np
seed = 23
rng = np.random.default_rng(seed)
periods = np.arange(60)
series = (30 + 0.4 * periods
+ 6 * np.sin(2 * np.pi * periods / 12)
+ rng.normal(0, 2, size=60))
train = series[:48]
test = series[48:]
forecasts = {
"naive": np.full(12, train[-1]),
"seasonal_naive": train[-12:],
}
print(f"Simulated data, seed {seed}")
print("Input: 60 monthly values; trend +0.4 per month; "
"yearly cycle amplitude 6; random noise SD 2")
print(f"Training points: {len(train)}")
print(f"Forecast horizon: {len(test)} months")
print("Scores on the held-out months:")
for name, forecast in forecasts.items():
mae = np.mean(np.abs(test - forecast))
rmse = np.sqrt(np.mean((test - forecast) ** 2))
print(f"{name}: MAE={mae:.2f}, RMSE={rmse:.2f}")
Simulated data, seed 23
Input: 60 monthly values; trend +0.4 per month; yearly cycle amplitude 6; random noise SD 2
Training points: 48
Forecast horizon: 12 months
Scores on the held-out months:
naive: MAE=5.51, RMSE=6.21
seasonal_naive: MAE=4.24, RMSE=5.06
Result: On the held-out months, seasonal naive had MAE 4.24 and RMSE 5.06. Naive had MAE 5.51 and RMSE 6.21. Seasonal naive had lower error on both scores, but the series was built with a yearly cycle, which seasonal naive repeats and naive ignores, so it had to win here. It still ignores the built-in trend, which adds 4.8 units (12 months at 0.4) over one year, and that is most of its remaining error. A method with a trend term would be expected to do better.
Limit: This is one made-up series and one holdout period. It does not show which method will work best on real data.
Sources
- Hyndman R, Koehler A (2006). Another look at measures of forecast accuracy. International Journal of Forecasting. doi:10.1016/j.ijforecast.2006.03.001. Covers: MAE and RMSE as forecast accuracy measures.
- Hyndman R, Athanasopoulos G. Forecasting: Principles and Practice, 3rd ed. otexts.com/fpp3. Covers: naive and seasonal naive forecasts, and the methods on this page.
- Assimakopoulos V, Nikolopoulos K (2000). The theta model: a decomposition approach to forecasting. International Journal of Forecasting. doi:10.1016/s0169-2070(00)00066-2. Covers: who described the Theta method and when.
- Kalman R (1960). A New Approach to Linear Filtering and Prediction Problems. Journal of Basic Engineering 82(1): 35-45. doi:10.1115/1.3662552. Covers: who described the Kalman filter and when.
- Croston J (1972). Forecasting and Stock Control for Intermittent Demands. Journal of the Operational Research Society 23(3): 289-303. doi:10.1057/jors.1972.50. Covers: who described Croston's method and when.
- Syntetos A, Boylan J (2005). The accuracy of intermittent demand estimates. International Journal of Forecasting 21(2): 303-314. doi:10.1016/j.ijforecast.2004.10.001. Covers: who described the SBA variant and when.
Quick Comparison of Forecasting Methods
| Method | Best For | Seasonality | Multivariate | Guide |
|---|---|---|---|---|
| ARIMA | Stationary or trend-stationary series with autocorrelation | SARIMA | No | Read guide |
| Prophet | Business data with holidays, missing values, and multiple seasonalities | Yes | No | Read guide |
| Holt-Winters | Data with clear trend and single seasonal pattern | Yes | No | Read guide |
| Exponential Smoothing | Short-term forecasts where recent data matters most | ETS | No | Read guide |
| VAR | Multiple interrelated time series (macro, multi-channel) | VARX | Yes | Read guide |
| GARCH | Financial returns, volatility clustering, risk modeling | No | No | Read guide |
| Theta Method | Simple baseline forecasts with minimal tuning | With decomposition | No | Read guide |
| Seasonal Decomposition | Understanding trend, seasonal, and residual components | Yes | No | Read guide |
| State Space Models | Systems with hidden states, structural breaks, or regime changes | Yes | Yes | Read guide |
| Croston Method | Intermittent demand: spare parts, slow-moving SKUs | No | No | Read guide |
When to Use Each Method
ARIMA (AutoRegressive Integrated Moving Average)
ARIMA is the workhorse of classical time series forecasting. It models a series through its own lagged values (autoregressive terms) and past forecast errors (moving average terms), with differencing to handle trends. Use ARIMA when your data shows autocorrelation structure and you need interpretable, well-understood forecasts. Extend to SARIMA when a single seasonal cycle is present. ARIMA struggles with multiple seasonalities and requires stationary or difference-stationary data, but its statistical rigor and mature tooling (auto.arima in R, pmdarima in Python) make it a strong default for monthly or quarterly business data.
To see where your own measure is heading, with a likely range, try the free forecasting tool.
Prophet
Prophet was built by Meta for the kind of data most businesses actually have: daily or weekly observations with holidays, occasional gaps, and multiple overlapping seasonal patterns (weekly, yearly, and custom). It decomposes the series into trend, seasonality, and holiday effects using an additive model, and it handles changepoints where the trend shifts direction. Prophet is forgiving with messy data and produces uncertainty intervals out of the box. Choose Prophet when you need fast, reasonable forecasts from an analyst who is not a time series specialist, or when your data has holiday effects that ARIMA cannot capture natively.
Holt-Winters
Holt-Winters extends simple exponential smoothing by adding explicit level, trend, and seasonal components. The additive variant works when seasonal fluctuations are constant in magnitude; the multiplicative variant handles seasons that scale with the level of the series (e.g., December sales that are 40% higher regardless of baseline). Use Holt-Winters when your data has one clear seasonal cycle and a steady trend: retail monthly sales, utility demand, or quarterly earnings. It is simpler to configure than ARIMA and often performs just as well on clean, regularly spaced data.
Exponential Smoothing (ETS)
Exponential smoothing assigns exponentially decreasing weights to older observations, making recent data count more. The ETS framework (Error, Trend, Seasonal) generalizes this into model variants covering additive/multiplicative error, trend, and seasonality combinations. Use ETS when you want to compare smoothing structures using information criteria. It excels at short-term forecasting where the recent trajectory matters more than long-range structure, and it provides a principled alternative to ARIMA when you prefer a state-space formulation.
VAR (Vector Autoregression)
VAR models multiple time series simultaneously, capturing how each series is influenced by its own past values and the past values of every other series in the system. Use VAR when you believe your series interact: for example, advertising spend, website traffic, and revenue all influencing each other with lags. VAR also enables impulse response analysis (how a shock to one variable propagates through the system) and Granger causality testing. It requires all series to be stationary and grows parameter-heavy with many variables, so keep the system small and well-justified.
GARCH (Generalized Autoregressive Conditional Heteroskedasticity)
GARCH models time-varying volatility: the tendency for large price swings to cluster together. It is the standard tool in finance for modeling asset returns, estimating Value-at-Risk, and pricing options. Use GARCH when you care about forecasting the variance of a series, not just its level. If your data shows periods of calm followed by periods of turbulence (stock returns, exchange rates, commodity prices), GARCH captures that dynamic. It pairs naturally with ARIMA for the mean equation while GARCH handles the variance equation.
Theta Method
The Theta method decomposes a time series into "theta lines" that amplify or dampen the local curvature, then combines simple forecasts from these components. It was described by Assimakopoulos and Nikolopoulos (2000). Use Theta as a benchmark or when you need a simple, nearly parameter-free baseline. It works best on non-seasonal or pre-deseasonalized data.
Seasonal Decomposition
Seasonal decomposition (STL, classical, or X-13) separates a time series into trend, seasonal, and remainder components. It is not a forecasting method on its own but a critical preprocessing step that reveals the underlying structure of your data. Use decomposition to understand what is driving your series before choosing a forecasting model, to deseasonalize data for methods that require stationarity, or to identify anomalies hiding in the residuals. STL (Seasonal and Trend decomposition using LOESS) is the most flexible variant, handling any seasonal period and robust to outliers.
State Space Models
State space models represent a time series as driven by unobserved (hidden) states that evolve over time according to a transition equation, with an observation equation linking hidden states to what you actually measure. This framework unifies exponential smoothing, ARIMA, and structural time series models under one roof. Use state space models when your system has latent variables, structural breaks, time-varying parameters, or when you need to combine multiple data sources with different frequencies. The Kalman filter estimates hidden states (Kalman, 1960).
Croston Method
Croston's method handles intermittent demand: time series where many periods have zero values and non-zero demand arrives sporadically. Standard methods like ARIMA and exponential smoothing perform poorly here because the zeros violate their assumptions. Croston separately estimates the average demand size and the average interval between demands, then combines them. Use it for spare parts inventory, slow-moving SKUs, or other series with many zero values (Croston, 1972). Variants like SBA (Syntetos-Boylan Approximation) correct for the method's known positive bias.
Decision Guide: Choosing a Forecasting Method
Start here: What does your data look like?
Yes: Use Croston Method
Yes: Use GARCH
No: Use ARIMA or Theta as a baseline
Yes, one seasonal cycle: Use Holt-Winters or SARIMA (ARIMA guide)
Yes, multiple seasonal cycles or holidays: Use Prophet
Start with Seasonal Decomposition to visualize trend, seasonality, and residuals. Then pick a method based on what you find.
Use ETS (Exponential Smoothing), which lets you compare model variants using information criteria.
Related Topics
- Time Series Cross-Validation, Walk-forward testing on held-out data, expanding and sliding windows, and why random train/test splits break temporal data.
- Revenue Trend Analysis, Applying time series methods to revenue data: growth decomposition, seasonality adjustment, and forecasting revenue trajectories.
- Cross-Validation (General), Foundational concepts in model evaluation that extend to time series with temporal adaptations.
Apply These Methods to Your Business
Time series forecasting powers some of the most important business decisions, from staffing plans to inventory management to investor projections. See how these methods work on real business data:
- Revenue Forecasting, Upload revenue data and get Prophet, ARIMA, or ETS forecasts with confidence intervals and seasonal decomposition. No code required.
- Marketing Analytics, Analyze campaign performance over time, track ROI trends, and measure channel effectiveness with statistical rigor.
Working on this for your business? See the time series forecasting tool.
Your turn
Bring your own data and the question you actually need answered.
MCP AnalyticsData science by email Send us your data and your question, and we will reply. ds@mcpanalytics.ai