STRASMORE/EXPLORE 3,256 QUERIES

The early-exercise census: every ITM call on every June 30 ex-dividend payer, tested on June 29

Answered against 22 years of US equities and 12 years of US options data and published with the query that produced it. This result is stored as of 2026-07-17, from How Ex-Dividend Dates Affect Options.

as of scalar 1×4read in context →
underlyings measured
85
itm calls measured
613
exercise optimal
184
pct optimal
30
Rows × columns
1 × 4
Computed
Completeness
No missing values
Source
US exchange, SIP and OPRA market data
Licence
Strasmore terms · free, no signup
Formats
JSON · CSV · the SQL below

What each column holds

Column definitions for The early-exercise census: every ITM call on every June 30 ex-dividend payer, tested on June 29, derived from the stored result.
ColumnTypeRangeNotes
underlyings_measured number every row is 85
itm_calls_measured number every row is 613
exercise_optimal number every row is 184
pct_optimal number every row is 30 percent

Computed from Strasmore's warehouse of US exchange, SIP and OPRA market data. Equity prices are delayed; options greeks and implied volatility are end-of-day. This result is stored, not recomputed on load — it is exactly the numbers that were returned on , and the query below is what returned them.

Run it yourself

This is the exact query behind the result above. Change a ticker, a date or a column and run it against the warehouse — no account, no key. The no-signup tier is smaller than the one this page was computed on; a query that reaches past it comes back saying which plan runs it.

WITH divs AS (
    SELECT ticker, max(cash_amount) AS dividend
    FROM global_markets.stocks_dividends
    WHERE ex_dividend_date = toDate('2026-06-30') AND cash_amount > 0
    GROUP BY ticker
)
SELECT count(DISTINCT g.underlying_symbol) AS underlyings_measured,
       count() AS itm_calls_measured,
       countIf(g.option_close - (g.underlying_close - g.strike_price) < d.dividend) AS exercise_optimal,
       round(100.0 * countIf(g.option_close - (g.underlying_close - g.strike_price) < d.dividend) / count(), 1) AS pct_optimal
FROM global_markets.options_greeks g
INNER JOIN divs d ON g.underlying_symbol = d.ticker
WHERE g.date = toDate('2026-06-29')
  AND g.option_type = 'C'
  AND g.underlying_close - g.strike_price > 0
  AND g.expiration_date > toDate('2026-06-30')
  AND g.implied_volatility > 0.02 AND g.iv_converged
⌘/Ctrl + Enter

Work with this data in your AI assistant

Opens ready to query, with this page's data. Free, no account.

More from this analysisHow Ex-Dividend Dates Affect Options
Where the exercise-optimal calls concentrated on June 29, 2026 ranking 10×4 → A near-the-money SPY call and put: delta across the June 18 ex-dividend date series 9×3 → SPY's quarterly dividends, 2025 through the June 2026 ex-date series 6×2 → Day before SPY's ex-date: time value left in deep-in-the-money calls, by days to expiry ranking 3×4 → Median waits between dividend dates (trailing 12 months, all recurring US dividends) scalar 1×4 → PG trailing twelve-month dividend yield against the month-end share price series 22×3 → See all 3,256 queries →