STRASMORE/EXPLORE 2,358 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-09-18, from how-much-money-do-you-need-to-trade-options.

as of table 8×5read in context →
put_ladder — 8 rows by 5 columns, computed from US exchange, SIP and OPRA data.
strikepct_below_closecredit_usdmargin_required_usdcash_secured_usd
1909148243619000
192.57.9189272719250
1956.7221300919500
197.55.5280331819750
2004.3320360820000
202.53.1397393520250
2051.9476426420500
207.50.7575461320750
Rows × columns
8 × 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 put_ladder, derived from the stored result.
ColumnTypeRangeNotes
strike text 8 distinct values (190, 192.5, 195…)
pct_below_close number 0.7 to 9 percent
credit_usd number 148 to 575 US dollars
margin_required_usd number 2,436 to 4,613 US dollars
cash_secured_usd number 19,000 to 20,750 US dollars

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.

the exact SQL behind every number
SELECT
    toString(toFloat64(strike_price))                                                 AS strike,
    round((1 - toFloat64(strike_price) / toFloat64(max(underlying_close))) * 100, 1)  AS pct_below_close,
    toUInt32(round(toFloat64(max(option_close)) * 100))                               AS credit_usd,
    toUInt32(round(greatest(
        0.20 * toFloat64(max(underlying_close))
          - greatest(toFloat64(max(underlying_close)) - toFloat64(strike_price), 0.0)
          + toFloat64(max(option_close)),
        0.10 * toFloat64(strike_price) + toFloat64(max(option_close))
    ) * 100))                                                                         AS margin_required_usd,
    toUInt32(toFloat64(strike_price) * 100)                                           AS cash_secured_usd
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
  AND toDate(date) = '2025-05-19'
  AND toDate(expiration_date) = '2025-06-20'
  AND lower(toString(option_type)) IN ('p', 'put')
  AND iv_converged = 1
  AND volume > 0
  AND toFloat64(strike_price) <= toFloat64(underlying_close)
  AND toFloat64(strike_price) >= toFloat64(underlying_close) * 0.90
GROUP BY strike_price
ORDER BY strike_price

Run your own version of this

The same 22 years of US equities and 12 years of options data are queryable in SQL or plain English. A free account runs 100 queries a day and takes no card.

More from this analysishow-much-money-do-you-need-to-trade-options
call_ladder table 8×5 put_trace series 31×5 spread_ladder ranking 8×3 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,358 queries →