structure
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-19, from what-is-a-risk-reversal.
| component | strike | delta | iv_pct | premium_per_share | stock_close |
|---|---|---|---|---|---|
| short put (premium received) | $310 | -0.268 | 31.69 | 5.25 | $326 |
| long call (premium paid) | $347.5 | 0.267 | 30.63 | 4.6 | $326 |
| net credit | 0.535 | 1.07 | 0.65 | $326 |
- Rows × columns
- 3 × 6
- Computed
- Completeness
- Some fields are partly empty — see the columns below
- Source
- US exchange, SIP and OPRA market data
- Licence
- Strasmore terms · free, no signup
What each column holds
| Column | Type | Range | Notes |
|---|---|---|---|
component |
text | 3 distinct values | |
strike |
text | 2 distinct values ($310, $347.5) | 2 of 3 rows populated |
delta |
number | -0.268 to 0.535 | |
iv_pct |
number | 1.07 to 31.69 | percent |
premium_per_share |
number | 0.65 to 5.25 | US dollars |
stock_close |
text | 1 distinct value ($326) |
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
multiIf(ord = 1, 'short put (premium received)',
ord = 2, 'long call (premium paid)',
net >= 0, 'net credit', 'net debit') AS component,
multiIf(ord = 1, concat('$', toString(put_strike)),
ord = 2, concat('$', toString(call_strike)), '') AS strike,
round(multiIf(ord = 1, put_delta, ord = 2, call_delta, call_delta - put_delta), 3) AS delta,
round(100 * multiIf(ord = 1, put_iv, ord = 2, call_iv, put_iv - call_iv), 2) AS iv_pct,
round(multiIf(ord = 1, put_premium, ord = 2, call_premium, abs(net)), 2) AS premium_per_share,
concat('$', toString(round(spot, 2))) AS stock_close
FROM
(
SELECT
arrayJoin([1, 2, 3]) AS ord,
put_strike, put_delta, put_iv, put_premium,
call_strike, call_delta, call_iv, call_premium,
put_premium - call_premium AS net,
spot
FROM
(
SELECT
anyIf(strike, side = 'put') AS put_strike,
anyIf(delta, side = 'put') AS put_delta,
anyIf(iv, side = 'put') AS put_iv,
anyIf(premium, side = 'put') AS put_premium,
anyIf(strike, side = 'call') AS call_strike,
anyIf(delta, side = 'call') AS call_delta,
anyIf(iv, side = 'call') AS call_iv,
anyIf(premium, side = 'call') AS call_premium,
any(spot) AS spot
FROM
(
SELECT
if(delta < 0, 'put', 'call') AS side,
toFloat64(strike_price) AS strike,
delta,
implied_volatility AS iv,
toFloat64(option_close) AS premium,
toFloat64(underlying_close) AS spot
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date = '2026-07-20'
AND expiration_date = '2026-08-21'
AND iv_converged = 1
AND volume > 0
ORDER BY abs(abs(delta) - 0.25)
LIMIT 1 BY side
)
)
)
ORDER BY ord
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 analysiswhat-is-a-risk-reversal
chain
table 28×5
→
payoff
table 11×5
→
desk_rr
table 3×6
→
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,401 queries →