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-28, from can-you-buy-a-put-without-owning-the-stock.
| strike | put_debit_usd | delta_abs | breakeven_below_spot_pct |
|---|---|---|---|
| $305 | 63 | 0.064 | 9.3 |
| $310 | 92 | 0.091 | 7.9 |
| $312.5 | 110 | 0.108 | 7.2 |
| $315 | 136 | 0.131 | 6.5 |
| $317.5 | 165 | 0.155 | 5.9 |
| $320 | 205 | 0.186 | 5.3 |
| $322.5 | 246 | 0.219 | 4.6 |
| $325 | 305 | 0.26 | 4.1 |
| $327.5 | 379 | 0.306 | 3.5 |
| $330 | 445 | 0.351 | 3 |
| $332.5 | 541 | 0.403 | 2.5 |
| $335 | 645 | 0.457 | 2.1 |
| $337.5 | 760 | 0.513 | 1.7 |
| $340 | 900 | 0.568 | 1.4 |
- Rows × columns
- 14 × 4
- 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 | 14 distinct values ($305, $310, $312.5…) | |
put_debit_usd |
number | 63 to 900 | US dollars |
delta_abs |
number | 0.064 to 0.568 | |
breakeven_below_spot_pct |
number | 1.4 to 9.3 | percent |
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
chain AS
(
SELECT
strike_price,
expiration_date,
option_close,
underlying_close,
delta,
volume
FROM global_markets.options_greeks
WHERE date = (SELECT max(date) FROM global_markets.options_greeks WHERE date >= today() - 40)
AND underlying_symbol = 'AAPL'
AND lower(option_type) IN ('put', 'p')
AND iv_converged = 1
AND volume > 0
AND days_to_expiry BETWEEN 20 AND 45
),
busiest_expiry AS
(
SELECT expiration_date
FROM chain
GROUP BY expiration_date
ORDER BY sum(volume) DESC
LIMIT 1
)
SELECT
concat('$', toString(round(toFloat64(strike_price), 2))) AS strike,
round(toFloat64(any(option_close)) * 100, 0) AS put_debit_usd,
round(abs(toFloat64(any(delta))), 3) AS delta_abs,
round(100 * (1 - (toFloat64(any(strike_price)) - toFloat64(any(option_close)))
/ toFloat64(any(underlying_close))), 1) AS breakeven_below_spot_pct
FROM chain
WHERE expiration_date = (SELECT expiration_date FROM busiest_expiry)
AND toFloat64(strike_price) / toFloat64(underlying_close) BETWEEN 0.90 AND 1.02
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.