Realized volatility and expected-move maths, from daily closes
How realized volatility is computed from daily closes, how it turns into a one-day or one-month range, and how often the S&P 500 stayed inside that range from 22 July to 20 October 2026.
By PYE Markets • Published 2026-10-21 • 5 min read
Key points
- The S&P 500’s 20-day realized volatility to 20 October 2026 was 9.12%, its 60-day figure 11.00% and its one-year figure 12.71% (our calculation from Yahoo Finance daily closes).
- On the 20 October 2026 close of 7,712.57, 9.12% annualized is a one-standard-deviation day of about ±44 points (7,712.57 × 9.12% ÷ √252).
- From 22 July to 20 October 2026, the S&P 500 closed inside the ±1 standard deviation range from the prior day’s 20-day realized volatility in 45 of 64 sessions (70%), and inside ±2 in 57 (89%).
- Under a normal distribution those shares would be about 68% and 95%; the 22 July–20 October 2026 shortfall at two standard deviations is the fat tails that realized volatility does not capture.
Volatility is the number traders use to say how big a normal move is. Two kinds get quoted. One is read from option prices and describes the move the options market is paying for in the weeks ahead. The other, realized volatility, is computed from prices that have already printed and describes how much the market actually moved. This piece works only with the second, because it can be rebuilt by anyone from daily closes: how to compute it, how the window length changes the answer, how it turns into a range in index points, and how that range held up for the S&P 500 over the three months to 20 October 2026. All arithmetic is ours and is shown so it can be redone.
Two kinds of volatility, and the one we print
Volatility priced into options comes from option quotes through a pricing model, and every options platform calculates its own version. Realized volatility needs nothing but a list of closing prices. On PYE Markets we print only realized volatility, computed from daily closes and labelled as our calculation, so every figure can be checked against the closes it came from.
The two are related but answer different questions. Option-based volatility looks forward and includes what traders are willing to pay for protection. Realized volatility looks back over a fixed window. A gap between them is normal, and its size changes over time; this piece does not try to measure it.
How 20-day realized volatility is computed
Realized volatility is the standard deviation of past returns, scaled to a year. The steps are listed below.
The 20-day window ending on 20 October 2026 runs from the 23 September session to the 20 October session, with the 22 September close of 7,764.64 as the starting price. The sample standard deviation of those 20 daily log returns was 0.5744%. Multiplying by √252 (15.875) gives 0.5744 × 15.875 = 9.12% annualized.
The √252 factor treats a year as 252 trading sessions, the usual convention for returns measured from daily closes: returns only exist on days the market is open.
- Take 21 consecutive daily closes, which give 20 close-to-close returns.
- For each session, compute the log return: ln(close today ÷ close yesterday).
- Take the sample standard deviation of the 20 returns (dividing by 19, not 20).
- Annualize: multiply by √252.
The window changes the answer
There is no single correct window. A short window reacts quickly to a change in the market and is noisy; a long one is steadier and slow to notice that conditions have changed. The table shows the S&P 500’s 10-, 20- and 60-day realized volatility on five dates, all computed the same way from Yahoo Finance daily closes.
On 18 August 2026 the 10-day figure was 7.07% while the 20-day was 13.58%: the larger moves of late July had dropped out of the shorter window but were still in the longer one. By 1 September the 20-day figure had fallen to 7.37%, while the 60-day stayed at 12.58%. On 20 October 2026 the three windows gave 9.52%, 9.12% and 11.00%, and the full year to 20 October (250 returns from 22 October 2025) gave 12.71%.
Which window a range is built from is a choice, and it is worth stating next to any range quoted from realized volatility.
| Date | S&P 500 close | 10-day | 20-day | 60-day |
|---|---|---|---|---|
| 18 Aug 2026 | 7,691.76 | 7.07% | 13.58% | 13.64% |
| 1 Sep 2026 | 7,631.47 | 8.04% | 7.37% | 12.58% |
| 16 Sep 2026 | 7,551.81 | 10.10% | 8.89% | 11.15% |
| 1 Oct 2026 | 7,666.45 | 10.28% | 10.69% | 11.16% |
| 20 Oct 2026 | 7,712.57 | 9.52% | 9.12% | 11.00% |
Turning volatility into an expected move
An annualized volatility becomes a one-standard-deviation move over a horizon by scaling it with the square root of time: move ≈ S × (vol ÷ 100) × √(sessions ÷ 252). With the S&P 500 close of 7,712.57 on 20 October 2026 and 20-day realized volatility of 9.12%:
One session: 9.12 ÷ 15.875 = 0.574%, and 7,712.57 × 0.574% ≈ ±44 points. Twenty-one sessions, roughly a calendar month: 9.12 × √(21/252) = 2.63%, about ±203 points. With the 60-day figure of 11.00% instead, the one-session range widens to 7,712.57 × 11.00% ÷ 15.875 ≈ ±53 points.
The square-root rule assumes each day’s move is independent of the last and drawn from the same distribution. Neither holds exactly, so these ranges describe a typical day under recent conditions, not a limit.
A note on the calendar. Because realized volatility from closes is measured per trading session, it scales with √252. Option-based figures are often annualized over 365 calendar days instead, which is why ranges quoted on a calendar-day basis come out smaller for the same annual number: 9.12 ÷ √365 = 0.48%, or about ±37 points. Mixing the two conventions is a common source of mismatched ranges.
How often the S&P 500 stayed inside the range
We took every session from 22 July to 20 October 2026, 64 in all, and compared the S&P 500’s close-to-close change with a range built only from information available the evening before: the previous close times the previous day’s 20-day realized volatility, divided by √252.
The index closed inside ±1 standard deviation in 45 of the 64 sessions (70%) and inside ±2 standard deviations in 57 (89%). If daily returns followed a normal distribution with exactly that volatility, the shares would be about 68% and 95%. The one-standard-deviation count is close to that; the two-standard-deviation count is not, which is the familiar pattern of fat tails: large days arrive more often than a normal curve allows.
The largest misses show why. On 21 September 2026 the index rose 114.20 points against a range of ±45.19, about 2.5 standard deviations. On 29 July it fell 112.63 points against ±44.68, and on 30 July it rose 121.48 points against ±48.29. Each came after a run of quiet sessions had pulled the 20-day figure down. Realized volatility only learns about a large move after it has happened. Sixty-four sessions are too few to measure tail frequency, so we draw nothing from these counts beyond what they show.
Single stocks and other markets
The method is the same for any instrument with daily closes: a single stock, a futures contract, a currency pair or bitcoin. Two adjustments matter. A market that trades every day of the week, such as bitcoin, has about 365 return days a year, not 252, so its annualization factor is √365. And a stock’s realized volatility jumps when an earnings release falls inside the window, then drops 20 sessions later when that day leaves it, with no change in the business.
Option-based measures such as IV rank and how ranges feed into spread construction are covered in our earlier piece at /articles/options-trading-expected-move-iv-rank-vertical-spreads.
Check the numbers yourself
Download the S&P 500 (^GSPC) daily history from Yahoo Finance and put the closes in a spreadsheet. In a new column compute ln(close ÷ previous close). STDEV.S over 10, 20 or 60 of those cells, times SQRT(252), reproduces the table. For each day’s range, multiply the previous close by the previous day’s 20-day figure, divide by SQRT(252), and count how often the absolute change stayed inside it, and inside twice it.
Our /markets page shows the latest closes and daily ranges with their dates and sources.
Sources
- Yahoo Finance daily closes (delayed), S&P 500 (^GSPC), chart API, one year to 20 Oct 2026 (accessed 2026-10-20)
- Yahoo Finance: S&P 500 (^GSPC) historical data (accessed 2026-10-20)
Tags: Volatility · Realized volatility · Expected move · S&P 500
General market information, not investment advice. Figures are from the primary sources listed at the end of the piece, with the date of each.