Stop 11 · Time Series AnalysisTopics · 5/7

Prophet (Overview)

Part of the Data Science Roadmap

In short

Prophet is a forecasting library from Meta built for business data with holidays, weekly cycles and missing days. You get a decent forecast with very little tuning, which makes it popular for quick baselines.

A forecasting library (originally from Meta) designed to be robust to missing data, outliers and shifts, with built-in handling for holidays and multiple seasonalities — popular for business forecasting use cases.

The mascot stacks colourful sweet boxes on a shop counter under festive string lights.

Think of it like this

The festival-smart sweet shop

A mithai shop owner knows three things: business grows a bit every year, Sundays are busier than Tuesdays, and festival weeks are madness. She stocks up using all three. Prophet builds a forecast by adding up exactly those kinds of pieces.

Watch it happen

What a Prophet forecast adds up

Forecast
Trend
Seasonality
Holidays
Changepoints
Yearly
Weekly
Festive sales

1/4Prophet's forecast is a sum of separate pieces, which makes it easy to explain.

The big ideas

What you need to know

Two columns

Prophet wants a DataFrame with ds (date) and y (value). That's it to get started.

Handles gaps

Missing days and outliers don't break it, which suits messy business data.

Uncertainty bands

Every forecast comes with yhat_lower and yhat_upper, a range rather than one number.

Not always best

Benchmarks often show tuned ARIMA, exponential smoothing or ML models beating it. Treat it as one candidate.

See it in code

Walk through the code

python
1import pandas as pd2from prophet import Prophet3 4df = pd.read_csv("daily_sales.csv")          # needs columns ds (date) and y (value)5 6holidays = pd.DataFrame({7    "holiday": "festive_sale",8    "ds": pd.to_datetime(["2024-11-01", "2025-10-21"]),9})10m = Prophet(holidays=holidays, weekly_seasonality=True, yearly_seasonality=True)11m.fit(df)12 13future = m.make_future_dataframe(periods=30)14forecast = m.predict(future)15print(forecast[["ds", "yhat", "yhat_lower", "yhat_upper"]].tail())

1/4Your data must have a ds date column and a y value column.

Install with pip install prophet. Replace the example dates with the real sale days in your data.

Save yourself the pain

Common mistakes

Oops

Trusting Prophet's default forecast without checking it against simpler models.

Do this instead

Backtest it against a naive forecast and exponential smoothing on the same held-out period.

Oops

Leaving out known big events like sales or lockdowns.

Do this instead

Add them as holidays or extra regressors so the model doesn't mistake them for trend.

Your mission

Forecast website traffic

~35 min

Quick check

Which input format does Prophet expect?

Go deeper

  1. 1Fit a Prophet model on a sample business time series (sales, traffic).
  2. 2Learn how to add custom holiday effects to a Prophet model.
  3. 3Compare its ease of use against manually configuring ARIMA parameters.

More topics at this stop

Stuck on this topic? Ask an Insider

Get 1:1 guidance from people who've walked this exact path — on the InsideEdge app.

Download
InsideEdge