STRASMORE/EXPLORE 2,500 QUERIES

delta_ladder

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 covered-call-screener-from-the-free-sql-api.

as of table 6×5read in context →
delta_ladder — 6 rows by 5 columns, computed from US exchange, SIP and OPRA data.
delta_bandcontractsavg_otm_pctavg_annual_yield_pctavg_iv_pct
delta 0.05-0.1017012.532.725.2
delta 0.10-0.201778.816.124.5
delta 0.20-0.301225.6911.824.3
delta 0.30-0.401013.518.724.3
delta 0.40-0.50951.5327.124.4
delta 0.50-0.65230.2834.225
Rows × columns
6 × 5
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 delta_ladder, derived from the stored result.
ColumnTypeRangeNotes
delta_band text 6 distinct values
contracts number 23 to 177 count
avg_otm_pct number 0.28 to 12.53 percent
avg_annual_yield_pct number 2.7 to 34.2 percent
avg_iv_pct number 24.3 to 25.2 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
    multiIf(delta < 0.10, 'delta 0.05-0.10',
            delta < 0.20, 'delta 0.10-0.20',
            delta < 0.30, 'delta 0.20-0.30',
            delta < 0.40, 'delta 0.30-0.40',
            delta < 0.50, 'delta 0.40-0.50',
                          'delta 0.50-0.65')                                           AS delta_band,
    count()                                                                            AS contracts,
    round(avg(toFloat64(strike_price) / toFloat64(underlying_close) - 1) * 100, 2)      AS avg_otm_pct,
    round(avg(toFloat64(option_close) / toFloat64(underlying_close)
              * 365.0 / days_to_expiry) * 100, 1)                                      AS avg_annual_yield_pct,
    round(avg(implied_volatility) * 100, 1)                                            AS avg_iv_pct
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
  AND date >= '2026-08-01'
  AND date <  '2026-09-01'
  AND iv_converged = 1
  AND volume > 0
  AND days_to_expiry BETWEEN 20 AND 45
  AND delta BETWEEN 0.05 AND 0.65
  AND strike_price > underlying_close
GROUP BY delta_band
ORDER BY min(delta)
⌘/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 analysiscovered-call-screener-from-the-free-sql-api
screen_board table 12×8 replay_outcomes series 11×5 premium_by_symbol ranking 8×4 The 2s10s spread, every print of the half table 124×2 The 2s10s spread, every print of the half table 124×2 Every half-year since 1976: the 2y and 10y change, the twist between them, and the half's lowest 2s10s print table 100×7 See all 2,500 queries →