STRASMORE/EXPLORE 3,293 QUERIES
Full options quote history: clean NBBO bid/ask snapshots for any US option contract at the interval you choose, by SQL API, $79 a month. See the options quotes plan

March 2020 session by session: open, low and close versus the prior close

Answered against 22 years of US equities and 12 years of US options data and published with the query that produced it. This result is stored as of 2026-11-01, from Market-Wide Circuit Breakers Explained.

as of series 22×6read in context →
March 2020 session by session: open, low and close versus the prior close — 22 rows by 6 columns, computed from US exchange, SIP and OPRA data.
session_datesession_labelopen_vs_prior_close_pctlow_vs_prior_close_pctclose_vs_prior_close_pctbreaker_line
2020-03-02March 20.66-0.614.33
2020-03-03March 30.13-3.73-2.86
2020-03-04March 41.961.034.2
2020-03-05March 5-2.52-4.11-3.32
2020-03-06March 6-3.08-4.04-1.65
2020-03-09March 9-7.45-8.07-7.81Level 1 line crossed
2020-03-10March 103.8-0.275.17
2020-03-11March 11-2.68-6.08-4.87
2020-03-12March 12-6.69-9.72-9.57Level 1 line crossed
2020-03-13March 136.040.598.55
2020-03-16March 16-10.45-11.87-10.94Level 1 line crossed
2020-03-17March 172.16-1.165.4
2020-03-18March 18-6.55-9.8-5.06Level 1 line crossed
2020-03-19March 19-0.31-3.240.21
2020-03-20March 200.84-4.99-4.87
2020-03-23March 23-0.27-4.61-2.56
2020-03-24March 245.144.879.06
2020-03-25March 250.71-1.41.5
2020-03-26March 261.110.925.84
2020-03-27March 27-3.04-3.89-2.98
2020-03-30March 300.90.043.25
2020-03-31March 31-0.42-2.08-1.49
Rows × columns
22 × 6
Period covered
to
Computed
Completeness
Some fields are partly empty — see the columns below
Source
US exchange, SIP and OPRA market data
Licence
Strasmore terms · free, no signup
Formats
JSON · CSV · the SQL below

What each column holds

Column definitions for March 2020 session by session: open, low and close versus the prior close, derived from the stored result.
ColumnTypeRangeNotes
session_date date 2020-03-02 to 2020-03-31
session_label text 22 distinct values (March 10, March 11, March 12…)
open_vs_prior_close_pct number -10.45 to 6.04 percent
low_vs_prior_close_pct number -11.87 to 4.87 percent
close_vs_prior_close_pct number -10.94 to 9.06 percent
breaker_line text 1 distinct value (Level 1 line crossed) 4 of 22 rows populated

Computed from Strasmore's warehouse of US exchange, SIP and OPRA market data. Equity prices are delayed; options greeks and implied volatility are end-of-day. This result is stored, not recomputed on load — it is exactly the numbers that were returned on , and the query below is what returned them.

Run it yourself

This is the exact query behind the result above. Change a ticker, a date or a column and run it against the warehouse — no account, no key. The no-signup tier is smaller than the one this page was computed on; a query that reaches past it comes back saying which plan runs it.

SELECT
    toString(d)                                            AS session_date,
    concat(monthName(d), ' ', toString(toDayOfMonth(d)))   AS session_label,
    round((open_px / prev_close_px - 1) * 100, 2)          AS open_vs_prior_close_pct,
    round((low_px / prev_close_px - 1) * 100, 2)           AS low_vs_prior_close_pct,
    round((close_px / prev_close_px - 1) * 100, 2)         AS close_vs_prior_close_pct,
    multiIf((1 - low_px / prev_close_px) * 100 >= 20, 'Level 3 line crossed',
            (1 - low_px / prev_close_px) * 100 >= 13, 'Level 2 line crossed',
            (1 - low_px / prev_close_px) * 100 >= 7,  'Level 1 line crossed',
            '')                                            AS breaker_line
FROM
(
    SELECT
        d,
        open_px,
        low_px,
        close_px,
        lagInFrame(close_px, 1) OVER (ORDER BY d ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS prev_close_px
    FROM
    (
        SELECT
            date                        AS d,
            toFloat64(max(open))        AS open_px,
            toFloat64(min(low))         AS low_px,
            toFloat64(max(close))       AS close_px
        FROM global_markets.stocks_daily_aggs
        WHERE ticker = 'SPY'
          AND date BETWEEN toDate('2020-02-24') AND toDate('2020-03-31')
        GROUP BY date
    )
)
WHERE d >= toDate('2020-03-02')
ORDER BY d
⌘/Ctrl + Enter

Work with this data in your AI assistant

Opens ready to query, with this page's data. Free, no account.

More from this analysisMarket-Wide Circuit Breakers Explained
How the three lines move with each SPY close series 15×5 → The four Level 1 halt sessions of March 2020 series 4×8 → SPY-equivalent circuit breaker levels for the next session table 3×7 → Average minute range through the session, five liquid names series 26×3 → How far eight stocks move in a five minute window, trailing year ranking 8×4 → What a 5 percent band is worth in dollars, by price level ranking 8×4 → See all 3,293 queries →