{"slug":"ex-dividend-dates-and-options","qid":"exercise_census","label":"The early-exercise census: every ITM call on every June 30 ex-dividend payer, tested on June 29","post_title":"How Ex-Dividend Dates Affect Options","post_url":"/blog/ex-dividend-dates-and-options#q-exercise_census","columns":["underlyings_measured","itm_calls_measured","exercise_optimal","pct_optimal"],"rows":[{"underlyings_measured":85,"itm_calls_measured":613,"exercise_optimal":184,"pct_optimal":30}],"shape":"scalar","sql":"WITH divs AS (\n    SELECT ticker, max(cash_amount) AS dividend\n    FROM global_markets.stocks_dividends\n    WHERE ex_dividend_date = toDate('2026-06-30') AND cash_amount > 0\n    GROUP BY ticker\n)\nSELECT count(DISTINCT g.underlying_symbol) AS underlyings_measured,\n       count() AS itm_calls_measured,\n       countIf(g.option_close - (g.underlying_close - g.strike_price) < d.dividend) AS exercise_optimal,\n       round(100.0 * countIf(g.option_close - (g.underlying_close - g.strike_price) < d.dividend) / count(), 1) AS pct_optimal\nFROM global_markets.options_greeks g\nINNER JOIN divs d ON g.underlying_symbol = d.ticker\nWHERE g.date = toDate('2026-06-29')\n  AND g.option_type = 'C'\n  AND g.underlying_close - g.strike_price > 0\n  AND g.expiration_date > toDate('2026-06-30')\n  AND g.implied_volatility > 0.02 AND g.iv_converged","computed_at":"2026-07-17T08:19:39.416473+00:00","elapsed":0.054135155}