Loading...
Loading...
By VolRadar Editorial · published Jun 2026
Realized volatility (also called historical or actual volatility) is a backward-looking estimate of how volatile an asset’s returns have been over a recent window. Unlike implied volatility, which is forward-looking and derived from options prices, RV uses only the underlying’s own price history. It answers a different question: not “how much does the market expect this to move?”but “how much has it actually been moving?”
Comparing RV to implied volatility (IV) is one of the cleanest ways to gauge whether options are richly or cheaply priced — see our companion VRP (volatility risk premium) methodology.
The simplest RV estimator is the standard deviation of close-to-close log returns, but it ignores the information embedded in each session’s open, high and low — and it under-weights overnight gap moves. Yang and Zhang (2000) proposed an estimator that combines three components:
The three are blended with a weight that minimizes estimator variance. The result is a more efficient, drift-independent, gap-aware estimate than plain close-to-close — particularly useful for stocks where a large share of the move happens overnight (earnings drift, weekend gaps, macro events).
We use end-of-day open / high / low / close prices for each S&P 500 constituent, sourced from Polygon.io and stored in our daily_ohlc table. Prices are split-adjusted. Trading days only — no calendar-day padding.
We publish three windows on every Statistics Lab snapshot:
All three are computed on each ticker, on each trading day, by the nightly pipeline.
Volatility scales with the square root of time. We annualize the per-day Yang-Zhang variance by multiplying by 252 (trading days per year) and taking the square root, so a value of 0.18 means the asset has been moving at about 18 percent annualized volatility over the chosen window.
For the Statistics Lab pillar, per-ticker RV is aggregated into the eleven GICS sectors. The headline sector statistic is the mean of RV 20d across that sector’s S&P 500 constituents with valid data. We also report RV 10d and RV 60d sector means alongside.
The market median RV 20d is the cross-sectional median across the included universe (not the mean) — a less outlier-sensitive view of where typical names sit. Breadth reports the share of the universe trading above that median (always close to 50 percent by construction, but it shifts when the cross-section is skewed). Dispersion is the cross-sectional standard deviation of RV 20d, an “is volatility broad or concentrated?” gauge.
We tag the market state with a single label derived from the median RV 20d:
These thresholds are heuristics calibrated to long-run SPX history, not hard regulatory bands.
The universe is the active S&P 500 set. A ticker is included on a given snapshot when:
Names with missing OHLC history (recent IPOs, suspensions) drop out of that snapshot automatically. The coverage block on the pillar reports both the tracked count and the included count so the exclusion is transparent.
The pipeline updates per-ticker RV after each US trading-day close. The Statistics Lab snapshot picks the most recent date with at least one valid RV 20d row. If the latest snapshot fails validation, we serve the last-known-good snapshot with a visible “stale” banner so the data shown is always real and never invented. If no validated snapshot has ever been produced, the page renders an explicit unavailable state rather than mock numbers.
We treat the Statistics Lab as editorial reference content. If a published figure later turns out to have been computed on incomplete data (e.g. a vendor backfill arrives after publication), we re-run the snapshot and update the page. Material corrections are noted in the page’s “reviewed” date.
Source: VolRadar-computed aggregates from underlying price data.