{"slug":"what-is-maximum-drawdown","qid":"spy_drawdown_curve","label":"SPY underwater curve: month end close against its running peak, 2016 to 2026","post_title":"What Is Maximum Drawdown? Depth vs Recovery","post_url":"/blog/what-is-maximum-drawdown#q-spy_drawdown_curve","columns":["month","drawdown_pct"],"rows":[{"month":"2016-01","drawdown_pct":0},{"month":"2016-02","drawdown_pct":-0.11},{"month":"2016-03","drawdown_pct":0},{"month":"2016-04","drawdown_pct":0},{"month":"2016-05","drawdown_pct":0},{"month":"2016-06","drawdown_pct":-0.19},{"month":"2016-07","drawdown_pct":0},{"month":"2016-08","drawdown_pct":0},{"month":"2016-09","drawdown_pct":-0.47},{"month":"2016-10","drawdown_pct":-2.24},{"month":"2016-11","drawdown_pct":0},{"month":"2016-12","drawdown_pct":0},{"month":"2017-01","drawdown_pct":0},{"month":"2017-02","drawdown_pct":0},{"month":"2017-03","drawdown_pct":-0.34},{"month":"2017-04","drawdown_pct":0},{"month":"2017-05","drawdown_pct":0},{"month":"2017-06","drawdown_pct":0},{"month":"2017-07","drawdown_pct":0},{"month":"2017-08","drawdown_pct":0},{"month":"2017-09","drawdown_pct":0},{"month":"2017-10","drawdown_pct":0},{"month":"2017-11","drawdown_pct":0},{"month":"2017-12","drawdown_pct":0},{"month":"2018-01","drawdown_pct":0},{"month":"2018-02","drawdown_pct":-3.75},{"month":"2018-03","drawdown_pct":-6.53},{"month":"2018-04","drawdown_pct":-6.19},{"month":"2018-05","drawdown_pct":-3.96},{"month":"2018-06","drawdown_pct":-3.8},{"month":"2018-07","drawdown_pct":-0.24},{"month":"2018-08","drawdown_pct":0},{"month":"2018-09","drawdown_pct":0},{"month":"2018-10","drawdown_pct":-6.85},{"month":"2018-11","drawdown_pct":-5.11},{"month":"2018-12","drawdown_pct":-13.93},{"month":"2019-01","drawdown_pct":-7.13},{"month":"2019-02","drawdown_pct":-4.15},{"month":"2019-03","drawdown_pct":-2.75},{"month":"2019-04","drawdown_pct":0},{"month":"2019-05","drawdown_pct":-6.33},{"month":"2019-06","drawdown_pct":-0.3},{"month":"2019-07","drawdown_pct":0},{"month":"2019-08","drawdown_pct":-1.65},{"month":"2019-09","drawdown_pct":-0.18},{"month":"2019-10","drawdown_pct":0},{"month":"2019-11","drawdown_pct":0},{"month":"2019-12","drawdown_pct":0},{"month":"2020-01","drawdown_pct":-0.05},{"month":"2020-02","drawdown_pct":-7.99},{"month":"2020-03","drawdown_pct":-19.94},{"month":"2020-04","drawdown_pct":-9.79},{"month":"2020-05","drawdown_pct":-5.51},{"month":"2020-06","drawdown_pct":-4.14},{"month":"2020-07","drawdown_pct":0},{"month":"2020-08","drawdown_pct":0},{"month":"2020-09","drawdown_pct":-4.14},{"month":"2020-10","drawdown_pct":-6.53},{"month":"2020-11","drawdown_pct":0},{"month":"2020-12","drawdown_pct":0},{"month":"2021-01","drawdown_pct":-0.98},{"month":"2021-02","drawdown_pct":0},{"month":"2021-03","drawdown_pct":0},{"month":"2021-04","drawdown_pct":0},{"month":"2021-05","drawdown_pct":0},{"month":"2021-06","drawdown_pct":0},{"month":"2021-07","drawdown_pct":0},{"month":"2021-08","drawdown_pct":0},{"month":"2021-09","drawdown_pct":-4.97},{"month":"2021-10","drawdown_pct":0},{"month":"2021-11","drawdown_pct":-0.74},{"month":"2021-12","drawdown_pct":0},{"month":"2022-01","drawdown_pct":-5.28},{"month":"2022-02","drawdown_pct":-8.05},{"month":"2022-03","drawdown_pct":-4.89},{"month":"2022-04","drawdown_pct":-13.23},{"month":"2022-05","drawdown_pct":-13.04},{"month":"2022-06","drawdown_pct":-20.55},{"month":"2022-07","drawdown_pct":-13.23},{"month":"2022-08","drawdown_pct":-16.79},{"month":"2022-09","drawdown_pct":-24.78},{"month":"2022-10","drawdown_pct":-18.67},{"month":"2022-11","drawdown_pct":-14.2},{"month":"2022-12","drawdown_pct":-19.47},{"month":"2023-01","drawdown_pct":-14.41},{"month":"2023-02","drawdown_pct":-16.57},{"month":"2023-03","drawdown_pct":-13.8},{"month":"2023-04","drawdown_pct":-12.41},{"month":"2023-05","drawdown_pct":-12.01},{"month":"2023-06","drawdown_pct":-6.66},{"month":"2023-07","drawdown_pct":-3.6},{"month":"2023-08","drawdown_pct":-5.18},{"month":"2023-09","drawdown_pct":-10},{"month":"2023-10","drawdown_pct":-11.93},{"month":"2023-11","drawdown_pct":-3.91},{"month":"2023-12","drawdown_pct":0},{"month":"2024-01","drawdown_pct":0},{"month":"2024-02","drawdown_pct":0},{"month":"2024-03","drawdown_pct":0},{"month":"2024-04","drawdown_pct":-4.03},{"month":"2024-05","drawdown_pct":0},{"month":"2024-06","drawdown_pct":0},{"month":"2024-07","drawdown_pct":0},{"month":"2024-08","drawdown_pct":0},{"month":"2024-09","drawdown_pct":0},{"month":"2024-10","drawdown_pct":-0.95},{"month":"2024-11","drawdown_pct":0},{"month":"2024-12","drawdown_pct":-2.75},{"month":"2025-01","drawdown_pct":-0.12},{"month":"2025-02","drawdown_pct":-1.41},{"month":"2025-03","drawdown_pct":-7.2},{"month":"2025-04","drawdown_pct":-8},{"month":"2025-05","drawdown_pct":-2.17},{"month":"2025-06","drawdown_pct":0},{"month":"2025-07","drawdown_pct":0},{"month":"2025-08","drawdown_pct":0},{"month":"2025-09","drawdown_pct":0},{"month":"2025-10","drawdown_pct":0},{"month":"2025-11","drawdown_pct":0},{"month":"2025-12","drawdown_pct":-0.23},{"month":"2026-01","drawdown_pct":0},{"month":"2026-02","drawdown_pct":-0.81},{"month":"2026-03","drawdown_pct":-6.02},{"month":"2026-04","drawdown_pct":0},{"month":"2026-05","drawdown_pct":0},{"month":"2026-06","drawdown_pct":-1.33},{"month":"2026-07","drawdown_pct":-1.27}],"shape":"series","sql":"WITH monthly AS (\n    SELECT toStartOfMonth(toDate(toTimeZone(window_start, 'America/New_York'))) AS month_start,\n           argMax(toFloat64(close), window_start) AS close_px\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker = 'SPY'\n      AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2016-01-01')\n      AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-07-31')\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 month_start\n),\nruns AS (\n    SELECT month_start,\n           close_px,\n           max(close_px) OVER (ORDER BY month_start\n                               ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS running_peak\n    FROM monthly\n)\nSELECT formatDateTime(month_start, '%Y-%m') AS month,\n       round(100 * (close_px / running_peak - 1), 2) AS drawdown_pct\nFROM runs\nORDER BY month_start","computed_at":"2026-08-05T03:38:16.207725+00:00","elapsed":0.003321363}