{"slug":"us-credit-downgrade-2011","qid":"worst_days","label":"The ten worst SPY sessions, 2003–2025: August 8, 2011 is the odd one out","post_title":"The 2011 US Downgrade: Black Monday's Tape","post_url":"/blog/us-credit-downgrade-2011#q-worst_days","columns":["session","change_pct","downgrade_rank","top10_outside_crises","two_week_slide_pct"],"rows":[{"session":"2020-03-16","change_pct":-11.6,"downgrade_rank":9,"top10_outside_crises":1,"two_week_slide_pct":-10.8},{"session":"2020-03-12","change_pct":-9.6,"downgrade_rank":9,"top10_outside_crises":1,"two_week_slide_pct":-10.8},{"session":"2008-10-15","change_pct":-9.2,"downgrade_rank":9,"top10_outside_crises":1,"two_week_slide_pct":-10.8},{"session":"2008-12-01","change_pct":-8.9,"downgrade_rank":9,"top10_outside_crises":1,"two_week_slide_pct":-10.8},{"session":"2020-03-09","change_pct":-7.7,"downgrade_rank":9,"top10_outside_crises":1,"two_week_slide_pct":-10.8},{"session":"2008-09-29","change_pct":-7,"downgrade_rank":9,"top10_outside_crises":1,"two_week_slide_pct":-10.8},{"session":"2008-10-09","change_pct":-6.8,"downgrade_rank":9,"top10_outside_crises":1,"two_week_slide_pct":-10.8},{"session":"2008-11-20","change_pct":-6.6,"downgrade_rank":9,"top10_outside_crises":1,"two_week_slide_pct":-10.8},{"session":"2011-08-08","change_pct":-6.5,"downgrade_rank":9,"top10_outside_crises":1,"two_week_slide_pct":-10.8},{"session":"2008-10-07","change_pct":-6.1,"downgrade_rank":9,"top10_outside_crises":1,"two_week_slide_pct":-10.8}],"shape":"series","sql":"WITH daily AS (\n    SELECT\n        toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,\n        argMax(toFloat64(close), window_start) AS close_usd\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker = 'SPY'\n      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959\n      AND window_start >= toDateTime('2003-01-01 00:00:00') AND window_start < toDateTime('2026-01-01 00:00:00')\n    GROUP BY et_date\n),\nchanges AS (\n    SELECT et_date, close_usd,\n           lagInFrame(close_usd) OVER (ORDER BY et_date ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_close\n    FROM daily\n),\nranked AS (\n    SELECT et_date, close_usd,\n           round((close_usd / prev_close - 1) * 100, 1) AS change_pct,\n           row_number() OVER (ORDER BY close_usd / prev_close ASC, et_date ASC) AS day_rank\n    FROM changes\n    WHERE prev_close > 0\n),\nenriched AS (\n    SELECT et_date, change_pct, day_rank,\n           max(if(et_date = toDate('2011-08-08'), day_rank, 0)) OVER () AS downgrade_rank,\n           sum(if(day_rank <= 10 AND toYear(et_date) NOT IN (2008, 2020), 1, 0)) OVER () AS top10_outside_crises,\n           round((max(if(et_date = toDate('2011-08-05'), close_usd, 0)) OVER () / max(if(et_date = toDate('2011-07-22'), close_usd, 0)) OVER () - 1) * 100, 1) AS two_week_slide_pct\n    FROM ranked\n)\nSELECT\n    toString(et_date) AS session,\n    change_pct,\n    downgrade_rank,\n    top10_outside_crises,\n    two_week_slide_pct\nFROM enriched\nWHERE day_rank <= 10\nORDER BY day_rank","computed_at":"2026-07-26T06:19:24.417759+00:00","elapsed":9.062600182}