STRASMORE/EXPLORE 3,214 QUERIES

Median and 95th-percentile opening step by weekday (SPY, 2016 to 2026)

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-10-07, from Forex Pending Order Types: Limits & Stops.

as of series 5×3read in context →
Median and 95th-percentile opening step by weekday (SPY, 2016 to 2026) — 5 rows by 3 columns, computed from US exchange, SIP and OPRA data.
weekdaymedian_gap_pctp95_gap_pct
Friday0.3271.213
Monday0.3071.442
Thursday0.3051.261
Tuesday0.2631.364
Wednesday0.2571.235
Rows × columns
5 × 3
Computed
Completeness
No missing values
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 Median and 95th-percentile opening step by weekday (SPY, 2016 to 2026), derived from the stored result.
ColumnTypeRangeNotes
weekday text 5 distinct values (Friday, Monday, Thursday…)
median_gap_pct number 0.257 to 0.327 percent
p95_gap_pct number 1.213 to 1.442 percent

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.

WITH
    daily AS
    (
        SELECT
            date,
            any(toFloat64(open))  AS session_open,
            any(toFloat64(close)) AS session_close
        FROM global_markets.stocks_daily_aggs
        WHERE ticker = 'SPY'
          AND date >= '2016-01-01'
          AND date <  '2026-10-01'
        GROUP BY date
    ),
    gapped AS
    (
        SELECT
            date,
            session_open,
            lagInFrame(session_close) OVER (ORDER BY date ASC ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prior_close
        FROM daily
    )
SELECT
    formatDateTime(date, '%W')                          AS weekday,
    round(quantileDeterministic(0.5)(gap_pct, det), 3)  AS median_gap_pct,
    round(quantileDeterministic(0.95)(gap_pct, det), 3) AS p95_gap_pct
FROM
(
    SELECT
        date,
        toYYYYMMDD(date)                          AS det,
        abs(session_open / prior_close - 1) * 100  AS gap_pct
    FROM gapped
    WHERE prior_close > 0
)
GROUP BY weekday
ORDER BY median_gap_pct DESC
⌘/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 analysisForex Pending Order Types: Limits & Stops
The ten largest opening steps in SPY, 2016 to 2026 series 10×4 → How far the open landed from the prior close (SPY sessions, 2016 to 2026) ranking 6×3 → How often a session reached a level set away from the open (SPY, 2016 to 2026) ranking 5×3 → AAPL average quoted spread by ET clock time, Sep 16 2026 series 64×3 → A 10% trail ratcheting under AAPL's high-water close, January to mid-March 2022 series 50×5 → SPY minute-bar movement and volume by ET clock time series 32×3 → See all 3,214 queries →