chain
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-28, from iron-condor-screener-from-the-free-sql-api.
| strike | put_delta | call_delta | expiry | as_of |
|---|---|---|---|---|
| 720 | -0.123 | 0.918 | Oct 30, 2026 | Sep 24, 2026 |
| 725 | -0.137 | 0.874 | Oct 30, 2026 | Sep 24, 2026 |
| 730 | -0.162 | 0.859 | Oct 30, 2026 | Sep 24, 2026 |
| 735 | -0.183 | 0.822 | Oct 30, 2026 | Sep 24, 2026 |
| 740 | -0.212 | 0.759 | Oct 30, 2026 | Sep 24, 2026 |
| 745 | -0.249 | 0.73 | Oct 30, 2026 | Sep 24, 2026 |
| 750 | -0.288 | 0.692 | Oct 30, 2026 | Sep 24, 2026 |
| 755 | -0.332 | 0.651 | Oct 30, 2026 | Sep 24, 2026 |
| 760 | -0.384 | 0.61 | Oct 30, 2026 | Sep 24, 2026 |
| 765 | -0.441 | 0.557 | Oct 30, 2026 | Sep 24, 2026 |
| 770 | -0.504 | 0.497 | Oct 30, 2026 | Sep 24, 2026 |
| 775 | -0.576 | 0.434 | Oct 30, 2026 | Sep 24, 2026 |
| 780 | -0.639 | 0.368 | Oct 30, 2026 | Sep 24, 2026 |
| 785 | -0.66 | 0.309 | Oct 30, 2026 | Sep 24, 2026 |
| 790 | -0.767 | 0.246 | Oct 30, 2026 | Sep 24, 2026 |
| 800 | -0.821 | 0.143 | Oct 30, 2026 | Sep 24, 2026 |
- Rows × columns
- 16 × 5
- Computed
- Completeness
- No missing values
- Source
- US exchange, SIP and OPRA market data
- Licence
- Strasmore terms · free, no signup
What each column holds
| Column | Type | Range | Notes |
|---|---|---|---|
strike |
text | 16 distinct values (720, 725, 730…) | |
put_delta |
number | -0.821 to -0.123 | |
call_delta |
number | 0.143 to 0.918 | |
expiry |
text | 1 distinct value (Oct 30, 2026) | |
as_of |
text | 1 distinct value (Sep 24, 2026) |
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
(
SELECT max(date)
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
) AS snapshot,
(
SELECT expiration_date
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
AND date = snapshot
AND iv_converged = 1
AND volume > 0
AND days_to_expiry BETWEEN 25 AND 45
GROUP BY expiration_date
ORDER BY sum(volume) DESC
LIMIT 1
) AS target_expiry
SELECT
toString(toUInt32(toFloat64(strike_price))) AS strike,
round(avgIf(toFloat64(delta), toFloat64(delta) < 0), 3) AS put_delta,
round(avgIf(toFloat64(delta), toFloat64(delta) > 0), 3) AS call_delta,
formatDateTime(target_expiry, '%b %e, %Y') AS expiry,
formatDateTime(snapshot, '%b %e, %Y') AS as_of
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
AND date = snapshot
AND expiration_date = target_expiry
AND iv_converged = 1
AND volume > 0
AND toFloat64(option_close) > 0
AND toUInt32(round(toFloat64(strike_price) * 100)) % 500 = 0
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.06
GROUP BY strike_price
HAVING countIf(toFloat64(delta) < 0) > 0
AND countIf(toFloat64(delta) > 0) > 0
ORDER BY strike_price
Work with this data in your AI assistant
Opens ready to query, with this page's data. Free, no account.