
4.9k stars · Apache-2.0 · v2.1.1 (2026-07-16) · Track this in Rising ↗
Fast classical forecasting models (ARIMA, ETS, Theta, naive) that give a strategy a floor it has to clear.
Radar check
What we found when we opened it. Every bar is one fact, with its date.
Last code pushed 22 Oct 2026, 5 days before this check.
Latest release v2.1.1 on 16 Jul 2026.
Public since November 2021, a little over 4 years.
4,945 stars and 422 forks.
48 commits and 23 new issues in the last 90 days.
79 contributors. 48 pull requests merged in 90 days.
No security policy file says how to report a problem. No published security advisories.
How the bars are scored
- Alive. Days since the last code push: a week or less 100, a month 90, three months 70, six months 50, a year 30, eighteen months 15, older 0.
- Releases. Age of the latest GitHub release, on a similar scale; no bar when the project publishes no releases.
- Maturity. Age of the project: eight years 100, five 90, three 70, two 55, one 40, six months 25, younger 10.
- Adoption. Stars on a log scale: 100,000 stars is 100, 10,000 is 80, 1,000 is 60, 100 is 40.
- Activity. Commits in the last 90 days: 300 or more 100, 100 85, 30 65, 10 45, any 25.
- Community. People who have contributed: 100 or more 100, 30 80, 10 60, 5 40, 2 25, one 10.
- Security. A published security policy 80, none 40; published advisories are listed, not scored.
Checked by Repo Radar on 25 Oct 2026 from the repository on GitHub. Covered in Edition 14.
▶Repo detailsthe review · specs · pros & cons · install
What it does
StatsForecast is a Python library of classical statistical forecasting models. It includes ARIMA, exponential smoothing, Theta, and the naive baselines that simply repeat the last value or the value from a year ago. The models are compiled, so thousands of series can be fitted in the time other libraries take for a handful. It returns single-number forecasts and prediction intervals, which give a range rather than one figure. The same comparison can be run across many series at once. Data goes in as a table with columns named unique_id, ds and y. Version 2.1.1 was published on 16 July 2026 and code last landed on 13 October 2026. It is not a trading system: it predicts a number and decides nothing about a trade, a size or a stop.
Why it matters
Who it suits. It suits anyone testing a forecast or a signal who needs a floor to clear first. It suits long runs of regularly spaced data, such as daily prices or weekly sales. Skip it when the goal is a neural forecasting model, because Nixtla/neuralforecast from the same group covers that instead.
Verdict. Half an hour well spent before any strategy work, because a naive baseline is the cheapest honest test there is. Write the baseline numbers down, and delete anything that does not clear them rather than tuning it further. skforecast/skforecast is the one to add next, since it handles validating a model forward in time with ordinary machine-learning methods.
Summary (Key Points)from the README
Key features
- Automatic model selection: AutoARIMA, AutoETS, AutoCES, AutoTheta, AutoMFLES and AutoTBATS search for the best parameters and model for a group of univariate series.
- Broad model coverage: ARIMA, Theta variants, MSTL, MFLES, TBATS, GARCH, ARCH, baseline models, exponential smoothing and intermittent-demand models.
- Scale: The README says it can fit 1,000,000 series in 30 min with Ray and fit 10 benchmark models on 1,000,000 series in under 5 min.
- Distributed backends: Works out of the box with Spark, Dask and Ray.
- Probabilistic output: Provides probabilistic forecasts and confidence intervals, with probabilistic fitted values for many models.
- Exogenous inputs: Supports exogenous variables for several models, plus static covariates.
- Anomaly detection: Flags anomalies using in-sample prediction intervals.
- Familiar API: Uses sklearn-style `.fit` and `.predict` calls.
- Prophet replacement: The README says Prophet can be replaced in two lines of code.
Important
- Speed claims: The README's figures (20x faster than pmdarima, 1.5x faster than R, 500x faster than Prophet, 4x faster than statsmodels) are the project's own; the experiments are linked externally and not described in the README.
- Feature gaps by model: The model tables show that not every model offers every output. For example, several exponential smoothing and intermittent-demand models lack exogenous support, and MSTL's exogenous support depends on the trend forecaster.
- Univariate focus: The README describes the models as univariate time series forecasters.
- Install details missing: The README mentions an installation guide but the install commands are not shown in the text provided.
Written by an AI model from the project’s README; not part of the review, and it can be wrong.
- Extremely fast, so a baseline is cheap to run again whenever the data changes.
- The models are old, well understood and boring, which is exactly what makes them a fair comparison.
- Apache-2.0 licence, version 2.1.1 from July 2026, and code landing this month.
- These are forecasting models rather than a trading system. The trade, the size and the stop are still a person's decision.
- Market prices do not behave like the sales data these models were designed for. Treat the output as a floor to beat and never as a signal to trade.
- Data must be shaped with columns named
unique_id,dsandy, which takes a little work the first time.
source venv/bin/activate pip install statsforecast




