STRASMORE/EXPLORE 3,256 QUERIES 22Y EQUITIES · 12Y OPTIONS

3,256 answered market questions

every one with its exact SQL, its result and the date it was computed · free, no signup

How to Read an Option Chain, Column by Column
Where the trading happened: SPY contract volume by strike, August 21 2026 expiry, July 15 2026ranking · 2026-07-31 · 8×3Preview: 8 ranked values, smallest first. Median quoted bid and ask by strike: SPY calls expiring August 21 2026, regular session of July 15 2026table · 2026-07-31 · 7×5 Implied volatility by strike: SPY options expiring August 21 2026, as of July 15 2026ranking · 2026-07-31 · 11×3Preview: 11 ranked values, largest first. SPY option volume by time to expiration, July 15 2026ranking · 2026-07-31 · 5×4Preview: 5 ranked values, largest first. One expiration of the SPY chain: closing prices and delta by strike, August 21 2026 expiry, as of July 15 2026table · 2026-07-31 · 8×6
page 3 of 3
Monthly 30 delta call premium versus trailing dividend yield

Monthly 30 delta call premium versus trailing dividend yield

most recentas of ranking 7×4read in context →
Monthly 30 delta call premium versus trailing dividend yield — 7 rows by 4 columns, computed from US exchange, SIP and OPRA data.
symbolmonthly_call_premium_pcttrailing_dividend_yield_pctquarterly_dividend_pct
KO1.072.440.61
PG1.172.950.74
XOM1.532.530.63
JNJ1.31.990.5
MSFT1.830.710.18
AAPL1.410.320.08
NVDA1.980.230.06
the exact SQL behind every number
WITH
premium AS
(
    SELECT
        underlying_symbol                                                          AS symbol,
        round(100 * avg(toFloat64(option_close) / toFloat64(underlying_close)), 2) AS monthly_call_premium_pct
    FROM global_markets.options_greeks
    WHERE underlying_symbol IN ('KO', 'PG', 'JNJ', 'XOM', 'AAPL', 'MSFT', 'NVDA')
      AND upper(toString(option_type)) IN ('C', 'CALL')
      AND iv_converged = 1
      AND volume > 0
      AND days_to_expiry BETWEEN 25 AND 40
      AND toFloat64(delta) BETWEEN 0.25 AND 0.35
      AND date >= '2026-07-01'
      AND date <  '2026-10-01'
    GROUP BY symbol
),
cash AS
(
    SELECT
        ticker                      AS symbol,
        sum(toFloat64(cash_amount)) AS ttm_dividend_usd
    FROM
    (
        SELECT
            ticker,
            ex_dividend_date,
            max(cash_amount) AS cash_amount
        FROM global_markets.stocks_dividends
        WHERE ticker IN ('KO', 'PG', 'JNJ', 'XOM', 'AAPL', 'MSFT', 'NVDA')
          AND ex_dividend_date >= '2025-10-01'
          AND ex_dividend_date <  '2026-10-01'
        GROUP BY ticker, ex_dividend_date
    )
    GROUP BY symbol
),
price AS
(
    SELECT
        ticker                         AS symbol,
        toFloat64(argMax(close, date)) AS last_close
    FROM global_markets.stocks_daily_aggs
    WHERE ticker IN ('KO', 'PG', 'JNJ', 'XOM', 'AAPL', 'MSFT', 'NVDA')
      AND date >= '2026-09-01'
      AND date <  '2026-10-01'
    GROUP BY symbol
)
SELECT
    p.symbol                                           AS symbol,
    p.monthly_call_premium_pct                         AS monthly_call_premium_pct,
    round(100 * c.ttm_dividend_usd / pr.last_close, 2) AS trailing_dividend_yield_pct,
    round(25 * c.ttm_dividend_usd / pr.last_close, 2)  AS quarterly_dividend_pct
FROM premium AS p
INNER JOIN cash AS c ON c.symbol = p.symbol
INNER JOIN price AS pr ON pr.symbol = p.symbol
ORDER BY (p.symbol = 'KO') DESC, trailing_dividend_yield_pct DESC
$