Skip to main content
v2026.11,858 entries · CC-BY 4.0
LAC HealthMedical & Research SuppliesReagents, PPE & instruments — chain-of-custody documented.Fast, traceable sourcing built for regulated research environments, from bench consumables to instrumentation.Shop lac.us CodeCASRAIlac.us

GARCH Model: Formula, Persistence and Worked Example

GARCH(1,1) formula with every symbol, a worked variance forecast, persistence and half-life, and R and Python code.

Written and maintained by CASRAI Editorial Board

Last updated

A GARCH model (generalized autoregressive conditional heteroskedasticity) forecasts how large the next period’s variance of a series, usually financial returns, is likely to be, using the previous squared shock and the previous variance. It exists because volatility clusters: large changes tend to be followed by large changes. This guide gives the GARCH(1,1) formula with every symbol explained, a worked example with the arithmetic shown, a reading table for the parameters, and matching R and Python code.

What is a GARCH model?

A GARCH model describes the conditional variance of a time series: the variance at time t given what is already known at t−1. In the standard (sGARCH) specification, today’s conditional variance is a weighted sum of a constant, the previous squared residual (the ARCH term) and the previous conditional variance (the GARCH term). The rugarch package documentation states that volatility clustering is the feature of financial data that GARCH models capture, and that it is quantified by the persistence parameter.

ARCH vs GARCH

An ARCH(q) model uses only lagged squared residuals. GARCH(p,q) adds p lagged conditional variances as well, which lets a short model describe slowly decaying volatility. ARCH is credited to Engle (1982) and GARCH to Bollerslev (1986); the GARCH order is written (p, q), where p counts variance lags and q counts squared-residual lags.

GARCH(1,1)

GARCH(1,1) has one lag of each term and is the default in common software. When people write “GARCH model” without an order, they usually mean this one.

GARCH model formula and symbols

The Python arch package documentation writes the GARCH(1,1) model with a constant mean as:

  • rt = μ + εt
  • εt = σt et
  • σt2 = ω + α εt−12 + β σt−12
Symbol Meaning
rt Return (the observed series) at time t
μ Constant mean of the returns
εt Residual (shock): the return minus its mean
σt Conditional volatility; σt2 is the conditional variance
et Standardized residual (the random innovation)
ω, α, β Volatility parameters: the intercept, the weight on the last squared shock, and the weight on the last variance

For the general sGARCH model the rugarch vignette writes σt2 = ω + Σ αj εt−j2 + Σ βj σt−j2, with the sums over the ARCH and GARCH lags. Three quantities derived from the fitted parameters are used to interpret the model:

  • Persistence: P = Σαj + Σβj, which is α + β for GARCH(1,1) (vignette eq. 11).
  • Half-life: h = −ln 2 / ln P, the number of periods for half of the expected reversion toward the long-run variance to occur (eq. 12).
  • Unconditional variance: ω / (1 − P) (eq. 13).

GARCH model worked example

Illustrative numbers, not estimated from real data. Suppose daily returns are in percent, so variances are in percent squared, and a fitted GARCH(1,1) has ω = 0.05, α = 0.10 and β = 0.85. Yesterday’s residual was εt−1 = −1.5 and yesterday’s conditional volatility was σt−1 = 1.2, so σt−12 = 1.44.

  1. Next-day variance: σt2 = 0.05 + 0.10 × (−1.5)2 + 0.85 × 1.44 = 0.05 + 0.10 × 2.25 + 1.224 = 0.05 + 0.225 + 1.224 = 1.499. The conditional volatility is √1.499 ≈ 1.224 percent.
  2. Persistence: P = 0.10 + 0.85 = 0.95.
  3. Unconditional variance: 0.05 / (1 − 0.95) = 0.05 / 0.05 = 1.00, a long-run volatility of 1 percent.
  4. Half-life: −ln 2 / ln 0.95 = 0.6931 / 0.0513 ≈ 13.5 periods (days here).

The forecast of 1.499 sits above the long-run variance of 1.00 because yesterday’s shock was large; with P = 0.95 the variance decays back toward 1.00, with half of the expected reversion complete after about 13.5 days.

How to interpret GARCH parameters

Quantity How to read it (from the definitions above)
α (ARCH term) Weight on the last squared shock: how strongly a new surprise moves next-period variance
β (GARCH term) Weight on the last conditional variance: how much of yesterday’s variance carries forward
P = α + β Persistence: the measure of volatility clustering
Half-life Periods for half the expected reversion toward the long-run variance; computable from P
ω / (1 − P) Unconditional (long-run) variance implied by the fitted parameters
P = 1 (iGARCH) Integrated GARCH (Engle and Bollerslev, 1986) imposes P = 1; the unconditional variance and half-life cannot then be calculated

Assumptions and common mistakes

  • Fit the volatility model to the residuals of a mean model. The equations above model the residual εt = rt − μ; check first that the series is not driven by leftover autocorrelation (see autocorrelation in time-series data).
  • Do not confuse volatility modelling with fixing standard errors. Tools such as the Breusch-Pagan test or robust standard errors address heteroskedasticity in a regression; a GARCH model instead makes the changing variance itself the object of the forecast.
  • Do not read a persistence of 1 as an ordinary result. Under iGARCH the long-run variance and half-life are undefined, so report them only for P < 1.
  • Units matter. The intercept ω is in squared units of the data, so percent returns and decimal returns give different ω values for the same process.
  • Do not treat the one-step formula as the whole model. Parameters are estimated jointly by the software; the formula only recomputes variances once estimates exist.

How to report a GARCH model (APA example)

State the specification, the estimator, and the parameter estimates with their standard errors, then the derived persistence. An example wording, using the illustrative values above and italicized statistical symbols:

A GARCH(1,1) model with a constant mean was fitted to daily percentage returns. The ARCH coefficient was α = 0.10 and the GARCH coefficient was β = 0.85, giving persistence P = 0.95 and a volatility half-life of 13.5 days. [Add standard errors, p values and the software and version used.]

How to calculate a GARCH model in Excel, R or Python

Excel

Excel has no built-in GARCH estimator, so the parameters must come from R, Python or another package. Once you have ω, α and β in cells B1, B2 and B3, the variance recursion is a single formula. With residuals in column C and variances in column D, the formula for row 3 is:

=$B$1 + $B$2*C2^2 + $B$3*D2

Persistence is =B2+B3, the unconditional variance is =B1/(1-(B2+B3)) and the half-life is =-LN(2)/LN(B2+B3).

R (rugarch)

library(rugarch)
spec <- ugarchspec(variance.model = list(model = "sGARCH", garchOrder = c(1, 1)),
                   mean.model = list(armaOrder = c(0, 0)))
fit <- ugarchfit(spec = spec, data = returns)
fit

Python (arch)

from arch import arch_model
am = arch_model(returns, mean="Constant", vol="GARCH", p=1, q=1)
res = am.fit()
print(res.summary())

Here returns is a pandas Series of percentage returns. For other free tools, see free statistical software for research.

GARCH model FAQ

What does a GARCH model do?

It models and forecasts time-varying variance (volatility) in a series, capturing the tendency of large moves to cluster together.

What is the difference between ARCH and GARCH?

ARCH uses only past squared shocks; GARCH also uses past conditional variances, so it can represent persistent volatility with fewer parameters.

What does a high persistence mean?

A P = α + β close to 1 means shocks to volatility fade slowly; the half-life formula −ln 2 / ln P quantifies how slowly.

Is GARCH(1,1) enough?

It is the common default order in software; higher orders and variants such as iGARCH are available when the data call for them.

Sources

  • Ghalanos, A. Introduction to the rugarch package, section 2.2 (standard GARCH, persistence, half-life, iGARCH). CRAN vignette. https://cran.r-project.org/web/packages/rugarch/vignettes/Introduction_to_the_rugarch_package.pdf (read 2026-11-07).
  • arch Python package documentation, Univariate Volatility Models: Introduction. https://arch.readthedocs.io/en/latest/univariate/introduction.html (read 2026-11-07).
  • Bollerslev, T. (1986). Generalized autoregressive conditional heteroskedasticity. Journal of Econometrics, 31, 307–327.
  • Engle, R. F. (1982). Autoregressive conditional heteroscedasticity with estimates of the variance of United Kingdom inflation. Econometrica, 50, 987–1007.
  • Engle, R. F., & Bollerslev, T. (1986). Modelling the persistence of conditional variances. Econometric Reviews, 5, 1–50.

Follow CASRAI

Research-administration guidance, standards updates and independent tool reviews.

Ask CASRAI · free to try

Ask about GARCH Model: Formula, Persistence and Worked Example

Ask your first 2 questions free below. Subscribers get 150 a day for $29 a month.

An AI assistant specialized in research administration. It cites the sources behind every answer, labels web answers and says when it can't answer.

Answers draw on CASRAI's guides and dictionary plus the federal and funder documents we index: Federal Register, Grants.gov, Regulations.gov and UKRI.

Works on this site and inside Claude, Cursor and the AI tools you already use.

Everything CASRAI publishes — this page, the dictionary, the guides and the news — stays free to read, with no account and no card.

Referenced across the research world

University of Cambridge logoColumbia University logoCrossref logoUniversity of Edinburgh logoHarvard University logoUniversity of Oxford logoPrinceton University logoStanford School of Medicine logoUniversity College London logoORCID logoUniversity of Cambridge logoColumbia University logoCrossref logoUniversity of Edinburgh logoHarvard University logoUniversity of Oxford logoPrinceton University logoStanford School of Medicine logoUniversity College London logoORCID logo
  • University of Cambridge logo
  • Columbia University logo
  • Crossref logo
  • University of Edinburgh logo
  • Harvard University logo
  • University of Oxford logo
  • Princeton University logo
  • Stanford School of Medicine logo
  • University College London logo
  • ORCID logo

View CASRAI adoption →