STRASMORE/EXPLORE 3,214 QUERIES

How far SPY's open sat from the prior close, every session since 2006

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-08, from Trailing Stop vs Trailing Stop-Limit Orders.

as of ranking 6×3read in context →
How far SPY's open sat from the prior close, every session since 2006 — 6 rows by 3 columns, computed from US exchange, SIP and OPRA data.
gap_bucketgap_countshare_pct
opened 3% or more below180.35
opened 2% to 3% below450.86
opened 1% to 2% below2184.18
opened 0.5% to 1% below4408.43
opened less than 0.5% below161730.99
opened flat or higher287955.18
Rows × columns
6 × 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 How far SPY's open sat from the prior close, every session since 2006, derived from the stored result.
ColumnTypeRangeNotes
gap_bucket text 6 distinct values
gap_count number 18 to 2,879 count
share_pct number 0.35 to 55.18 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,
        toFloat64(any(open))  AS open_px,
        toFloat64(any(close)) AS close_px
    FROM global_markets.stocks_daily_aggs
    WHERE ticker = 'SPY'
      AND date >= '2006-01-01'
      AND date <  '2026-10-01'
    GROUP BY date
),
sessions AS
(
    SELECT
        date,
        open_px,
        lagInFrame(close_px) OVER (ORDER BY date ASC ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prior_close
    FROM daily
),
gaps AS
(
    SELECT round(100 * (open_px / prior_close - 1), 4) AS gap_pct
    FROM sessions
    WHERE prior_close > 0
)
SELECT
    multiIf(gap_pct <= -3,   'opened 3% or more below',
            gap_pct <= -2,   'opened 2% to 3% below',
            gap_pct <= -1,   'opened 1% to 2% below',
            gap_pct <= -0.5, 'opened 0.5% to 1% below',
            gap_pct <  0,    'opened less than 0.5% below',
                             'opened flat or higher')  AS gap_bucket,
    count()                                            AS gap_count,
    round(100 * count() / sum(count()) OVER (), 2)     AS share_pct
FROM gaps
GROUP BY gap_bucket
ORDER BY min(gap_pct) ASC
⌘/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 analysisTrailing Stop vs Trailing Stop-Limit Orders
The ten deepest gap-down opens in SPY since 2006, and where those sessions traded ranking 10×4 → A 10% trail ratcheting under AAPL's high-water close, January to mid-March 2022 series 50×5 → When each trail width would first have been reached, same position, January to June 2022 series 5×4 → AAPL's ten largest overnight gaps down, Jan 2023 to Jun 2026 ranking 10×2 → Apple's eight widest downside opening gaps since 2021 ranking 8×4 → How far the open landed from the prior close (SPY sessions, 2016 to 2026) ranking 6×3 → See all 3,214 queries →