Automation and scraping · Edition No. 6 · 31 Aug 2026

bashtage/arch

The standard Python library for measuring market volatility and for testing whether the best of many strategies is real.

← Automation and scrapingRead the whole edition →
11

bashtage/arch

💎 hidden gem
arch: market calm, market wild, and luck. Volatility models plus the published many-comparisons tests.

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.

Verified25 Oct 2026

Radar check

What we found when we opened it. Every bar is one fact, with its date.

Alive100

Last code pushed 25 Oct 2026, 2 days before this check.

Releases25

Latest release v8.0.0 on 21 Oct 2025.

Maturity100

Public since August 2014, a little over 12 years.

Adoption64

1,642 stars and 314 forks.

Activity100

563 commits and 9 new issues in the last 90 days.

Community80

55 contributors. 108 pull requests merged in 90 days.

Security80

A security policy says how to report a problem. No published security advisories.

Licence NCSA: read the licence file before building a product on itSetup effort 2 of 5Payoff 4 of 5
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.

Stars1.6k
LicenceNCSA
Latestv8.0.0 (2025-10-21)checked 7 Sep 2026
Written inPython
NeedsPython 3
RunsLocally, on your own machine
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 methodWhat it needsEffort
pip from PyPIWheels for Linux, macOS and Windows; no compiler neededLow
pip from the GitHub sourceA C compiler; pip installs Cython, meson-python and NumPyMedium
pip with `-Csetup-args="-Dno-binary=true"`Skips compiled extensions; still needs a C compiler and CythonMedium
conda-forge (package name `arch-py`)Anaconda or condaLow
Windows from sourceVisual 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.

Setup effort
2 / 5
Payoff
4 / 5
Good
  • 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.
Watch for
  • 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.
Works well with

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.

Install
source venv/bin/activate
pip install arch
Screenshots
bashtage/arch: GitHub preview card

On Stack Radar: Data & Research › Market & Competitive Research › Market Intelligence.

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.