put_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-10-02, from why-would-anyone-sell-a-put-option.
| strike | put_premium | abs_delta | iv_pct | premium_pct_of_spot | premium_per_contract | commitment_label | spot_label | session_label |
|---|---|---|---|---|---|---|---|---|
| $255 | 0.54 | 0.05 | 33 | 0.18 | $54 | $25.5k | $297.1 | Jun 17, 2026 |
| $260 | 0.67 | 0.06 | 31.1 | 0.23 | $67 | $26k | $297.1 | Jun 17, 2026 |
| $265 | 0.93 | 0.08 | 29.8 | 0.31 | $93 | $26.5k | $297.1 | Jun 17, 2026 |
| $270 | 1.2 | 0.1 | 28 | 0.4 | $120 | $27k | $297.1 | Jun 17, 2026 |
| $275 | 1.7 | 0.14 | 27 | 0.57 | $170 | $27.5k | $297.1 | Jun 17, 2026 |
| $280 | 2.31 | 0.19 | 25.6 | 0.78 | $231 | $28k | $297.1 | Jun 17, 2026 |
| $285 | 3.3 | 0.25 | 24.7 | 1.11 | $330 | $28.5k | $297.1 | Jun 17, 2026 |
| $290 | 4.85 | 0.34 | 24.6 | 1.63 | $485 | $29k | $297.1 | Jun 17, 2026 |
| $295 | 6.7 | 0.43 | 24 | 2.26 | $670 | $29.5k | $297.1 | Jun 17, 2026 |
- Rows × columns
- 9 × 9
- 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 | 9 distinct values ($255, $260, $265…) | |
put_premium |
number | 0.54 to 6.7 | US dollars |
abs_delta |
number | 0.05 to 0.43 | |
iv_pct |
number | 24 to 33 | percent |
premium_pct_of_spot |
number | 0.18 to 2.26 | percent |
premium_per_contract |
text | 9 distinct values ($120, $170, $231…) | |
commitment_label |
text | 9 distinct values ($25.5k, $26.5k, $26k…) | |
spot_label |
text | 1 distinct value ($297.1) | |
session_label |
text | 1 distinct value (Jun 17, 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.
SELECT
concat('$', toString(toUInt32(round(toFloat64(strike_price))))) AS strike,
round(avg(toFloat64(option_close)), 2) AS put_premium,
round(avg(abs(delta)), 2) AS abs_delta,
round(avg(implied_volatility) * 100, 1) AS iv_pct,
round(100 * avg(toFloat64(option_close)) / avg(toFloat64(underlying_close)), 2) AS premium_pct_of_spot,
concat('$', toString(toUInt32(round(avg(toFloat64(option_close)) * 100)))) AS premium_per_contract,
concat('$', toString(round(toFloat64(strike_price) / 10, 1)), 'k') AS commitment_label,
concat('$', toString(round(avg(toFloat64(underlying_close)), 2))) AS spot_label,
formatDateTime(toDate('2026-06-17'), '%b %e, %Y') AS session_label
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND delta < 0
AND date = '2026-06-17'
AND iv_converged = 1
AND volume > 0
AND days_to_expiry BETWEEN 28 AND 35
AND modulo(toFloat64(strike_price), 5) = 0
AND toFloat64(strike_price) BETWEEN toFloat64(underlying_close) * 0.85
AND toFloat64(underlying_close) * 1.005
GROUP BY strike_price
ORDER BY strike_price
Work with this data in your AI assistant
Opens ready to query, with this page's data. Free, no account.