SARIMA and Prophet: Two Ways to Model Seasonality in Forecasting

A practical comparison of SARIMA, the seasonal extension of classical ARIMA, and Facebook Prophet, an additive model built for business time series with holidays and multiple seasonal cycles.

▶ Open the simulation

Why plain ARIMA runs out of road

ARIMA — AutoRegressive Integrated Moving Average — is a classical statistical method for forecasting a single time series from its own past values. It combines three ideas: autoregression, where the next value is predicted from a weighted combination of previous values; integration, where the series is differenced (subtracting each value from the one before it) to remove trend and make the series stationary; and a moving-average component, which models the error terms of past forecasts. ARIMA is a solid baseline for short univariate forecasts and works well when a series has a fairly simple trend and no strong repeating seasonal pattern.

Its limitation shows up as soon as a series has a real seasonal cycle — daily electricity demand that peaks every evening, retail sales that spike every December, website traffic that dips every weekend. Plain ARIMA has no mechanism for repeating patterns at a fixed period; it treats each observation as if the only useful information is what happened immediately before it. Forcing a seasonal pattern through ARIMA's ordinary differencing and autoregressive terms alone produces forecasts that miss the shape of the cycle.

SARIMA: bolting a seasonal cycle onto ARIMA

Seasonal ARIMA, or SARIMA, extends the same idea with a second set of autoregressive, differencing, and moving-average terms that operate specifically at the seasonal period, denoted s. A model is typically written as SARIMA(p, d, q)(P, D, Q, s), where the lowercase letters are the ordinary ARIMA orders and the uppercase letters are their seasonal counterparts. For hourly data with a weekly cycle, s would be set to 168 (24 hours × 7 days); for monthly data with an annual cycle, s would be 12. The seasonal terms let the model learn, for instance, that today's value should be compared not just to yesterday's value but to the value exactly one seasonal period ago.

SARIMA remains fully interpretable in the classical statistical sense — its coefficients have a defined meaning, its residuals can be checked for whiteness with standard diagnostic tests, and confidence intervals around forecasts fall out of the model naturally. The cost is that fitting a good SARIMA model requires choosing six or seven order parameters, typically by inspecting autocorrelation plots or through a grid search over plausible values, and the model handles only one seasonal period cleanly — a series with both a daily and an annual cycle strains a single seasonal term.

Prophet: seasonality and holidays without deep statistical tuning

Prophet, released by Facebook's data science team, takes a different approach built for business analysts who need reasonable forecasts quickly, without hand-tuning ARIMA orders. Rather than an autoregressive structure, Prophet decomposes a series additively into a trend component, one or more seasonal components (it can model daily, weekly, and yearly seasonality simultaneously, unlike SARIMA's single seasonal period), and a holiday component. The trend is modelled with a piecewise linear or logistic curve that can bend at "changepoints" — moments where the underlying growth rate shifts — which Prophet detects automatically from historical data, though they can also be specified manually when known in advance, such as a product launch or a policy change.

The holiday component is Prophet's most distinctive practical feature: a list of specific dates — public holidays, known promotional events, one-off outages — can be supplied, and Prophet learns a separate effect for each, including the days immediately before and after if that window is specified. For series affected by locale-specific holidays that off-the-shelf holiday calendars miss, adding a custom holiday list is often the single change that most improves forecast accuracy, since sharp one-day deviations around holidays are exactly the kind of pattern that trend and seasonality terms alone cannot capture.

Multiple seasonality and the practical trade-off

The clearest practical dividing line between the two methods is how many seasonal cycles the data exhibits at once. Hourly energy demand, for example, typically shows a daily cycle (peak in the evening), a weekly cycle (lower on weekends), and often a slower annual cycle (higher in winter for heating-driven demand). SARIMA can only represent one seasonal period natively; representing more than one requires workarounds such as adding exogenous regressors for the additional cycles or moving to a different model family entirely. Prophet handles multiple additive seasonalities out of the box, which is why it tends to be reached for first when a series has this kind of layered periodicity.

SARIMA tends to win on short, well-behaved series with a single dominant seasonal pattern and no missing data, where its formal statistical guarantees and tight confidence intervals are valuable — regulatory reporting or scientific applications where the model needs to be defensible in a specific statistical sense. Prophet tends to win for rapid business forecasting: dashboards that need a "good enough" forecast refreshed automatically as new data arrives, series with irregular gaps or outliers that Prophet handles more gracefully by design, and cases where the forecaster is not a trained statistician and needs sensible defaults rather than manual order selection.

Where both fall short of learned models

Neither SARIMA nor Prophet naturally incorporates external predictive features the way a gradient-boosted tree or neural network can. Weather, price changes, marketing spend, or other explanatory variables can be added to both as exogenous regressors, but this is more of an add-on than a native strength — the models were designed primarily to explain a series from its own history and calendar structure, not from a rich feature set. When a forecasting problem genuinely depends on many external drivers with complex interactions, both are usually outperformed by feature-based models like gradient boosting, at the cost of losing the automatic seasonal decomposition and clean statistical interpretability that make SARIMA and Prophet attractive in the first place.

In practice, teams often run a SARIMA or Prophet forecast as a fast, well-understood baseline, and compare it against a more complex model trained on the same data. If the complex model cannot beat the baseline by a meaningful margin, that is itself useful information — either the extra features are not adding real predictive signal, or more tuning or data is needed before the added complexity is worth deploying.

Frequently Asked Questions

What does the "s" parameter in SARIMA actually control?

It sets the length of the seasonal cycle in observations — for example 24 for hourly data with a daily cycle, 168 for hourly data with a weekly cycle, or 12 for monthly data with an annual cycle. SARIMA compares each point to the point exactly one cycle earlier through its seasonal autoregressive and moving-average terms.

Can Prophet model more than one seasonal cycle at once?

Yes. Prophet is built to add daily, weekly, and yearly seasonal components together as part of a single additive model, which is a genuine advantage over SARIMA, whose seasonal terms are built around a single fixed period.

Does Prophet require the data to be stationary like ARIMA does?

No. Prophet models trend directly with a piecewise curve rather than relying on differencing to remove it, so it does not require the stationarity checks and transformations that are a standard part of preparing data for ARIMA or SARIMA.

How much does adding custom holidays typically improve a Prophet forecast?

It varies by domain, but for series strongly affected by local, non-standard holidays, adding a custom holiday calendar has been reported to improve forecast accuracy by several percentage points, since it captures sharp one-day deviations that neither the trend nor the seasonal terms can otherwise explain.

Should I choose SARIMA or Prophet over a gradient-boosted forecasting model?

Choose SARIMA or Prophet when the series is best explained by its own history, seasonality, and calendar effects, and when a fast, interpretable baseline is needed. Choose a gradient-boosted model when many external features genuinely drive the target and the relationships between them are non-linear or interact in ways a purely time-based model cannot capture.

What did you find?

Add reproduction steps (optional)