{"slug":"how-options-are-quoted-in-volatility","qid":"premium_vs_vol_moves","label":"Typical daily move: option premium against quoted volatility","post_title":"How Options Are Quoted in Volatility","post_url":"/blog/how-options-are-quoted-in-volatility#q-premium_vs_vol_moves","columns":["symbol","median_premium_move_pct","median_vol_move_pct","premium_move_ratio"],"rows":[{"symbol":"KO","median_premium_move_pct":15.84,"median_vol_move_pct":7.48,"premium_move_ratio":2.1},{"symbol":"JNJ","median_premium_move_pct":18.73,"median_vol_move_pct":8.56,"premium_move_ratio":2.2},{"symbol":"AAPL","median_premium_move_pct":16.42,"median_vol_move_pct":6.51,"premium_move_ratio":2.5},{"symbol":"MSFT","median_premium_move_pct":14.63,"median_vol_move_pct":5.57,"premium_move_ratio":2.6},{"symbol":"NVDA","median_premium_move_pct":15.22,"median_vol_move_pct":5.35,"premium_move_ratio":2.8},{"symbol":"SPY","median_premium_move_pct":16.37,"median_vol_move_pct":5.39,"premium_move_ratio":3}],"shape":"ranking","sql":"SELECT\n    underlying_symbol                                              AS symbol,\n    round(quantileDeterministic(0.5)(premium_move_pct, obs_id), 2) AS median_premium_move_pct,\n    round(quantileDeterministic(0.5)(vol_move_pct, obs_id), 2)     AS median_vol_move_pct,\n    round(quantileDeterministic(0.5)(premium_move_pct, obs_id)\n        / quantileDeterministic(0.5)(vol_move_pct, obs_id), 1)     AS premium_move_ratio\nFROM\n(\n    SELECT\n        underlying_symbol,\n        cityHash64(ticker, date)                                AS obs_id,\n        100 * abs(toFloat64(option_close) / prev_premium - 1)   AS premium_move_pct,\n        100 * abs(toFloat64(implied_volatility) / prev_vol - 1) AS vol_move_pct\n    FROM\n    (\n        SELECT\n            underlying_symbol,\n            ticker,\n            date,\n            option_close,\n            implied_volatility,\n            lagInFrame(toFloat64(option_close))       OVER (PARTITION BY ticker ORDER BY date ASC) AS prev_premium,\n            lagInFrame(toFloat64(implied_volatility)) OVER (PARTITION BY ticker ORDER BY date ASC) AS prev_vol,\n            lagInFrame(date)                          OVER (PARTITION BY ticker ORDER BY date ASC) AS prev_date\n        FROM global_markets.options_greeks\n        WHERE underlying_symbol IN ('AAPL', 'MSFT', 'NVDA', 'SPY', 'KO', 'JNJ')\n          AND date BETWEEN '2026-04-06' AND '2026-05-15'\n          AND iv_converged = 1\n          AND volume > 0\n          AND days_to_expiry BETWEEN 20 AND 45\n          AND option_close > 0\n          AND implied_volatility > 0\n          AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05\n    )\n    WHERE prev_premium > 0\n      AND prev_vol > 0\n      AND dateDiff('day', prev_date, date) <= 4\n)\nGROUP BY underlying_symbol\nHAVING count() >= 200\nORDER BY premium_move_ratio ASC","computed_at":"2026-08-17T14:04:12.482160+00:00","elapsed":0.003760826}