How to use the stock volatility calculator
The calculator has two tools. Historical volatility measures how much a stock has moved. Expected move turns a volatility figure into a price range for the future.
Historical volatility:
- Paste the closing prices, oldest first. A column copied from a spreadsheet works. Use adjusted closes if you can, so a stock split or a large dividend does not appear as a crash.
- Choose the frequency of the prices: daily, weekly or monthly. This must match the data. Daily prices labeled as weekly give a volatility that is far too low; the example’s daily closes read as weekly give 9.86% instead of 21.71%.
- Choose a rolling window for the chart, or leave it empty to see the individual returns instead.
Expected move:
- Enter the share price and an annualized volatility: the historical figure from the first tab, or the implied volatility of the stock’s options.
- Choose how to count time. Calendar days (365 a year) is the convention for option expiries. Trading days (252 a year) matches daily price data and ignores weekends.
- Enter the number of days ahead.
How volatility is calculated
σperiod = √[ Σ (rt − r̄)² ÷ (n − 1) ]
σannual = σperiod × √NPt is the closing price in period t, r̄ the average log return, n the number of returns (one fewer than the number of prices) and N the number of periods in a year: 252 for daily prices, 52 for weekly and 12 for monthly.
Log returns are used because they add up across periods and treat rises and falls symmetrically. For daily moves of a few percent they are almost identical to simple percentage returns. The largest up and down moves in the results are shown as ordinary percentage changes.
The expected move scales the annual figure down to the horizon you choose:
1σ range = P × e−σhorizon to P × e+σhorizon
Expected move = P × σhorizonD is 365 when counting calendar days or 252 when counting trading days. If returns were normally distributed, the price would end inside the 1σ range about 68% of the time and inside the 2σ range about 95% of the time.
A worked example
Historical volatility. The example contains 31 daily closes of a large US stock, which give 30 daily returns. Their standard deviation is 1.37% a day: on a typical day the stock moved by about $2.58. Multiplying by √252 gives an annualized volatility of 21.71%. The biggest daily rise was +2.84% and the biggest fall -2.69%.
Expected move. Take a stock at $190 with 22% annual volatility. Over 30 days, volatility scales to 6.31%, so the expected move is about ±$11.98. The 1σ range is $178.39 – $202.37, and the 2σ range is $167.48 – $215.54.
Expected price range by horizon
Volatility grows with the square root of time, not in proportion to it. For the same $190 stock at 22% volatility:
| Horizon | σ for the period | Likely range (±1σ) | Wide range (±2σ) |
|---|---|---|---|
| 1 day | 1.15% | $187.82 – $192.20 | $185.67 – $194.43 |
| 1 week (7 days) | 3.05% | $184.30 – $195.88 | $178.77 – $201.94 |
| 1 month (30 days) | 6.31% | $178.39 – $202.37 | $167.48 – $215.54 |
| 3 months (91 days) | 10.98% | $170.23 – $212.06 | $152.52 – $236.68 |
| 1 year | 22.00% | $152.48 – $236.75 | $122.37 – $295.01 |
A year is 365 times longer than a day, but the range is only about 19 times wider (√365 ≈ 19.1). The ranges are also slightly lopsided in dollars, with more room above the price than below, because they are built on log returns: a price can rise without limit but cannot fall below zero.
Counting in trading days gives nearly the same answer over a month. Twenty-one trading days at 22% gives $178.31 – $202.46, against $178.39 – $202.37 for 30 calendar days. The difference comes from treating a trading day as 1/252 of a year rather than 1/365, so stick to one convention throughout.
How to read a volatility figure
Volatility describes how wide the swings are, not which way they go. Three stocks at the same $190 price, over the same 30 days:
| Annual volatility | Expected move | Likely range (±1σ) |
|---|---|---|
| 15% (a steady large company) | ±$8.17 | $182.00 – $198.35 |
| 22% (the example) | ±$11.98 | $178.39 – $202.37 |
| 45% (a speculative stock) | ±$24.51 | $167.00 – $216.16 |
Higher volatility means wider ranges in both directions, which matters for stop-loss placement and position sizing: a stop 2% below the price is about two and a half typical daily moves away for the steady stock (daily volatility 0.79%) but less than one for the speculative one (2.36%). Traders often size positions so each one carries a similar dollar volatility, and our position size calculator uses that idea.
What this calculator does not include
- Fat tails. Real stock returns have more large moves than the normal distribution predicts, especially around earnings, so the 2σ range is breached more often than 5% of the time. The results count how many of your returns fell beyond 2σ, as a check.
- Changing volatility. Volatility clusters: calm periods and turbulent periods each tend to persist. A figure from 30 days of data describes those 30 days, and the rolling chart shows how much it can shift.
- Direction. The expected move assumes no drift up or down. Over a year or more, a stock’s expected return shifts the whole range.
- Gaps and events. Earnings, mergers and trading halts can move a price far beyond any range based on past volatility.