STRASMORE/EXPLORE 2,767 QUERIES

dividend_gap

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-09-29, from how-dax-index-weights-are-calculated.

as of ranking 8×4read in context →
dividend_gap — 8 rows by 4 columns, computed from US exchange, SIP and OPRA data.
tickerprice_only_pctdividends_paid_pctprice_plus_dividends_pct
XOM19044.7234.7
CVX79.935.9115.8
VZ-30.822.3-8.5
KO32.517.650.1
PEP-0.517.116.6
JNJ32.214.947.2
MCD45.414.860.2
PG413.717.7
Rows × columns
8 × 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 dividend_gap, derived from the stored result.
ColumnTypeRangeNotes
ticker text 8 distinct values (CVX, JNJ, KO…)
price_only_pct number -30.8 to 190 percent
dividends_paid_pct number 13.7 to 44.7 percent
price_plus_dividends_pct number -8.5 to 234.7 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 px AS (
    SELECT
        ticker,
        toFloat64(argMin(close, date)) AS start_close,
        toFloat64(argMax(close, date)) AS end_close
    FROM global_markets.stocks_daily_aggs
    WHERE ticker IN ('KO','PG','JNJ','PEP','MCD','XOM','CVX','VZ')
      AND date BETWEEN '2021-01-04' AND '2025-12-31'
      AND close > 0
    GROUP BY ticker
),
dv AS (
    SELECT
        ticker,
        sum(amt) AS dividends
    FROM
    (
        SELECT
            ticker,
            id,
            toFloat64(any(cash_amount)) AS amt
        FROM global_markets.stocks_dividends
        WHERE ticker IN ('KO','PG','JNJ','PEP','MCD','XOM','CVX','VZ')
          AND currency = 'USD'
          AND ex_dividend_date BETWEEN '2021-01-04' AND '2025-12-31'
        GROUP BY ticker, id
    )
    GROUP BY ticker
)
SELECT
    px.ticker                                                            AS ticker,
    round(100 * (px.end_close / px.start_close - 1), 1)                  AS price_only_pct,
    round(100 * dv.dividends / px.start_close, 1)                        AS dividends_paid_pct,
    round(100 * ((px.end_close + dv.dividends) / px.start_close - 1), 1) AS price_plus_dividends_pct
FROM px
INNER JOIN dv ON dv.ticker = px.ticker
ORDER BY dividends_paid_pct DESC
⌘/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-dax-index-weights-are-calculated
cap_math table 12×5 → Top 25 weekly-options underlyings by distinct contracts traded, with expiration weekdays ranking 25×4 → Annualized volatility vs total return, 25 large caps, calmest to wildest (~2 years) ranking 25×3 → SPY options median spread by expiration date, near-the-money strikes only ranking 25×4 → Stock headlines by ET hour of publication (last 30 days, all days) ranking 24×3 → When market headlines publish, by New York clock hour ranking 24×2 → See all 2,767 queries →