STRASMORE/EXPLORE 2,433 QUERIES

spread_pin

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-20, from best-stocks-for-day-trading-options.

as of ranking 5×4read in context →
spread_pin — 5 rows by 4 columns, computed from US exchange, SIP and OPRA data.
symbolmedian_spread_pct_of_premiummedian_spread_dollarscontracts_in_sample
QQQ1.070.054
IWM1.720.034
AAPL2.530.033
SPY3.070.155
KO11.430.073
Rows × columns
5 × 4
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 spread_pin, derived from the stored result.
ColumnTypeRangeNotes
symbol text 5 distinct values (AAPL, IWM, KO…)
median_spread_pct_of_premium number 1.07 to 11.43 percent
median_spread_dollars number 0.03 to 0.15
contracts_in_sample number 3 to 5 count

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
    q.underlying                                                                          AS symbol,
    round(quantileDeterministic(0.5)(q.spread_pct, toUInt64(q.sequence_number)), 2)       AS median_spread_pct_of_premium,
    round(quantileDeterministic(0.5)(q.spread_dollars, toUInt64(q.sequence_number)), 3)   AS median_spread_dollars,
    countDistinct(q.ticker)                                                               AS contracts_in_sample
FROM
(
    SELECT
        ticker,
        sequence_number,
        multiIf(startsWith(ticker, 'O:SPY'),  'SPY',
                startsWith(ticker, 'O:QQQ'),  'QQQ',
                startsWith(ticker, 'O:IWM'),  'IWM',
                startsWith(ticker, 'O:AAPL'), 'AAPL',
                                              'KO')                             AS underlying,
        toFloat64(substring(ticker, length(ticker) - 7)) / 1000                 AS strike,
        toFloat64(ask_price - bid_price)                                        AS spread_dollars,
        toFloat64(ask_price - bid_price) / toFloat64(ask_price + bid_price) * 200 AS spread_pct
    FROM global_markets.cache_options_quotes
    WHERE ticker IN ('O:SPY241220C00580000', 'O:SPY241220C00583000', 'O:SPY241220C00586000', 'O:SPY241220C00589000', 'O:SPY241220C00592000',
                     'O:QQQ241220C00510000', 'O:QQQ241220C00513000', 'O:QQQ241220C00516000', 'O:QQQ241220C00519000', 'O:QQQ241220C00522000',
                     'O:IWM241220C00217000', 'O:IWM241220C00219000', 'O:IWM241220C00221000', 'O:IWM241220C00223000', 'O:IWM241220C00225000',
                     'O:AAPL241220C00245000', 'O:AAPL241220C00247500', 'O:AAPL241220C00250000', 'O:AAPL241220C00252500', 'O:AAPL241220C00255000',
                     'O:KO241220C00061000', 'O:KO241220C00062000', 'O:KO241220C00062500', 'O:KO241220C00063000', 'O:KO241220C00064000')
      AND sip_timestamp >= '2024-12-19 15:00:00'
      AND sip_timestamp <  '2024-12-19 15:30:00'
      AND bid_price > 0
      AND ask_price > bid_price
) AS q
INNER JOIN
(
    SELECT
        ticker              AS underlying,
        toFloat64(close)    AS session_close
    FROM global_markets.stocks_daily_aggs
    WHERE date = '2024-12-19'
      AND ticker IN ('SPY', 'QQQ', 'IWM', 'AAPL', 'KO')
) AS c ON c.underlying = q.underlying
WHERE abs(q.strike / c.session_close - 1) < 0.015
GROUP BY q.underlying
HAVING count() > 0
ORDER BY median_spread_pct_of_premium
⌘/Ctrl + Enter
More from this analysisbest-stocks-for-day-trading-options
ranked ranking 15×4 concentration ranking 4×3 trace series 20×6 Top 25 weekly-options underlyings by distinct contracts traded, with expiration weekdays ranking 25×4 Annualized volatility vs total return, 25 large caps, calmest to wildest (~2 years) ranking 25×3 SPY options median spread by expiration date, near-the-money strikes only ranking 25×4 See all 2,433 queries →