
1.6k stars · NCSA · v8.0.0 (2025-10-21) · Track this in Rising ↗
GARCH volatility models plus White's reality check and the Politis-Romano-Wolf stepwise test — regime filters, and a way to tell skill from search luck.
Radar check
What we found when we opened it. Every bar is one fact, with its date.
Last code pushed 25 Oct 2026, 2 days before this check.
Latest release v8.0.0 on 21 Oct 2025.
Public since August 2014, a little over 12 years.
1,642 stars and 314 forks.
563 commits and 9 new issues in the last 90 days.
55 contributors. 108 pull requests merged in 90 days.
A security policy 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 6.
▶Repo detailsthe review · specs · pros & cons · install
What it does
It fits volatility models, the family of statistical models that describe how much a price moves and how that changes over time, and it forecasts that movement forward. It runs unit-root tests, the standard checks for whether a series drifts or returns to a level. It also has a resampling module that includes the published tests for the many-comparisons problem, including White's reality check and the Politis–Romano–Wolf stepwise test. Input and output are ordinary tables, so it fits into an existing pipeline without a new way of working. The newest release is v8.0.0, from 21 October 2025, but the code is being worked on steadily and was last changed on 8 October 2026. The licence is NCSA, a permissive licence in the style of MIT with a clause about not implying endorsement. What it does not do is say anything about direction: it measures risk and reliability, never which way a price will go.
Why it matters
Who it suits. Anyone running many backtests and ready to be honest about the result. Two concrete uses. Fit a volatility model, join its output to the trades, and the question "does this only work when the market is busier than usual?" can finally be answered, which is often where a mediocre rule becomes a usable one with a filter in front. And the reality check is the published test for whether a winner beat its benchmark by skill or by sheer number of attempts. Skip it if there is only one strategy and no intention of testing many.
Verdict. Worth a week, and it is the entry most likely to need a tutor rather than a typist, because the documentation assumes the reader knows what a conditional variance model is. The release number is the oldest on this page, from October 2025, but the code is clearly alive: the last change was four days ago. The licence is permissive, so it can ship inside a paid feature. statsmodels/statsmodels is the general library beside it, by the same maintainer.
Summary (Key Points)from the README
Key features
- Univariate volatility models: ARCH, GARCH, TARCH, EGARCH and EWMA/RiskMetrics, with constant, HAR, AR or zero mean and optional exogenous regressors.
- Error distributions: Normal, Student's T and Generalized Error Distribution for volatility models.
- Unit root tests: Augmented Dickey-Fuller, Dickey-Fuller GLS, Phillips-Perron, KPSS, Zivot-Andrews and Variance Ratio tests.
- Cointegration: Engle-Granger and Phillips-Ouliaris tests, plus Canonical Cointegrating Regression, Dynamic OLS and Fully Modified OLS estimation.
- Bootstrapping: IID, stationary, circular block and moving block bootstraps, with confidence interval construction, covariance estimation and a generic bootstrap iterator.
- Multiple comparison procedures: Test of Superior Predictive Ability (Reality Check), Stepwise (StepM) and Model Confidence Set (MCS).
- Long-run covariance estimation: Kernel-based estimators, including the Bartlett kernel known as Newey-West, with automatic bandwidth selection for all of them.
- Performance: Cython and/or Numba are used to speed up computation.
Ways to install
| Platform or method | What it needs | Effort |
|---|---|---|
| pip from PyPI | Wheels for Linux, macOS and Windows; no compiler needed | Low |
| pip from the GitHub source | A C compiler; pip installs Cython, meson-python and NumPy | Medium |
| pip with `-Csetup-args="-Dno-binary=true"` | Skips compiled extensions; still needs a C compiler and Cython | Medium |
| conda-forge (package name `arch-py`) | Anaconda or conda | Low |
| Windows from source | Visual Studio Build Tools (free community edition is enough) | High |
Important
- Python version: arch supports Python 3.10 to 3.15 only. Version 4.8 was the last to support Python 2.7.
- NumPy 1.x: Version 9.0 is the last release supporting Python 3.10 and NumPy 1.x; later releases raise minimum versions.
- Minimum versions: NumPy 1.22.3+, SciPy 1.8+, pandas 1.4+ and statsmodels 0.13.1+. Older versions may work but are untested.
- Slow fallback: Without the binary modules and without Numba, the recursions run in pure Python, which is much slower.
- Numba: Optional (0.55+). It is used only when installed and when the binary modules are not built.
- Notebooks: Running the example notebooks requires jupyter and notebook.
- Source builds: Even the no-binary build needs a C compiler and Cython, because the build checks for them.
Written by an AI model from the project’s README; not part of the review, and it can be wrong.
- The standard, careful implementation, by a core maintainer of the main Python statistics library.
- A permissive licence, so it can ship inside a paid feature.
- Tables in, tables out, so it fits an existing backtest pipeline without changing how it works.
- Genuinely statistical software; the documentation assumes real background knowledge.
- The newest release is from October 2025, almost a year old, although the code is still changing weekly.
- It describes risk, never direction, so it will not find a strategy, only tell whether one is trustworthy.
A Procrastinate job fits a GARCH(1,1) over the price series and writes conditional volatility to a column beside the price bars, at which point every backtest gains a regime filter for free.
source venv/bin/activate pip install arch
