The Low-Volatility Anomaly
Growth of $100: a calm name (KO), the market (SPY), a wild name (NVDA), weeklyseries ·
2026-10-04 · 114×4
Annualized volatility vs total return, 25 large caps, calmest to wildest (~2 years)ranking ·
2026-10-04 · 25×3
Volatility thirds: median return, and the range from worst to best name in eachtable ·
2026-10-04 · 3×6
The Lowest-Volatility Stocks
The calmest large caps: annualized realized volatility over the past year, lowest firstranking ·
2026-10-04 · 15×2
Maximum drawdown of the calmest names: the worst peak-to-trough fall over the past yearranking ·
2026-10-04 · 8×2
Growth of $100: a calm name (KO), the market (SPY), a wild name (NVDA), weekly
Growth of $100: a calm name (KO), the market (SPY), a wild name (NVDA), weekly
| week | ko_calm | spy_market | nvda_wild |
|---|---|---|---|
| 2024-07-29 | 103.4 | 97.9 | 94.9 |
| 2024-08-05 | 102.4 | 97.9 | 92.6 |
| 2024-08-12 | 103.2 | 101.8 | 110.2 |
| 2024-08-19 | 104.1 | 103.3 | 114.3 |
| 2024-08-26 | 108.1 | 103.5 | 105.6 |
| 2024-09-02 | 106.1 | 99.3 | 90.9 |
| 2024-09-09 | 106.5 | 103.2 | 105.3 |
| 2024-09-16 | 106.8 | 104.4 | 102.7 |
| 2024-09-23 | 107.1 | 105 | 107.4 |
| 2024-09-30 | 104.6 | 105.2 | 110.5 |
| 2024-10-07 | 103.7 | 106.5 | 119.2 |
| 2024-10-14 | 105 | 107.4 | 122 |
| 2024-10-21 | 99.8 | 106.4 | 125.1 |
| 2024-10-28 | 96.9 | 104.9 | 119.8 |
| 2024-11-04 | 95.4 | 109.9 | 130.5 |
| 2024-11-11 | 92.1 | 107.6 | 125.6 |
| 2024-11-18 | 95.3 | 109.4 | 125.5 |
| 2024-11-25 | 95.6 | 110.7 | 122.3 |
| 2024-12-02 | 93.2 | 111.7 | 126 |
| 2024-12-09 | 94.2 | 111 | 118.7 |
| 2024-12-16 | 93.4 | 108.5 | 119.4 |
| 2024-12-23 | 93.2 | 109.3 | 121.3 |
| 2024-12-30 | 92.1 | 108.7 | 127.9 |
| 2025-01-06 | 91.1 | 106.6 | 120.2 |
| 2025-01-13 | 93.5 | 109.8 | 121.8 |
| 2025-01-20 | 92.3 | 111.7 | 126.1 |
| 2025-01-27 | 94.6 | 110.5 | 106.1 |
| 2025-02-03 | 95.2 | 110.4 | 114.9 |
| 2025-02-10 | 102.7 | 112 | 122.8 |
| 2025-02-17 | 106.5 | 110.2 | 118.8 |
| 2025-02-24 | 106.2 | 109.1 | 110.6 |
| 2025-03-03 | 106.5 | 105.8 | 99.7 |
| 2025-03-10 | 103.1 | 103.4 | 107.4 |
| 2025-03-17 | 102.4 | 103.6 | 104 |
| 2025-03-24 | 105 | 102.1 | 97 |
| 2025-03-31 | 104.3 | 92.9 | 83.4 |
| 2025-04-07 | 106.4 | 98.1 | 97.9 |
| 2025-04-14 | 108.8 | 96.7 | 89.7 |
| 2025-04-21 | 107.3 | 101.1 | 98.1 |
| 2025-04-28 | 106.9 | 104.1 | 101.2 |
| 2025-05-05 | 105.2 | 103.7 | 103.1 |
| 2025-05-12 | 107.4 | 109.2 | 119.7 |
| 2025-05-19 | 107.1 | 106.4 | 116.1 |
| 2025-05-26 | 107.5 | 108.3 | 119.3 |
| 2025-06-02 | 106.4 | 110 | 125.3 |
| 2025-06-09 | 105.9 | 109.7 | 125.6 |
| 2025-06-16 | 102.7 | 109.2 | 127.2 |
| 2025-06-23 | 104.9 | 112.9 | 139.5 |
| 2025-06-30 | 106.4 | 114.9 | 140.9 |
| 2025-07-07 | 104.2 | 114.6 | 145.8 |
| 2025-07-14 | 104.2 | 115.3 | 152.5 |
| 2025-07-21 | 103.2 | 117 | 153.4 |
| 2025-07-28 | 102.7 | 114.2 | 153.5 |
| 2025-08-04 | 104.9 | 117 | 161.6 |
| 2025-08-11 | 104.3 | 118.2 | 159.6 |
| 2025-08-18 | 104.6 | 118.5 | 157.5 |
| 2025-08-25 | 102.9 | 118.5 | 154.1 |
| 2025-09-01 | 101.4 | 118.9 | 147.7 |
| 2025-09-08 | 99.9 | 120.8 | 157.3 |
| 2025-09-15 | 99.1 | 121.9 | 156.1 |
| 2025-09-22 | 97.9 | 121.6 | 157.6 |
| 2025-09-29 | 99.4 | 122.9 | 165.9 |
| 2025-10-06 | 100 | 120 | 162 |
| 2025-10-13 | 102.1 | 122 | 162.1 |
| 2025-10-20 | 104 | 124.4 | 164.8 |
| 2025-10-27 | 102.8 | 125.3 | 179 |
| 2025-11-03 | 105.2 | 123.2 | 166.5 |
| 2025-11-10 | 106.1 | 123.4 | 168.3 |
| 2025-11-17 | 108.8 | 121.1 | 158.3 |
| 2025-11-24 | 109.1 | 125.5 | 156.5 |
| 2025-12-01 | 104.4 | 126 | 161.3 |
| 2025-12-08 | 105.2 | 125.2 | 154.8 |
| 2025-12-15 | 104.5 | 125 | 160.1 |
| 2025-12-22 | 104.2 | 126.8 | 168.5 |
| 2025-12-29 | 103.1 | 125.5 | 167 |
| 2026-01-05 | 105.2 | 127.5 | 163.5 |
| 2026-01-12 | 105 | 127 | 164.7 |
| 2026-01-19 | 108.7 | 126.6 | 166 |
| 2026-01-26 | 111.6 | 127.1 | 169.2 |
| 2026-02-02 | 117.9 | 126.9 | 164 |
| 2026-02-09 | 117.3 | 125.2 | 161.7 |
| 2026-02-16 | 119.1 | 126.6 | 167.9 |
| 2026-02-23 | 121.6 | 126.1 | 156.7 |
| 2026-03-02 | 114.9 | 123.5 | 157.2 |
| 2026-03-09 | 115.3 | 121.7 | 159.4 |
| 2026-03-16 | 111.5 | 119.1 | 153 |
| 2026-03-23 | 112.8 | 116.5 | 148.1 |
| 2026-03-30 | 114.4 | 120.5 | 156.9 |
| 2026-04-06 | 115.5 | 124.8 | 166.8 |
| 2026-04-13 | 113 | 130.4 | 178.4 |
| 2026-04-20 | 114.3 | 131.2 | 184.1 |
| 2026-04-27 | 117.2 | 132.4 | 175.5 |
| 2026-05-04 | 117 | 135.5 | 190.3 |
| 2026-05-11 | 120.5 | 135.8 | 199.3 |
| 2026-05-18 | 121.5 | 137 | 190.4 |
| 2026-05-25 | 117.8 | 138.9 | 186.8 |
| 2026-06-01 | 118.6 | 135.5 | 181.4 |
| 2026-06-08 | 123.2 | 136.2 | 181.4 |
| 2026-06-15 | 118.4 | 137.1 | 185.9 |
| 2026-06-22 | 123.2 | 133.9 | 169.6 |
| 2026-06-29 | 125.2 | 136.8 | 172 |
| 2026-07-06 | 124.5 | 138.7 | 186.6 |
| 2026-07-13 | 121.6 | 136.5 | 179.2 |
| 2026-07-20 | 122.7 | 135.7 | 183.1 |
| 2026-07-27 | 130.6 | 137.2 | 177.6 |
| 2026-08-03 | 129.8 | 142 | 198 |
| 2026-08-10 | 130.8 | 142.6 | 199.1 |
| 2026-08-17 | 135.9 | 140.7 | 190 |
| 2026-08-24 | 133.7 | 141.3 | 192.4 |
| 2026-08-31 | 131.3 | 141.5 | 203.7 |
| 2026-09-07 | 131.6 | 140.4 | 193 |
| 2026-09-14 | 131.4 | 139.9 | 196.4 |
| 2026-09-21 | 131 | 141.7 | 199.1 |
| 2026-09-28 | 127.9 | 141.4 | 207.2 |
the exact SQL behind every number
WITH d AS (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS dt,
argMax(toFloat64(close), toTimeZone(window_start, 'America/New_York')) AS c
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('KO','SPY','NVDA')
AND window_start >= now() - INTERVAL 800 DAY
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY ticker, dt
),
r AS (
SELECT ticker, dt,
c / lagInFrame(c) OVER (PARTITION BY ticker ORDER BY dt) - 1 AS ret
FROM d
),
f AS (
SELECT ticker, dt, ret FROM r WHERE ret IS NOT NULL AND ret > -0.5 AND ret < 0.5
),
cum AS (
SELECT ticker, dt,
100 * exp(sum(log(1 + ret)) OVER (PARTITION BY ticker ORDER BY dt)) AS idx
FROM f
),
wk AS (
SELECT ticker, toMonday(dt) AS week, argMax(idx, dt) AS wv
FROM cum GROUP BY ticker, week
)
SELECT week,
round(maxIf(wv, ticker = 'KO'), 1) AS ko_calm,
round(maxIf(wv, ticker = 'SPY'), 1) AS spy_market,
round(maxIf(wv, ticker = 'NVDA'), 1) AS nvda_wild
FROM wk
GROUP BY week
ORDER BY week
More from this analysisThe Low-Volatility Anomaly
Annualized volatility vs total return, 25 large caps, calmest to wildest (~2 years)
ranking 25×3
→
Volatility thirds: median return, and the range from worst to best name in each
table 3×6
→
The calmest large caps: annualized realized volatility over the past year, lowest first
ranking 15×2
→
Maximum drawdown of the calmest names: the worst peak-to-trough fall over the past year
ranking 8×2
→
See all 3,256 queries →