arch

Financial econometrics in Python: ARCH/GARCH volatility models, unit root tests, and bootstrapping.

Library
PyPI
v8.0.0
1,552stars
NCSA

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum.How we score it →
85/100Excellent
Development Activity84
Maintenance76
Community80
Maturity60
Momentum40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation.How we score it →
79/100Good
Architecture86
Code Quality88
Innovation80
Learning Curve62

arch is a comprehensive Python library for financial econometrics and time-series analysis of volatility. It provides a rich family of univariate ARCH and GARCH models for estimating and forecasting conditional variance, the backbone of modern risk and volatility modeling in finance.

Beyond volatility models, arch bundles unit root tests, cointegration testing, long-run covariance estimation, and a flexible bootstrapping framework with multiple-comparison procedures such as the Reality Check, SPA, StepM, and the Model Confidence Set. Performance-critical routines are accelerated with Cython and Numba.

What You Get

  • Univariate ARCH/GARCH volatility models with flexible mean and error specifications
  • Volatility forecasting with analytic and simulation-based methods
  • Unit root tests (ADF, DF-GLS, Phillips-Perron) and cointegration analysis
  • A bootstrapping framework for time series and IID data
  • Multiple-comparison procedures: Reality Check, SPA, StepM, and Model Confidence Set

Common Use Cases

  • Estimating and forecasting asset-return volatility with GARCH models
  • Testing time series for unit roots and cointegration
  • Computing bootstrap confidence intervals for financial statistics
  • Comparing forecasting or trading models with multiple-comparison tests

Under The Hood

Architecture - The library is organized into focused subpackages: univariate builds volatility models from interchangeable mean, volatility-process, and distribution components; unitroot implements the stationarity and cointegration tests; bootstrap provides IID and time-series resampling with the multiple-comparison procedures; and covariance handles long-run covariance estimation. Models return rich result objects with parameter estimates, standard errors, and forecasting methods.

Tech Stack - Python 3 built on the scientific stack: NumPy, pandas, SciPy, and statsmodels, with Cython and/or Numba compiling hot loops for speed. It is packaged with Meson and ships a py.typed marker for full type-hint support.

Code Quality - The project is mature and rigorously engineered, with codecov-tracked coverage, an extensive tests/ suite per subpackage, static typing, and CI across platforms. Its strong maintenance and community health scores reflect active, disciplined development by Kevin Sheppard.

API Design - The API follows statsmodels conventions familiar to Python econometricians: construct a model (e.g. arch_model), call fit(), and inspect a results object or call forecast(). Combining mean/volatility/distribution components is powerful yet readable, and the extensive documentation with worked notebooks smooths the moderate learning curve inherent to the domain.

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers

Search