{"slug":"how-dax-index-weights-are-calculated","qid":"dividend_gap","label":"dividend_gap","post_title":"how-dax-index-weights-are-calculated","post_url":"/blog/how-dax-index-weights-are-calculated#q-dividend_gap","columns":["ticker","price_only_pct","dividends_paid_pct","price_plus_dividends_pct"],"rows":[{"ticker":"XOM","price_only_pct":190,"dividends_paid_pct":44.7,"price_plus_dividends_pct":234.7},{"ticker":"CVX","price_only_pct":79.9,"dividends_paid_pct":35.9,"price_plus_dividends_pct":115.8},{"ticker":"VZ","price_only_pct":-30.8,"dividends_paid_pct":22.3,"price_plus_dividends_pct":-8.5},{"ticker":"KO","price_only_pct":32.5,"dividends_paid_pct":17.6,"price_plus_dividends_pct":50.1},{"ticker":"PEP","price_only_pct":-0.5,"dividends_paid_pct":17.1,"price_plus_dividends_pct":16.6},{"ticker":"JNJ","price_only_pct":32.2,"dividends_paid_pct":14.9,"price_plus_dividends_pct":47.2},{"ticker":"MCD","price_only_pct":45.4,"dividends_paid_pct":14.8,"price_plus_dividends_pct":60.2},{"ticker":"PG","price_only_pct":4,"dividends_paid_pct":13.7,"price_plus_dividends_pct":17.7}],"shape":"ranking","sql":"WITH px AS (\n    SELECT\n        ticker,\n        toFloat64(argMin(close, date)) AS start_close,\n        toFloat64(argMax(close, date)) AS end_close\n    FROM global_markets.stocks_daily_aggs\n    WHERE ticker IN ('KO','PG','JNJ','PEP','MCD','XOM','CVX','VZ')\n      AND date BETWEEN '2021-01-04' AND '2025-12-31'\n      AND close > 0\n    GROUP BY ticker\n),\ndv AS (\n    SELECT\n        ticker,\n        sum(amt) AS dividends\n    FROM\n    (\n        SELECT\n            ticker,\n            id,\n            toFloat64(any(cash_amount)) AS amt\n        FROM global_markets.stocks_dividends\n        WHERE ticker IN ('KO','PG','JNJ','PEP','MCD','XOM','CVX','VZ')\n          AND currency = 'USD'\n          AND ex_dividend_date BETWEEN '2021-01-04' AND '2025-12-31'\n        GROUP BY ticker, id\n    )\n    GROUP BY ticker\n)\nSELECT\n    px.ticker                                                            AS ticker,\n    round(100 * (px.end_close / px.start_close - 1), 1)                  AS price_only_pct,\n    round(100 * dv.dividends / px.start_close, 1)                        AS dividends_paid_pct,\n    round(100 * ((px.end_close + dv.dividends) / px.start_close - 1), 1) AS price_plus_dividends_pct\nFROM px\nINNER JOIN dv ON dv.ticker = px.ticker\nORDER BY dividends_paid_pct DESC","computed_at":"2026-09-29T14:48:44.342988+00:00","elapsed":0.006631045}