parity_check
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-24, from market-making-in-prediction-markets.
| strike_vs_spot | call_delta | put_delta_abs | delta_sum | contract_count |
|---|---|---|---|---|
| -5% | 0.836 | 0.176 | 1.012 | 1391 |
| -4% | 0.808 | 0.206 | 1.014 | 2864 |
| -3% | 0.758 | 0.254 | 1.011 | 3087 |
| -2% | 0.699 | 0.312 | 1.011 | 3387 |
| -1% | 0.623 | 0.382 | 1.005 | 3510 |
| +0% | 0.537 | 0.463 | 1.001 | 3678 |
| +1% | 0.442 | 0.552 | 0.994 | 3282 |
| +2% | 0.343 | 0.643 | 0.986 | 2739 |
| +3% | 0.245 | 0.725 | 0.97 | 2263 |
| +4% | 0.165 | 0.793 | 0.958 | 1919 |
| +5% | 0.115 | 0.822 | 0.937 | 817 |
- Rows × columns
- 11 × 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_vs_spot |
text | 11 distinct values (+0%, +1%, +2%…) | |
call_delta |
number | 0.115 to 0.836 | |
put_delta_abs |
number | 0.176 to 0.822 | |
delta_sum |
number | 0.937 to 1.014 | |
contract_count |
number | 817 to 3,678 | 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
concat(if(strike_pct >= 0, '+', ''), toString(strike_pct), '%') AS strike_vs_spot,
round(avgIf(d, is_call), 3) AS call_delta,
round(-avgIf(d, NOT is_call), 3) AS put_delta_abs,
round(avgIf(d, is_call) - avgIf(d, NOT is_call), 3) AS delta_sum,
count() AS contract_count
FROM
(
SELECT
toFloat64(delta) AS d,
startsWith(lower(option_type), 'c') AS is_call,
toInt32(round(100 * (toFloat64(strike_price) / toFloat64(underlying_close) - 1))) AS strike_pct
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
AND date >= '2026-04-01'
AND date <= '2026-06-30'
AND iv_converged = 1
AND volume > 0
AND days_to_expiry >= 20
AND days_to_expiry <= 45
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) <= 0.05
)
GROUP BY strike_pct
HAVING countIf(is_call) > 0 AND countIf(NOT is_call) > 0
ORDER BY strike_pct
Work with this data in your AI assistant
Opens ready to query, with this page's data. Free, no account.