Algorithm selectorProphet

[Time Series]

Prophet.

Facebook's forecasting tool for business time series with seasonality.

Retail forecastingCapacity planningMarketing analytics

SPEC SHEET

FamilyTime Series
InterpretabilityHigh
Training speedFast
Data neededMedium
ComplexityLow

C — How it actually works

Treat a business time series as a sum of understandable parts: a piecewise trend that can bend at changepoints, weekly and yearly seasonal curves, and holiday bumps - then fit them all at once, robustly. Built by Facebook so an analyst can produce a sane forecast (with uncertainty bands and a decomposition plot) in five lines, missing data and all.

D — The math

y(t) = g(t) + s(t) + h(t) + ε: piecewise-linear/logistic trend g with automatic changepoints, Fourier-series seasonalities s, holiday indicator effects h; fit as a Bayesian additive model (MAP via Stan).

Training

seconds per series

Inference

O(horizon)

E — When NOT to use it

  • Sub-daily/high-frequency signals with autocorrelated noise (its error model is weak there)
  • Series driven by covariates it cannot see (stock prices, auction dynamics)
  • Thousands of series where a single global ML model can share strength
  • When maximum accuracy matters more than explainability - tuned boosting/deep models usually beat it

F — Tuning that matters

  • changepoint_prior_scale is the main dial (default 0.05): raise for flexible trends, lower to resist overfitting
  • Feed it your real holiday/event calendar - this is where Prophet earns its keep
  • seasonality_mode="multiplicative" when seasonal swings scale with the level
  • Validate with the built-in cross_validation + performance_metrics utilities

G — Production pitfalls

  • Using it as a black box and never opening the components plot (its best feature)
  • Extrapolating an unconstrained linear trend years ahead - cap it with logistic growth
  • Assuming default uncertainty intervals cover seasonality uncertainty (they mostly cover trend)
  • Benchmarking nothing against it - always race a naive seasonal baseline and ARIMA

H — Minimal starting point

PYTHON
from prophet import Prophet

m = Prophet(changepoint_prior_scale=0.05,
            seasonality_mode="multiplicative")
m.add_country_holidays(country_name="IN")
m.fit(df)                       # df: columns ds (date), y (value)
future = m.make_future_dataframe(periods=90)
forecast = m.predict(future)
m.plot_components(forecast)     # trend / weekly / yearly / holidays

I — The interview question

What does Prophet’s decomposition give you that a black-box forecaster does not?

Diagnosability and negotiation power: when the forecast moves, you can show whether trend, seasonality, or a holiday effect moved it. Analysts can override a changepoint or add an event without retraining philosophy - which is why it fits business planning loops so well.

J — In the wild

Food-delivery and e-commerce ops teams run Prophet across city-level demand series for staffing and inventory: the holiday calendar handles Diwali and IPL finals, and the components plot is what actually gets shown in the weekly planning meeting.

K — Consider instead