{"slug":"market-wide-circuit-breakers-explained","qid":"trigger_levels","label":"trigger_levels","post_title":"market-wide-circuit-breakers-explained","post_url":"/blog/market-wide-circuit-breakers-explained#q-trigger_levels","columns":["level","threshold","halt_rule","reference_close_label","spy_reference_close","spy_trigger_level","spy_points_to_trigger"],"rows":[{"level":"Level 1","threshold":"7% below the prior close","halt_rule":"15-minute halt if crossed before 3:25 p.m. ET","reference_close_label":"September 18","spy_reference_close":762.35,"spy_trigger_level":708.98,"spy_points_to_trigger":53.36},{"level":"Level 2","threshold":"13% below the prior close","halt_rule":"15-minute halt if crossed before 3:25 p.m. ET","reference_close_label":"September 18","spy_reference_close":762.35,"spy_trigger_level":663.24,"spy_points_to_trigger":99.11},{"level":"Level 3","threshold":"20% below the prior close","halt_rule":"Halt for the rest of the day, at any time","reference_close_label":"September 18","spy_reference_close":762.35,"spy_trigger_level":609.88,"spy_points_to_trigger":152.47}],"shape":"table","sql":"SELECT\n    concat('Level ', toString(multiIf(lv.decline_pct = 7, 1, lv.decline_pct = 13, 2, 3))) AS level,\n    concat(toString(lv.decline_pct), '% below the prior close')                           AS threshold,\n    if(lv.decline_pct = 20,\n       'Halt for the rest of the day, at any time',\n       '15-minute halt if crossed before 3:25 p.m. ET')                                   AS halt_rule,\n    concat(monthName(ref.d), ' ', toString(toDayOfMonth(ref.d)))                          AS reference_close_label,\n    round(ref.c, 2)                                                                       AS spy_reference_close,\n    round(ref.c * (100 - lv.decline_pct) / 100, 2)                                        AS spy_trigger_level,\n    round(ref.c * lv.decline_pct / 100, 2)                                                AS spy_points_to_trigger\nFROM\n(\n    SELECT arrayJoin([7, 13, 20]) AS decline_pct\n) AS lv\nCROSS JOIN\n(\n    SELECT\n        date                     AS d,\n        toFloat64(max(close))    AS c\n    FROM global_markets.stocks_daily_aggs\n    WHERE ticker = 'SPY'\n      AND date >= today() - 14\n    GROUP BY date\n    ORDER BY date DESC\n    LIMIT 1\n) AS ref\nORDER BY lv.decline_pct","computed_at":"2026-09-18T16:43:56.826480+00:00","elapsed":0.037613704}