Nixtla/statsforecast

Lightning ⚡️ fast forecasting with statistical and econometric models.

Python

4,927

1,472 commits

updated Oct 10, 2026

See the code

README

Nixtla

Tweet Slack

All Contributors

Statistical ⚡️ Forecast

Lightning fast forecasting with statistical and econometric models

CI Python PyPi conda-nixtla License docs Downloads

StatsForecast offers a collection of widely used univariate time series forecasting models, including automatic ARIMA, ETS, CES, and Theta modeling optimized for high performance. It also includes a large battery of benchmarking models.

Installation

You can install StatsForecast with:

pip install statsforecast

or

conda install -c conda-forge statsforecast

Vist our Installation Guide for further instructions.

Quick Start

Minimal Example

from statsforecast import StatsForecast
from statsforecast.models import AutoARIMA
from statsforecast.utils import AirPassengersDF

df = AirPassengersDF
sf = StatsForecast(
    models=[AutoARIMA(season_length=12)],
    freq='ME',
)
sf.fit(df)
sf.predict(h=12, level=[95])

Get Started quick guide

Follow this end-to-end walkthrough for best practices.

Why?

Current Python alternatives for statistical models are slow, inaccurate and don't scale well. So we created a library that can be used to forecast in production environments or as benchmarks. StatsForecast includes an extensive battery of models that can efficiently fit millions of time series.

Features

  • Fastest and most accurate implementations of AutoARIMA, AutoETS, AutoCES, MSTL and Theta in Python.
  • Out-of-the-box compatibility with Spark, Dask, and Ray.
  • Probabilistic Forecasting and Confidence Intervals.
  • Support for exogenous Variables and static covariates.
  • Anomaly Detection.
  • Familiar sklearn syntax: .fit and .predict.

Highlights

  • Inclusion of exogenous variables and prediction intervals for ARIMA.
  • 20x faster than pmdarima.
  • 1.5x faster than R.
  • 500x faster than Prophet.
  • 4x faster than statsmodels.
  • 1,000,000 series in 30 min with ray.
  • Replace FB-Prophet in two lines of code and gain speed and accuracy. Check the experiments here.
  • Fit 10 benchmark models on 1,000,000 series in under 5 min.

Missing something? Please open an issue or write us in Slack

Examples and Guides

📚 End to End Walkthrough: Model training, evaluation and selection for multiple time series

🔎 Anomaly Detection: detect anomalies for time series using in-sample prediction intervals.

👩‍🔬 Cross Validation: robust model’s performance evaluation.

❄️ Multiple Seasonalities: how to forecast data with multiple seasonalities using an MSTL.

🔌 Predict Demand Peaks: electricity load forecasting for detecting daily peaks and reducing electric bills.

📈 Intermittent Demand: forecast series with very few non-zero observations.

🌡️ Exogenous Regressors: like weather or prices

Models

Automatic Forecasting

Automatic forecasting tools search for the best parameters and select the best possible model for a group of time series. These tools are useful for large collections of univariate time series.

ModelPoint ForecastProbabilistic ForecastInsample fitted valuesProbabilistic fitted valuesExogenous features
AutoARIMA✅✅✅✅✅
AutoETS✅✅✅✅
AutoCES✅✅✅✅
AutoTheta✅✅✅✅
AutoMFLES✅✅✅✅✅
AutoTBATS✅✅✅✅

ARIMA Family

These models exploit the existing autocorrelations in the time series.

ModelPoint ForecastProbabilistic ForecastInsample fitted valuesProbabilistic fitted valuesExogenous features
ARIMA✅✅✅✅✅
AutoRegressive✅✅✅✅✅

Theta Family

Fit two theta lines to a deseasonalized time series, using different techniques to obtain and combine the two theta lines to produce the final forecasts.

ModelPoint ForecastProbabilistic ForecastInsample fitted valuesProbabilistic fitted valuesExogenous features
Theta✅✅✅✅✅
OptimizedTheta✅✅✅✅
DynamicTheta✅✅✅✅
DynamicOptimizedTheta✅✅✅✅

Multiple Seasonalities

Suited for signals with more than one clear seasonality. Useful for low-frequency data like electricity and logs.

ModelPoint ForecastProbabilistic ForecastInsample fitted valuesProbabilistic fitted valuesExogenous features
MSTL✅✅✅✅If trend forecaster supports
MFLES✅✅✅✅✅
TBATS✅✅✅✅

GARCH and ARCH Models

Suited for modeling time series that exhibit non-constant volatility over time. The ARCH model is a particular case of GARCH.

ModelPoint ForecastProbabilistic ForecastInsample fitted valuesProbabilistic fitted valuesExogenous features
GARCH✅✅✅✅
ARCH✅✅✅✅

Baseline Models

Classical models for establishing baseline.

ModelPoint ForecastProbabilistic ForecastInsample fitted valuesProbabilistic fitted valuesExogenous features
HistoricAverage✅✅✅✅
Naive✅✅✅✅
RandomWalkWithDrift✅✅✅✅
SeasonalNaive✅✅✅✅
WindowAverage✅
SeasonalWindowAverage✅

Exponential Smoothing

Uses a weighted average of all past observations where the weights decrease exponentially into the past. Suitable for data with clear trend and/or seasonality. Use the SimpleExponential family for data with no clear trend or seasonality.

ModelPoint ForecastProbabilistic ForecastInsample fitted valuesProbabilistic fitted valuesExogenous features
SimpleExponentialSmoothing✅✅
SimpleExponentialSmoothingOptimized✅✅
SeasonalExponentialSmoothing✅✅
SeasonalExponentialSmoothingOptimized✅✅
Holt✅✅✅✅
HoltWinters✅✅✅✅

Sparse or Inttermitent

Suited for series with very few non-zero observations

ModelPoint ForecastProbabilistic ForecastInsample fitted valuesProbabilistic fitted valuesExogenous features
ADIDA✅✅✅
CrostonClassic✅✅✅
CrostonOptimized✅✅✅
CrostonSBA✅✅✅
IMAPA✅✅✅
TSB✅✅✅

🔨 How to contribute

See CONTRIBUTING.md.

Citing

@misc{garza2022statsforecast,
    author={Azul Garza, Max Mergenthaler Canseco, Cristian Challú, Kin G. Olivares},
    title = {{StatsForecast}: Lightning fast forecasting with statistical and econometric models},
    year={2022},
    howpublished={{PyCon} Salt Lake City, Utah, US 2022},
    url={https://github.com/Nixtla/statsforecast}
}

Contributors ✨

Thanks goes to these wonderful people (emoji key):

This project follows the all-contributors specification. Contributions of any kind welcome!

arima
automl
baselines
data-science
econometrics
ets
exponential-smoothing
fbprophet
forecasting
machine-learning
mstl
naive
neuralprophet
predictions
prophet
python
seasonal-naive
statistics
theta
time-series

Nixtla/statsforecast

Lightning ⚡️ fast forecasting with statistical and econometric models.

Python

4,927

1,472 commits

updated Oct 10, 2026

See the code

README

Nixtla

Tweet Slack

All Contributors

Statistical ⚡️ Forecast

Lightning fast forecasting with statistical and econometric models

CI Python PyPi conda-nixtla License docs Downloads

StatsForecast offers a collection of widely used univariate time series forecasting models, including automatic ARIMA, ETS, CES, and Theta modeling optimized for high performance. It also includes a large battery of benchmarking models.

Installation

You can install StatsForecast with:

pip install statsforecast

or

conda install -c conda-forge statsforecast

Vist our Installation Guide for further instructions.

Quick Start

Minimal Example

from statsforecast import StatsForecast
from statsforecast.models import AutoARIMA
from statsforecast.utils import AirPassengersDF

df = AirPassengersDF
sf = StatsForecast(
    models=[AutoARIMA(season_length=12)],
    freq='ME',
)
sf.fit(df)
sf.predict(h=12, level=[95])

Get Started quick guide

Follow this end-to-end walkthrough for best practices.

Why?

Current Python alternatives for statistical models are slow, inaccurate and don't scale well. So we created a library that can be used to forecast in production environments or as benchmarks. StatsForecast includes an extensive battery of models that can efficiently fit millions of time series.

Features

  • Fastest and most accurate implementations of AutoARIMA, AutoETS, AutoCES, MSTL and Theta in Python.
  • Out-of-the-box compatibility with Spark, Dask, and Ray.
  • Probabilistic Forecasting and Confidence Intervals.
  • Support for exogenous Variables and static covariates.
  • Anomaly Detection.
  • Familiar sklearn syntax: .fit and .predict.

Highlights

  • Inclusion of exogenous variables and prediction intervals for ARIMA.
  • 20x faster than pmdarima.
  • 1.5x faster than R.
  • 500x faster than Prophet.
  • 4x faster than statsmodels.
  • 1,000,000 series in 30 min with ray.
  • Replace FB-Prophet in two lines of code and gain speed and accuracy. Check the experiments here.
  • Fit 10 benchmark models on 1,000,000 series in under 5 min.

Missing something? Please open an issue or write us in Slack

Examples and Guides

📚 End to End Walkthrough: Model training, evaluation and selection for multiple time series

🔎 Anomaly Detection: detect anomalies for time series using in-sample prediction intervals.

👩‍🔬 Cross Validation: robust model’s performance evaluation.

❄️ Multiple Seasonalities: how to forecast data with multiple seasonalities using an MSTL.

🔌 Predict Demand Peaks: electricity load forecasting for detecting daily peaks and reducing electric bills.

📈 Intermittent Demand: forecast series with very few non-zero observations.

🌡️ Exogenous Regressors: like weather or prices

Models

Automatic Forecasting

Automatic forecasting tools search for the best parameters and select the best possible model for a group of time series. These tools are useful for large collections of univariate time series.

ModelPoint ForecastProbabilistic ForecastInsample fitted valuesProbabilistic fitted valuesExogenous features
AutoARIMA✅✅✅✅✅
AutoETS✅✅✅✅
AutoCES✅✅✅✅
AutoTheta✅✅✅✅
AutoMFLES✅✅✅✅✅
AutoTBATS✅✅✅✅

ARIMA Family

These models exploit the existing autocorrelations in the time series.

ModelPoint ForecastProbabilistic ForecastInsample fitted valuesProbabilistic fitted valuesExogenous features
ARIMA✅✅✅✅✅
AutoRegressive✅✅✅✅✅

Theta Family

Fit two theta lines to a deseasonalized time series, using different techniques to obtain and combine the two theta lines to produce the final forecasts.

ModelPoint ForecastProbabilistic ForecastInsample fitted valuesProbabilistic fitted valuesExogenous features
Theta✅✅✅✅✅
OptimizedTheta✅✅✅✅
DynamicTheta✅✅✅✅
DynamicOptimizedTheta✅✅✅✅

Multiple Seasonalities

Suited for signals with more than one clear seasonality. Useful for low-frequency data like electricity and logs.

ModelPoint ForecastProbabilistic ForecastInsample fitted valuesProbabilistic fitted valuesExogenous features
MSTL✅✅✅✅If trend forecaster supports
MFLES✅✅✅✅✅
TBATS✅✅✅✅

GARCH and ARCH Models

Suited for modeling time series that exhibit non-constant volatility over time. The ARCH model is a particular case of GARCH.

ModelPoint ForecastProbabilistic ForecastInsample fitted valuesProbabilistic fitted valuesExogenous features
GARCH✅✅✅✅
ARCH✅✅✅✅

Baseline Models

Classical models for establishing baseline.

ModelPoint ForecastProbabilistic ForecastInsample fitted valuesProbabilistic fitted valuesExogenous features
HistoricAverage✅✅✅✅
Naive✅✅✅✅
RandomWalkWithDrift✅✅✅✅
SeasonalNaive✅✅✅✅
WindowAverage✅
SeasonalWindowAverage✅

Exponential Smoothing

Uses a weighted average of all past observations where the weights decrease exponentially into the past. Suitable for data with clear trend and/or seasonality. Use the SimpleExponential family for data with no clear trend or seasonality.

ModelPoint ForecastProbabilistic ForecastInsample fitted valuesProbabilistic fitted valuesExogenous features
SimpleExponentialSmoothing✅✅
SimpleExponentialSmoothingOptimized✅✅
SeasonalExponentialSmoothing✅✅
SeasonalExponentialSmoothingOptimized✅✅
Holt✅✅✅✅
HoltWinters✅✅✅✅

Sparse or Inttermitent

Suited for series with very few non-zero observations

ModelPoint ForecastProbabilistic ForecastInsample fitted valuesProbabilistic fitted valuesExogenous features
ADIDA✅✅✅
CrostonClassic✅✅✅
CrostonOptimized✅✅✅
CrostonSBA✅✅✅
IMAPA✅✅✅
TSB✅✅✅

🔨 How to contribute

See CONTRIBUTING.md.

Citing

@misc{garza2022statsforecast,
    author={Azul Garza, Max Mergenthaler Canseco, Cristian Challú, Kin G. Olivares},
    title = {{StatsForecast}: Lightning fast forecasting with statistical and econometric models},
    year={2022},
    howpublished={{PyCon} Salt Lake City, Utah, US 2022},
    url={https://github.com/Nixtla/statsforecast}
}

Contributors ✨

Thanks goes to these wonderful people (emoji key):

This project follows the all-contributors specification. Contributions of any kind welcome!

arima
automl
baselines
data-science
econometrics
ets
exponential-smoothing
fbprophet
forecasting
machine-learning
mstl
naive
neuralprophet
predictions
prophet
python
seasonal-naive
statistics
theta
time-series

Project health

Overall

7.6/10

Maintained

10/10

Code review

10/10
OpenSSF Scorecard

Latest release

2.1.1 · Jul 16, 2026

Releases this year

3

Significant stargazers

(top 24 of 39)

Ferhat Elmas

329 followers · starred Sep 2023

Alexandre Dulaunoy

1,488 followers · starred Jun 2025

James Lamb

759 followers · starred Jun 2024

Tobias Lütke

6,378 followers · starred Oct 2023