{"slug":"how-event-contracts-settle","qid":"settlement_shape","label":"Final-day call prices by where the strike sat against the price","post_title":"How Event Contracts Settle: Payout and Fees","post_url":"/blog/how-event-contracts-settle#q-settlement_shape","columns":["strike_vs_spot","avg_traded_price","avg_intrinsic_value"],"rows":[{"strike_vs_spot":"3% ITM","avg_traded_price":20.75,"avg_intrinsic_value":19.26},{"strike_vs_spot":"2.5% ITM","avg_traded_price":17.43,"avg_intrinsic_value":15.79},{"strike_vs_spot":"2% ITM","avg_traded_price":13.65,"avg_intrinsic_value":12.34},{"strike_vs_spot":"1.5% ITM","avg_traded_price":10.04,"avg_intrinsic_value":8.72},{"strike_vs_spot":"1% ITM","avg_traded_price":6.64,"avg_intrinsic_value":5.18},{"strike_vs_spot":"0.5% ITM","avg_traded_price":3.83,"avg_intrinsic_value":1.77},{"strike_vs_spot":"at the money","avg_traded_price":1.74,"avg_intrinsic_value":0},{"strike_vs_spot":"0.5% OTM","avg_traded_price":0.65,"avg_intrinsic_value":0},{"strike_vs_spot":"1% OTM","avg_traded_price":0.22,"avg_intrinsic_value":0},{"strike_vs_spot":"1.5% OTM","avg_traded_price":0.08,"avg_intrinsic_value":0},{"strike_vs_spot":"2% OTM","avg_traded_price":0.04,"avg_intrinsic_value":0},{"strike_vs_spot":"2.5% OTM","avg_traded_price":0.02,"avg_intrinsic_value":0}],"shape":"ranking","sql":"SELECT\n    multiIf(\n        bucket < 0, concat(toString(abs(round(100 * bucket, 1))), '% ITM'),\n        bucket = 0, 'at the money',\n        concat(toString(round(100 * bucket, 1)), '% OTM')) AS strike_vs_spot,\n    round(avg(price), 2)      AS avg_traded_price,\n    round(avg(payoff_now), 2) AS avg_intrinsic_value\nFROM\n(\n    SELECT\n        floor((toFloat64(strike_price) / toFloat64(underlying_close) - 1) / 0.005) * 0.005 AS bucket,\n        toFloat64(option_close) AS price,\n        greatest(toFloat64(underlying_close) - toFloat64(strike_price), 0.0) AS payoff_now\n    FROM global_markets.options_greeks\n    WHERE underlying_symbol = 'SPY'\n      AND option_type IN ('call', 'C')\n      AND date >= '2026-01-02'\n      AND date <  '2026-07-01'\n      AND volume > 0\n      AND iv_converged = 1\n      AND days_to_expiry <= 1\n      AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) <= 0.03\n)\nGROUP BY bucket\nORDER BY bucket","computed_at":"2026-08-09T15:34:00.850713+00:00","elapsed":0.003669448}