{"slug":"concentration-risk","qid":"vol_compare","label":"Annualized volatility: the S&P 500 index versus six single stocks (last ~250 sessions)","post_title":"The Real Risk of One Stock","post_url":"/blog/concentration-risk#q-vol_compare","columns":["ticker","annual_vol_pct"],"rows":[{"ticker":"SPY","annual_vol_pct":12.8},{"ticker":"JNJ","annual_vol_pct":18.5},{"ticker":"KO","annual_vol_pct":18.7},{"ticker":"PG","annual_vol_pct":19.5},{"ticker":"NVDA","annual_vol_pct":36.6},{"ticker":"TSLA","annual_vol_pct":46.7},{"ticker":"PLTR","annual_vol_pct":60}],"shape":"ranking","sql":"SELECT ticker,\n       round(stddevSamp(ret) * sqrt(252) * 100, 1) AS annual_vol_pct\nFROM (\n    SELECT ticker, dt,\n           c / lagInFrame(c) OVER (PARTITION BY ticker ORDER BY dt) - 1 AS ret\n    FROM (\n        SELECT ticker,\n               toDate(toTimeZone(window_start, 'America/New_York')) AS dt,\n               argMax(toFloat64(close), toTimeZone(window_start, 'America/New_York')) AS c\n        FROM global_markets.delayed_stocks_minute_aggs\n        WHERE ticker IN ('SPY', 'KO', 'JNJ', 'PG', 'NVDA', 'TSLA', 'PLTR')\n          AND window_start >= now() - INTERVAL 400 DAY\n          AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60\n               + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959\n        GROUP BY ticker, dt\n    )\n)\nWHERE ret IS NOT NULL AND dt >= today() - 370\nGROUP BY ticker\nORDER BY annual_vol_pct","computed_at":"2026-08-22T04:04:09.267109+00:00","elapsed":2.623489336}