# arch

GARCH and the rest of the volatility-model family, plus the tests you need around them.

*https://stockmarketstack.com/tools/arch · Market Analysis & Portfolio Optimization Libraries*

## Facts

### At a glance

| Field | Value |
| --- | --- |
| Vendor | Kevin Sheppard |
| Category | Market Analysis & Portfolio Optimization Libraries |
| Job | quant_models |
| Website | https://github.com/bashtage/arch |
| Pricing model | open-source |
| Free tier | true |
| Open source | true |
| Licence | NCSA |
| Self-hosted | true |
| Tested hands-on | false |
| Last updated | 2026-09-19 |

### Coverage

| Field | Value |
| --- | --- |
| Asset classes | stocks, etf, indices, forex, crypto, commodities |
| Markets | global |
| Works outside the US | true |
| Data latency | none |
| Platforms | library |
| AI features | none |

### Interfaces

| Field | Value |
| --- | --- |
| API | false |
| Webhooks | false |
| Scripting | Python |
| Python | true |
| Spreadsheet add-in | false |
| MCP server | false |
| Export | none |

### Capabilities

Yes: none

No: charting, screening, scanning, backtesting, automation, live_trading, paper_trading, portfolio_tracking, broker_import, tax_reporting, alerts, news, options_analysis

*Verified: pricing 2026-09-19; capabilities 2026-09-19; coverage 2026-09-19.*

## What it is

`arch` fits conditional volatility models to a return series. `arch_model(returns).fit()` gets you
a GARCH(1,1) with a constant mean and normal errors in one line, and every part of that is
swappable: the mean model (constant, zero, AR, HAR, least squares, with or without exogenous
regressors), the volatility process (ARCH, GARCH, EGARCH, APARCH, FIGARCH, HARCH, MIDAS
hyperbolic, EWMA/RiskMetrics, RiskMetrics 2006, fixed variance) and the error distribution
(normal, Student's t, skew-t, generalised error).

It is written by Kevin Sheppard, an econometrician at Oxford, and it shows: the estimators are the
ones from the literature, the standard errors are the robust ones, and the parameter tables print
like a paper rather than like a dashboard. Cython and optional Numba do the recursion.

Three other modules travel with it and are worth the install on their own. **Unit root and
cointegration**: augmented Dickey-Fuller, DF-GLS, Phillips-Perron, KPSS, Zivot-Andrews and variance
ratio tests, Engle-Granger and Phillips-Ouliaris cointegration tests, and CCR, dynamic OLS and
fully modified OLS estimators. **Bootstrap**: IID, stationary, circular block and moving block,
with confidence intervals for any statistic you can write as a function — a Sharpe ratio, for
instance. **Multiple comparison**: Hansen's SPA and the Reality Check, StepM and the Model
Confidence Set, which is the correct answer to "I tested two hundred strategies and one looked
great".

**Repository state on 19 September 2026.** Version 8.0.0 was released on 21 October 2025 and is
still the current one; the last commit to `main` was 14 September 2026, there were 27 open issues,
and the repository is not archived. That September date flatters it, though: it is Dependabot
bumping `cibuildwheel`, as is everything else on `main` since mid-June 2026, and the last commit
that touched the library was a division-warning fix on 16 June. Kevin Sheppard is the sole
maintainer. 8.0.0 was largely a compatibility release — the build moved to Meson, the Python floor
rose from 3.9 to 3.10, Python 3.14 wheels appeared, and the code was made ready for NumPy 2.4 and
pandas 3.

## Pricing

Free under the NCSA licence, with nothing to buy. Thirty-one files ship per release: wheels for
CPython 3.10 through 3.14 across the usual platforms, plus a source distribution. conda-forge
carries it as `arch-py`, which is worth knowing because the import is still `arch`.

## Data & coverage

No market data, but unusually for a library in this category it bundles example datasets — S&P 500
and NASDAQ prices, the VIX, WTI and crude, Fama-French factors, core CPI and two cross-sectional
sets — so the documentation examples run offline. Everything else is a returns series you supply.
The models are indifferent to what produced it.

## Limitations

- Univariate only. No DCC, no BEKK, no multivariate volatility of any kind.
- Estimation is maximum likelihood with no Bayesian option, and long or awkward series can hit
  convergence problems that the package reports honestly and does not solve for you.
- The README's quick-start example still fetches FTSE prices through `pandas_datareader` with an
  end date of 2014. `pandas_datareader` is not a dependency, so the first example a new user
  copies does not run on a clean install.
- Forecasting has real footguns — analytic versus simulation versus bootstrap forecasts differ,
  and only simulation and bootstrap work for the asymmetric models. The documentation covers this;
  the API will not stop you.
- Releases are roughly yearly, so a NumPy or pandas break can sit unreleased for months even while
  `main` has the fix.

## Alternatives

statsmodels covers the time-series ground around it — ARIMA, VAR, state space — and is a
dependency of `arch` rather than a competitor, so the two are installed together anyway. For
pricing models rather than volatility estimation, [QuantLib](https://stockmarketstack.com/tools/quantlib). Anyone who only
wants a rolling standard deviation should stop at pandas; `arch` earns its place when the question
is whether volatility clusters, persists or reacts asymmetrically to losses.

## FAQ

### Is arch still maintained?

Yes, by one person, but read the log rather than the date. Kevin Sheppard released 8.0.0 on 21 October 2025; the last commit to main was 14 September 2026, there were 27 open issues and no archive notice. Everything on main since mid-June 2026 is Dependabot and Snyk bumping CI actions, and the last change to the library itself was a division-warning fix on 16 June 2026. Mature and slow, not abandoned.

### Does arch do multivariate GARCH — DCC or BEKK?

No. The package ships univariate volatility models only; there is no multivariate module in the source tree. Fitting a correlation model across several assets means another library or your own code.

### What licence is arch under?

The University of Illinois/NCSA Open Source License, SPDX identifier NCSA — not MIT or BSD, although it reads like a combination of the two. It is permissive, OSI-approved and not copyleft, requiring attribution and forbidding use of the author's name to endorse derived products.

### What else is in the package besides GARCH?

Four more modules that get used independently — unit-root tests (ADF, DFGLS, Phillips-Perron, KPSS, Zivot-Andrews, variance ratio), cointegration tests and estimators, a bootstrap module with IID, stationary and block bootstraps, and Hansen's SPA, StepM and the Model Confidence Set for comparing many strategies at once without fooling yourself.

## Also worth comparing

- [QuantLib](https://stockmarketstack.com/tools/quantlib.md) — The open-source derivatives pricing library banks actually use, reachable from Python.
- [empyrical-reloaded](https://stockmarketstack.com/tools/empyrical-reloaded.md) — The maintained fork of Quantopian's empyrical — risk statistics, no plots.
- [ffn](https://stockmarketstack.com/tools/ffn.md) — Performance stats, drawdowns and portfolio weights from a DataFrame of prices.
- [pandas-ta](https://stockmarketstack.com/tools/pandas-ta.md) — The DataFrame indicator library whose repo is gone and whose last release is a year old.
- [PyPortfolioOpt](https://stockmarketstack.com/tools/pyportfolioopt.md) — Prices in, weights out — efficient frontier, Black-Litterman and HRP.
- [QuantStats](https://stockmarketstack.com/tools/quantstats.md) — HTML tearsheets and about eighty risk metrics from one pandas series of returns.
