STRASMORE/EXPLORE 2,500 QUERIES

third_friday_gaps

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-09-23, from when-do-spx-options-stop-trading.

as of series 11×5read in context →
third_friday_gaps — 11 rows by 5 columns, computed from US exchange, SIP and OPRA data.
expiration_dateexpiration_labelovernight_gap_pctabs_gap_pctavg_abs_gap_pct
2025-10-17Oct 17, 2025-0.170.170.44
2025-11-21Nov 21, 20250.390.390.44
2025-12-19Dec 19, 20250.020.020.44
2026-01-16Jan 16, 20260.210.210.44
2026-02-20Feb 20, 2026-0.320.320.44
2026-03-20Mar 20, 2026-0.50.50.44
2026-04-17Apr 17, 20260.640.640.44
2026-05-15May 15, 2026-0.850.850.44
2026-07-17Jul 17, 2026-1.151.150.44
2026-08-21Aug 21, 20260.450.450.44
2026-09-18Sep 18, 2026-0.170.170.44
Rows × columns
11 × 5
Period covered
to
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 third_friday_gaps, derived from the stored result.
ColumnTypeRangeNotes
expiration_date date 2025-10-17 to 2026-09-18
expiration_label text 11 distinct values (Apr 17, 2026, Aug 21, 2026, Dec 19, 2025…)
overnight_gap_pct number -1.15 to 0.64 percent
abs_gap_pct number 0.02 to 1.15 percent
avg_abs_gap_pct number every row is 0.44 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.

SELECT
    toString(d)                          AS expiration_date,
    formatDateTime(d, '%b %e, %Y')       AS expiration_label,
    round(gap_pct, 2)                    AS overnight_gap_pct,
    round(abs(gap_pct), 2)               AS abs_gap_pct,
    round(avg(abs(gap_pct)) OVER (), 2)  AS avg_abs_gap_pct
FROM
(
    SELECT
        d,
        100 * (toFloat64(open_px) - toFloat64(prev_close)) / toFloat64(prev_close) AS gap_pct
    FROM
    (
        SELECT
            date                                       AS d,
            open                                       AS open_px,
            lagInFrame(close) OVER (ORDER BY date ASC) AS prev_close
        FROM global_markets.stocks_daily_aggs
        WHERE ticker = 'SPY'
          AND date >= '2025-10-01'
          AND date <= today() - 2
    )
    WHERE toDayOfWeek(d) = 5
      AND toDayOfMonth(d) BETWEEN 15 AND 21
)
ORDER BY expiration_date
⌘/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 analysiswhen-do-spx-options-stop-trading
thursday_tail series 8×3 friday_tail series 7×4 final_week series 5×4 friday_morning series 2×5 The 2s10s spread by month, full history series 604×5 One SPY $600 LEAPS call's price over two years (expired Jan 16 2026) series 470×2 See all 2,500 queries →