{"slug":"market-wide-circuit-breakers-explained","qid":"march_2020_sessions","label":"march_2020_sessions","post_title":"market-wide-circuit-breakers-explained","post_url":"/blog/market-wide-circuit-breakers-explained#q-march_2020_sessions","columns":["session_date","session_label","open_vs_prior_close_pct","low_vs_prior_close_pct","close_vs_prior_close_pct","breaker_line"],"rows":[{"session_date":"2020-03-02","session_label":"March 2","open_vs_prior_close_pct":0.66,"low_vs_prior_close_pct":-0.61,"close_vs_prior_close_pct":4.33,"breaker_line":""},{"session_date":"2020-03-03","session_label":"March 3","open_vs_prior_close_pct":0.13,"low_vs_prior_close_pct":-3.73,"close_vs_prior_close_pct":-2.86,"breaker_line":""},{"session_date":"2020-03-04","session_label":"March 4","open_vs_prior_close_pct":1.96,"low_vs_prior_close_pct":1.03,"close_vs_prior_close_pct":4.2,"breaker_line":""},{"session_date":"2020-03-05","session_label":"March 5","open_vs_prior_close_pct":-2.52,"low_vs_prior_close_pct":-4.11,"close_vs_prior_close_pct":-3.32,"breaker_line":""},{"session_date":"2020-03-06","session_label":"March 6","open_vs_prior_close_pct":-3.08,"low_vs_prior_close_pct":-4.04,"close_vs_prior_close_pct":-1.65,"breaker_line":""},{"session_date":"2020-03-09","session_label":"March 9","open_vs_prior_close_pct":-7.45,"low_vs_prior_close_pct":-8.07,"close_vs_prior_close_pct":-7.81,"breaker_line":"Level 1 line crossed"},{"session_date":"2020-03-10","session_label":"March 10","open_vs_prior_close_pct":3.8,"low_vs_prior_close_pct":-0.27,"close_vs_prior_close_pct":5.17,"breaker_line":""},{"session_date":"2020-03-11","session_label":"March 11","open_vs_prior_close_pct":-2.68,"low_vs_prior_close_pct":-6.08,"close_vs_prior_close_pct":-4.87,"breaker_line":""},{"session_date":"2020-03-12","session_label":"March 12","open_vs_prior_close_pct":-6.69,"low_vs_prior_close_pct":-9.72,"close_vs_prior_close_pct":-9.57,"breaker_line":"Level 1 line crossed"},{"session_date":"2020-03-13","session_label":"March 13","open_vs_prior_close_pct":6.04,"low_vs_prior_close_pct":0.59,"close_vs_prior_close_pct":8.55,"breaker_line":""},{"session_date":"2020-03-16","session_label":"March 16","open_vs_prior_close_pct":-10.45,"low_vs_prior_close_pct":-11.87,"close_vs_prior_close_pct":-10.94,"breaker_line":"Level 1 line crossed"},{"session_date":"2020-03-17","session_label":"March 17","open_vs_prior_close_pct":2.16,"low_vs_prior_close_pct":-1.16,"close_vs_prior_close_pct":5.4,"breaker_line":""},{"session_date":"2020-03-18","session_label":"March 18","open_vs_prior_close_pct":-6.55,"low_vs_prior_close_pct":-9.8,"close_vs_prior_close_pct":-5.06,"breaker_line":"Level 1 line crossed"},{"session_date":"2020-03-19","session_label":"March 19","open_vs_prior_close_pct":-0.31,"low_vs_prior_close_pct":-3.24,"close_vs_prior_close_pct":0.21,"breaker_line":""},{"session_date":"2020-03-20","session_label":"March 20","open_vs_prior_close_pct":0.84,"low_vs_prior_close_pct":-4.99,"close_vs_prior_close_pct":-4.87,"breaker_line":""},{"session_date":"2020-03-23","session_label":"March 23","open_vs_prior_close_pct":-0.27,"low_vs_prior_close_pct":-4.61,"close_vs_prior_close_pct":-2.56,"breaker_line":""},{"session_date":"2020-03-24","session_label":"March 24","open_vs_prior_close_pct":5.14,"low_vs_prior_close_pct":4.87,"close_vs_prior_close_pct":9.06,"breaker_line":""},{"session_date":"2020-03-25","session_label":"March 25","open_vs_prior_close_pct":0.71,"low_vs_prior_close_pct":-1.4,"close_vs_prior_close_pct":1.5,"breaker_line":""},{"session_date":"2020-03-26","session_label":"March 26","open_vs_prior_close_pct":1.11,"low_vs_prior_close_pct":0.92,"close_vs_prior_close_pct":5.84,"breaker_line":""},{"session_date":"2020-03-27","session_label":"March 27","open_vs_prior_close_pct":-3.04,"low_vs_prior_close_pct":-3.89,"close_vs_prior_close_pct":-2.98,"breaker_line":""},{"session_date":"2020-03-30","session_label":"March 30","open_vs_prior_close_pct":0.9,"low_vs_prior_close_pct":0.04,"close_vs_prior_close_pct":3.25,"breaker_line":""},{"session_date":"2020-03-31","session_label":"March 31","open_vs_prior_close_pct":-0.42,"low_vs_prior_close_pct":-2.08,"close_vs_prior_close_pct":-1.49,"breaker_line":""}],"shape":"series","sql":"SELECT\n    toString(d)                                            AS session_date,\n    concat(monthName(d), ' ', toString(toDayOfMonth(d)))   AS session_label,\n    round((open_px / prev_close_px - 1) * 100, 2)          AS open_vs_prior_close_pct,\n    round((low_px / prev_close_px - 1) * 100, 2)           AS low_vs_prior_close_pct,\n    round((close_px / prev_close_px - 1) * 100, 2)         AS close_vs_prior_close_pct,\n    multiIf((1 - low_px / prev_close_px) * 100 >= 20, 'Level 3 line crossed',\n            (1 - low_px / prev_close_px) * 100 >= 13, 'Level 2 line crossed',\n            (1 - low_px / prev_close_px) * 100 >= 7,  'Level 1 line crossed',\n            '')                                            AS breaker_line\nFROM\n(\n    SELECT\n        d,\n        open_px,\n        low_px,\n        close_px,\n        lagInFrame(close_px, 1) OVER (ORDER BY d ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS prev_close_px\n    FROM\n    (\n        SELECT\n            date                        AS d,\n            toFloat64(max(open))        AS open_px,\n            toFloat64(min(low))         AS low_px,\n            toFloat64(max(close))       AS close_px\n        FROM global_markets.stocks_daily_aggs\n        WHERE ticker = 'SPY'\n          AND date BETWEEN toDate('2020-02-24') AND toDate('2020-03-31')\n        GROUP BY date\n    )\n)\nWHERE d >= toDate('2020-03-02')\nORDER BY d","computed_at":"2026-09-18T16:43:57.028953+00:00","elapsed":0.004822535}