{"slug":"what-determines-an-option-price","qid":"sensitivity","label":"sensitivity","post_title":"what-determines-an-option-price","post_url":"/blog/what-determines-an-option-price#q-sensitivity","columns":["input_shifted","new_premium","premium_change","change_pct"],"rows":[{"input_shifted":"Volatility +5 points","new_premium":8.25,"premium_change":1.876,"change_pct":29.45},{"input_shifted":"Spot +1%","new_premium":7.86,"premium_change":1.492,"change_pct":23.43},{"input_shifted":"Dividend yield 2% a year","new_premium":6.14,"premium_change":-0.226,"change_pct":-3.55},{"input_shifted":"One day of decay","new_premium":6.21,"premium_change":-0.158,"change_pct":-2.48},{"input_shifted":"Short rate +100 bp","new_premium":6.48,"premium_change":0.11,"change_pct":1.72},{"input_shifted":"Base case (quoted inputs)","new_premium":6.37,"premium_change":0,"change_pct":0}],"shape":"ranking","sql":"WITH\n    pin AS\n    (\n        SELECT\n            toFloat64(underlying_close) AS s,\n            toFloat64(strike_price)     AS k,\n            days_to_expiry / 365.0      AS t,\n            implied_volatility          AS v,\n            risk_free_rate              AS r\n        FROM global_markets.options_greeks\n        WHERE underlying_symbol = 'AAPL'\n          AND startsWith(lower(toString(option_type)), 'c')\n          AND date = toDate('2026-09-16')\n          AND iv_converged = 1\n          AND volume > 0\n          AND days_to_expiry BETWEEN 25 AND 45\n          AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.03\n        ORDER BY volume DESC, ticker ASC\n        LIMIT 1\n    ),\n    shocked AS\n    (\n        SELECT\n            sc.1 AS input_shifted,\n            sc.2 AS spot_multiplier,\n            sc.3 AS vol_add,\n            sc.4 AS day_add,\n            sc.5 AS rate_add,\n            sc.6 AS div_yield,\n            s,\n            k,\n            t,\n            v,\n            r\n        FROM pin\n        ARRAY JOIN\n        [\n            ('Base case (quoted inputs)', 1.0,  0.0,  0.0,  0.0,  0.0),\n            ('Spot +1%',                  1.01, 0.0,  0.0,  0.0,  0.0),\n            ('Volatility +5 points',      1.0,  0.05, 0.0,  0.0,  0.0),\n            ('One day of decay',          1.0,  0.0, -1.0,  0.0,  0.0),\n            ('Short rate +100 bp',        1.0,  0.0,  0.0,  0.01, 0.0),\n            ('Dividend yield 2% a year',  1.0,  0.0,  0.0,  0.0,  0.02)\n        ] AS sc\n    ),\n    priced AS\n    (\n        SELECT\n            input_shifted,\n            (log(s / k) + (r + (v * v) / 2) * t) / (v * sqrt(t))                                    AS d1_base,\n            d1_base - v * sqrt(t)                                                                   AS d2_base,\n            s * 0.5 * (1 + erf(d1_base / sqrt(2))) - k * exp(-r * t) * 0.5 * (1 + erf(d2_base / sqrt(2)))  AS base_premium,\n            s * spot_multiplier                                                                     AS s_new,\n            v + vol_add                                                                             AS v_new,\n            t + day_add / 365.0                                                                     AS t_new,\n            r + rate_add                                                                            AS r_new,\n            (log(s_new / k) + (r_new - div_yield + (v_new * v_new) / 2) * t_new) / (v_new * sqrt(t_new)) AS d1_new,\n            d1_new - v_new * sqrt(t_new)                                                            AS d2_new,\n            s_new * exp(-div_yield * t_new) * 0.5 * (1 + erf(d1_new / sqrt(2))) - k * exp(-r_new * t_new) * 0.5 * (1 + erf(d2_new / sqrt(2))) AS new_premium_exact\n        FROM shocked\n    )\nSELECT\n    input_shifted,\n    round(new_premium_exact, 2)                                     AS new_premium,\n    round(new_premium_exact - base_premium, 3)                      AS premium_change,\n    round(100 * (new_premium_exact - base_premium) / base_premium, 2) AS change_pct\nFROM priced\nORDER BY abs(new_premium_exact - base_premium) DESC","computed_at":"2026-10-02T15:02:16.674990+00:00","elapsed":0.009331783}