The Real Risk of One Stock
Annualized volatility: the S&P 500 index versus six single stocks (last ~250 sessions)ranking ·
2026-08-22 · 7×2
Same $100 invested: one single stock versus the S&P 500 index, indexed to 100series ·
2026-08-22 · 14×3
Maximum drawdown: deepest peak-to-trough drop over the last yearranking ·
2026-08-22 · 7×2
Annualized volatility: the S&P 500 index versus six single stocks (last ~250 sessions)
Annualized volatility: the S&P 500 index versus six single stocks (last ~250 sessions)
| ticker | annual_vol_pct |
|---|---|
| SPY | 12.8 |
| JNJ | 18.5 |
| KO | 18.7 |
| PG | 19.5 |
| NVDA | 36.6 |
| TSLA | 46.7 |
| PLTR | 60 |
the exact SQL behind every number
SELECT ticker,
round(stddevSamp(ret) * sqrt(252) * 100, 1) AS annual_vol_pct
FROM (
SELECT ticker, dt,
c / lagInFrame(c) OVER (PARTITION BY ticker ORDER BY dt) - 1 AS ret
FROM (
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 ('SPY', 'KO', 'JNJ', 'PG', 'NVDA', 'TSLA', 'PLTR')
AND window_start >= now() - INTERVAL 400 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
)
)
WHERE ret IS NOT NULL AND dt >= today() - 370
GROUP BY ticker
ORDER BY annual_vol_pct
More from this analysisThe Real Risk of One Stock
Maximum drawdown: deepest peak-to-trough drop over the last year
ranking 7×2
→
Same $100 invested: one single stock versus the S&P 500 index, indexed to 100
series 14×3
→
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 2,170 queries →