Quant tools › Volatility
Volatility (GARCH)
Explore how variability changes over time. Fitting a series needs sign-in; the explanation below does not.
Data: company-linked historical prices are currently unavailable on FinSavoir. Upload or paste a supported price or return series below.
About this tool
What it does
Many financial series have calm stretches and turbulent stretches: large moves tend to follow large moves. GARCH(1,1) is a standard model of that pattern. Fitted to your series, it estimates the current level of volatility, the long-run level it tends to return to, and a forecast for the next periods.
Volatility measures how large the movements are, not which way they go. A high volatility says nothing about whether prices will rise or fall.
When it is useful
- Checking whether recent movements are larger or smaller than the series' usual level.
- Seeing how quickly a burst of volatility tends to fade (the half-life).
- Getting a model-based volatility estimate to use, for example, as an input to the option tools.
- Return
- The change from one observation to the next. The tool uses log returns: the natural logarithm of today's price over the previous one (0.01 is about 1%).
- Variance and volatility
- Variance is the average squared return, in squared return units per period. Volatility is its square root, in return units (shown as %). Annualised volatility scales it to a year.
- Persistence
- How long a shock to volatility lasts. Close to 1 means bursts fade slowly.
Inputs
| Input | Unit | What it means |
|---|---|---|
| Series | one line per observation: YYYY-MM-DD,value | Paste it, or upload a .csv or .txt file of up to 2 MB. A header line is ignored. Dates must increase. |
| Length | 251 to 10,000 rows | At least 250 returns are needed (251 prices). Fewer than that and the fit is refused. |
| Frequency | daily, weekly or monthly | Worked out from the spacing of your dates; the series must keep one frequency. Gaps are reported, never filled. |
| What the values are | prices or returns | Prices (for example daily closes): the tool computes log returns. Returns: per-period log returns as decimals (0.01 = 1%). |
| Adjusted for splits and dividends? | prices only | Use adjusted prices when you can: a stock split in unadjusted prices looks like a huge one-day move. |
| Forecast horizon | 1 to 250 periods | How many periods ahead to forecast, in the series' own frequency. |
Reading the results
- Last annualised volatility
- The model's estimate of current volatility, expressed per year (%).
- Long-run annualised volatility
- The level the forecast drifts back to over time. Not defined when persistence is at the stationarity limit.
- Persistence and half-life
- Persistence (α + β) near 1 means volatility bursts last; the half-life is how many periods it takes for half of the gap to the long-run level to close.
- Forecast table
- Per step: variance (per period, squared return units), volatility per period (its square root) and annualised volatility (per-period volatility × √periods per year: 252 daily, 52 weekly, 12 monthly).
- Diagnostics
- Warnings appear in plain words when the fit did not converge, when persistence is at the limit (long-run level and longer forecasts unreliable), when clustering is left unexplained, or when the residuals do not behave as the model expects.
Educational example (illustrative numbers, not market data)
- Use "Fill in a synthetic example series" in the tool: 600 generated daily prices with a calm first half and a more volatile second half. They are made up to show the behaviour; they are not any company's prices.
- Suppose a fit reports last annualised volatility 32%, long-run 20% and a half-life of 15 periods (illustrative figures). Recent swings are then larger than the series' usual level, and the forecast moves back towards 20%, about half of the way in 15 trading days.
- If the diagnostics warn that persistence is at the limit, read the long-run level and long horizons as unreliable and look at the short end of the forecast only.
Assumptions and limitations
- The model looks only at the series you supply and its past; it does not know about news, earnings or events.
- GARCH(1,1) with a zero mean and a normal-distribution likelihood: it understates the chance of very large moves in many real series.
- One fixed frequency; gaps, splits in unadjusted prices and very short series weaken the fit.
- Company-linked historical prices are currently unavailable on FinSavoir, so the tool works on a series you supply. Nothing you paste or upload is stored.
Methodology and validation
- GARCH(1,1) (Bollerslev 1986) with zero conditional mean, fitted by Gaussian quasi-maximum likelihood; diagnostics include a Ljung–Box test on squared standardised residuals.
- Annualisation multiplies per-period variance by the periods per year (252, 52 or 12) before taking the square root.
- FinSavoir's own evaluation compares GARCH(1,1) with a rolling-variance baseline on daily changes in the 10-year U.S. Treasury yield, the one long daily series it holds under permitted terms. That is evidence about that series only; it is not a test on stock prices.
Validation results: Model performance · formulas and rules: Methodology
Fit a series you supply
At most 10,000 rows; at least 251. Dates must increase; the frequency (daily, weekly or monthly) is inferred and gaps are reported, never filled. Nothing you paste is stored.