{"slug":"what-is-a-risk-reversal","qid":"desk_rr","label":"The 25-delta risk reversal for SPY, AAPL and TSLA, nearest-to-30-day expiration, latest session","post_title":"Risk Reversal Options: Sell a Put, Buy a Call","post_url":"/blog/what-is-a-risk-reversal#q-desk_rr","columns":["symbol","priced_on","expiry","put_25d_iv_pct","call_25d_iv_pct","risk_reversal_pct"],"rows":[{"symbol":"SPY","priced_on":"September 17, 2026","expiry":"October 16, 2026","put_25d_iv_pct":15.31,"call_25d_iv_pct":10.32,"risk_reversal_pct":4.99},{"symbol":"AAPL","priced_on":"September 17, 2026","expiry":"October 16, 2026","put_25d_iv_pct":24.06,"call_25d_iv_pct":23.39,"risk_reversal_pct":0.67},{"symbol":"TSLA","priced_on":"September 17, 2026","expiry":"October 16, 2026","put_25d_iv_pct":40.92,"call_25d_iv_pct":42.12,"risk_reversal_pct":-1.2}],"shape":"table","sql":"SELECT\n    symbol,\n    priced_on,\n    expiry,\n    round(100 * put_iv_25d, 2)                     AS put_25d_iv_pct,\n    round(100 * call_iv_25d, 2)                    AS call_25d_iv_pct,\n    round(100 * (put_iv_25d - call_iv_25d), 2)     AS risk_reversal_pct\nFROM\n(\n    SELECT\n        underlying_symbol                                                                  AS symbol,\n        concat(monthName(any(date)), ' ', toString(toDayOfMonth(any(date))), ', ',\n               toString(toYear(any(date))))                                                AS priced_on,\n        concat(monthName(expiration_date), ' ', toString(toDayOfMonth(expiration_date)), ', ',\n               toString(toYear(expiration_date)))                                          AS expiry,\n        any(days_to_expiry)                                                                AS dte,\n        maxIf(-delta, delta < 0 AND -delta <= 0.25)                                        AS p_lo_d,\n        argMaxIf(implied_volatility, -delta, delta < 0 AND -delta <= 0.25)                 AS p_lo_iv,\n        minIf(-delta, delta < 0 AND -delta >= 0.25)                                        AS p_hi_d,\n        argMinIf(implied_volatility, -delta, delta < 0 AND -delta >= 0.25)                 AS p_hi_iv,\n        maxIf(delta, delta > 0 AND delta <= 0.25)                                          AS c_lo_d,\n        argMaxIf(implied_volatility, delta, delta > 0 AND delta <= 0.25)                   AS c_lo_iv,\n        minIf(delta, delta > 0 AND delta >= 0.25)                                          AS c_hi_d,\n        argMinIf(implied_volatility, delta, delta > 0 AND delta >= 0.25)                   AS c_hi_iv,\n        if(p_hi_d = p_lo_d, p_lo_iv,\n           p_lo_iv + (p_hi_iv - p_lo_iv) * (0.25 - p_lo_d) / (p_hi_d - p_lo_d))           AS put_iv_25d,\n        if(c_hi_d = c_lo_d, c_lo_iv,\n           c_lo_iv + (c_hi_iv - c_lo_iv) * (0.25 - c_lo_d) / (c_hi_d - c_lo_d))           AS call_iv_25d\n    FROM global_markets.options_greeks\n    WHERE underlying_symbol IN ('SPY', 'AAPL', 'TSLA')\n      AND date = (\n          SELECT max(date)\n          FROM global_markets.options_greeks\n          WHERE underlying_symbol = 'SPY'\n            AND date >= today() - 14\n      )\n      AND iv_converged = 1\n      AND volume > 0\n      AND abs(delta) BETWEEN 0.05 AND 0.5\n    GROUP BY underlying_symbol, expiration_date\n    HAVING countIf(delta < 0 AND -delta <= 0.25) > 0\n       AND countIf(delta < 0 AND -delta >= 0.25) > 0\n       AND countIf(delta > 0 AND delta <= 0.25) > 0\n       AND countIf(delta > 0 AND delta >= 0.25) > 0\n       AND dte BETWEEN 20 AND 45\n    ORDER BY symbol, abs(dte - 30)\n    LIMIT 1 BY symbol\n)\nORDER BY indexOf(['SPY', 'AAPL', 'TSLA'], symbol)","computed_at":"2026-09-19T15:30:58.215165+00:00","elapsed":0.211838212}