STRASMORE/EXPLORE 2,948 QUERIES

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.

as of table 9×9read in context →
put_ladder — 9 rows by 9 columns, computed from US exchange, SIP and OPRA data.
strikeput_premiumabs_deltaiv_pctpremium_pct_of_spotpremium_per_contractcommitment_labelspot_labelsession_label
$2550.540.05330.18$54$25.5k$297.1Jun 17, 2026
$2600.670.0631.10.23$67$26k$297.1Jun 17, 2026
$2650.930.0829.80.31$93$26.5k$297.1Jun 17, 2026
$2701.20.1280.4$120$27k$297.1Jun 17, 2026
$2751.70.14270.57$170$27.5k$297.1Jun 17, 2026
$2802.310.1925.60.78$231$28k$297.1Jun 17, 2026
$2853.30.2524.71.11$330$28.5k$297.1Jun 17, 2026
$2904.850.3424.61.63$485$29k$297.1Jun 17, 2026
$2956.70.43242.26$670$29.5k$297.1Jun 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
Formats
JSON · CSV · the SQL below

What each column holds

Column definitions for put_ladder, derived from the stored result.
ColumnTypeRangeNotes
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
⌘/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 analysiswhy-would-anyone-sell-a-put-option
cushion_outcomes table 4×6 → iv_vs_rv series 32×4 → premium_across_names ranking 7×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,948 queries →