S&P 500 Dividend Yield: How It's Measured
The S&P 500 dividend yield is cap weighted dividends over total market value, not an average of member yields. See the arithmetic and eleven years of readings.
The S&P 500 dividend yield is the dividends paid by the index members over the past twelve months divided by their combined market value. It is one cap weighted ratio, not an average of 500 separate yields, and that design choice sets the headline number well below anything an income screen advertises. The broad index tracker in the panel below trails 1.01% on its last twelve months of cash distributions, while the dividend screens measured the same way sit far above it.
How is the S&P 500 dividend yield calculated?
Every member of the index is weighted by its float adjusted market value, and the index level is the sum of those values divided by a fixed divisor. The dividend yield uses the same weights. Add up the dollars of dividends the members pay over a year, add up their market values, and divide one by the other. The divisor cancels out of the ratio, so a reader never needs the index level to check the number.
Two features of that arithmetic carry the whole story.
A company that pays nothing keeps its full weight in the denominator. It contributes market value and no dividends, which pulls the ratio down in proportion to its size.
Weight is also proportional to market value, so the largest members set the reading. Take a hypothetical pair: one $3 trillion company yielding 0.4% pays the same dividend dollars as three $100 billion companies yielding 4%, while bringing ten times as much market value into the denominator. The per company version of the statistic, dividend yield on a single stock, uses the same two inputs on one name and answers a different question.
The panel below runs both calculations side by side on one snapshot of US listed companies above $1 billion in market value, split into size buckets.
The exact SQL behind every number
SELECT multiIf(market_cap >= 1000000000000, 'over $1T',
market_cap >= 200000000000, '$200B to $1T',
market_cap >= 50000000000, '$50B to $200B',
market_cap >= 10000000000, '$10B to $50B',
'$1B to $10B') AS size_bucket,
count() AS companies,
countIf(dividend_yield > 0) AS payers,
round(100 * sum(ifNull(dividend_yield, 0) * market_cap) / sum(market_cap), 2) AS cap_weighted_yield_pct,
round(100 * avg(ifNull(dividend_yield, 0)), 2) AS equal_weighted_yield_pct,
round(100 * quantileDeterministicIf(0.5)(ifNull(dividend_yield, 0),
cityHash64(ticker), dividend_yield > 0), 2) AS median_payer_yield_pct
FROM global_markets.stocks_ratios
WHERE date = (SELECT max(date) FROM global_markets.stocks_ratios)
AND price >= 5
AND market_cap >= 1000000000
GROUP BY size_bucket
HAVING countIf(dividend_yield > 0) > 0
ORDER BY max(market_cap) DESCThe first yield column applies index arithmetic inside each bucket: total dividend dollars over total market value. The second gives every company in the bucket one equal vote. In the over $1T bucket, 8 of 12 companies pay anything at all, the cap weighted figure reads 0.28%, the equal weighted figure 0.27%, and the typical payer yields 0.36%. The $1B to $10B bucket at the far end holds 1312 companies, with 1.69% cap weighted against 1.78% equal weighted.
This screen is a size filter rather than the index membership list, which is licensed. The arithmetic is identical, and it isolates the point: the weighting scheme is what separates an index yield from the average member's yield.
Why is the S&P 500 dividend yield lower than a dividend fund's?
Put the tracker beside funds built to hunt payouts, and beside sector funds where large distributions come with the business model. Every row uses one method: twelve months of actual cash distributions, divided by the latest regular hours price on file.
The exact SQL behind every number
WITH px AS (
SELECT ticker,
argMax(close, window_start) AS price
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'RSP', 'VYM', 'SCHD', 'SPYD', 'XLU', 'XLP', 'XLRE', 'XLK')
AND window_start >= now() - INTERVAL 7 DAY
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY ticker
),
dv AS (
SELECT ticker,
sum(cash_amount) AS ttm_distributions,
count() AS payments
FROM global_markets.stocks_dividends
WHERE ticker IN ('SPY', 'RSP', 'VYM', 'SCHD', 'SPYD', 'XLU', 'XLP', 'XLRE', 'XLK')
AND ex_dividend_date > today() - INTERVAL 1 YEAR
AND ex_dividend_date <= today()
AND cash_amount > 0
GROUP BY ticker
)
SELECT px.ticker AS ticker,
multiIf(px.ticker = 'SPY', 'broad index tracker',
px.ticker = 'RSP', 'equal weight S&P 500',
px.ticker IN ('VYM', 'SCHD', 'SPYD'), 'dividend screen',
'sector fund') AS segment,
round(px.price, 2) AS price,
round(dv.ttm_distributions, 3) AS ttm_distributions_usd,
dv.payments AS payments,
round(dv.ttm_distributions / px.price * 100, 2) AS trailing_yield_pct
FROM px
INNER JOIN dv ON px.ticker = dv.ticker
ORDER BY multiIf(px.ticker = 'SPY', 1,
px.ticker = 'RSP', 2,
px.ticker = 'VYM', 3,
px.ticker = 'SCHD', 4,
px.ticker = 'SPYD', 5,
px.ticker = 'XLU', 6,
px.ticker = 'XLP', 7,
px.ticker = 'XLRE', 8,
9)The tracker paid $7.525 per share across 4 distributions against a $744.35 price, a trailing yield of 1.01%. The equal weight version of the same 500 companies, row two, reads 1.49%: identical membership, one vote per name instead of one vote per dollar. SCHD, which screens for established payers, reads 3.13%. The utilities and real estate sector funds read 3.33% and 3.12%. At the bottom sits XLK at 0.56%, the technology sector fund, a corner of the market where dividends are a small part of how cash reaches shareholders.
One formula, one session, and readings that differ by a multiple across the panel. A yield is a statement about what a basket holds and what those holdings pay out. What counts as a good dividend yield lays out the full distribution of single stock yields the screens pick from, and the payout ratio measures how much of a company's earnings the check consumes.
What has the S&P 500 dividend yield been over time?
The longest consistent series a reader can rebuild without a licensed index feed is the tracker's own distribution yield: cash actually paid out in a calendar year, over the price at the last regular hours session of that year. It runs slightly under the index's gross dividend yield, since the fund's expense ratio comes out of what it distributes, and it moves with it.
The exact SQL behind every number
WITH px AS (
SELECT toYear(toTimeZone(window_start, 'America/New_York')) AS year,
argMax(close, window_start) AS year_end_price
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND toYear(toTimeZone(window_start, 'America/New_York')) BETWEEN 2015 AND 2025
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY year
),
dv AS (
SELECT toYear(ex_dividend_date) AS year,
sum(cash_amount) AS annual_distributions,
count() AS payments
FROM global_markets.stocks_dividends
WHERE ticker = 'SPY'
AND cash_amount > 0
AND ex_dividend_date >= toDate('2015-01-01')
AND ex_dividend_date <= toDate('2025-12-31')
GROUP BY year
),
tsy AS (
SELECT toYear(date) AS year,
argMax(yield_10_year, date) AS y10
FROM global_markets.treasury_yields
WHERE toYear(date) BETWEEN 2015 AND 2025
AND toMonth(date) = 12
AND yield_10_year IS NOT NULL
GROUP BY year
)
SELECT px.year AS year,
round(dv.annual_distributions / px.year_end_price * 100, 2) AS tracker_yield_pct,
round(tsy.y10, 2) AS treasury_10y_pct,
round(dv.annual_distributions, 2) AS distributions_per_share_usd,
dv.payments AS payments
FROM px
INNER JOIN dv ON px.year = dv.year
INNER JOIN tsy ON px.year = tsy.year
ORDER BY yearIn 2015 the tracker distributed $4.21 per share for a yield of 2.06%. In 2025 it distributed $7.28 for 1.07%. The payout per share is the larger of those two readings. The yield is the smaller.
The second line on the chart is the 10 year Treasury yield at each December: 2.27% in 2015, 4.18% in 2025. The two series cross more than once over the eleven years on file. A Treasury coupon is contractual and a dividend is declared quarter by quarter, so the gap between them is not a like for like premium. Dividend yield versus Treasury yields takes that comparison apart.
The payout grew while the yield fell
A falling yield says nothing by itself about the dividends underneath it. Rebase both halves of the ratio to 100 at 2015 and the two paths separate.
The exact SQL behind every number
WITH px AS (
SELECT toYear(toTimeZone(window_start, 'America/New_York')) AS year,
argMax(close, window_start) AS year_end_price
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND toYear(toTimeZone(window_start, 'America/New_York')) BETWEEN 2015 AND 2025
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY year
),
dv AS (
SELECT toYear(ex_dividend_date) AS year,
sum(cash_amount) AS annual_distributions
FROM global_markets.stocks_dividends
WHERE ticker = 'SPY'
AND cash_amount > 0
AND ex_dividend_date >= toDate('2015-01-01')
AND ex_dividend_date <= toDate('2025-12-31')
GROUP BY year
)
SELECT px.year AS year,
round(100 * dv.annual_distributions / (SELECT annual_distributions FROM dv WHERE year = 2015), 1) AS distributions_index_2015_100,
round(100 * px.year_end_price / (SELECT year_end_price FROM px WHERE year = 2015), 1) AS price_index_2015_100
FROM px
INNER JOIN dv ON px.year = dv.year
ORDER BY yearBy 2025, distributions per share stood at 173.1 against a base of 100, and the price at 334.4. Both rose. The denominator rose faster, and the ratio between them fell. That is the entire mechanism behind a shrinking index yield, and it is worth holding onto: a lower index yield is a fact about payout policy and index composition, and it carries no message about where prices go next.
How to look up the S&P 500 dividend yield and read it consistently
Published figures for the same day differ, and the differences are almost always conventions rather than errors. Pin yours down.
- Fix the numerator. Trailing twelve months of dividends actually paid is one convention. Annualizing the most recent quarterly rate is another, and the two disagree in any year when payouts change.
- Fix the denominator. Use the same session's closing price every time, and write the date beside the number.
- Decide index or fund. An index yield is gross of fees. A fund's distribution yield is net of its expense ratio and carries the fund's own payment timing.
- Read the label on a fact sheet. A 30 day SEC yield and a trailing distribution yield are computed differently and will not match.
This page was first published in August 2026. The rolling panels recompute on every regeneration, so read the tracker figure as of the latest session on file rather than as a fixed constant. The calendar year panels are pinned to closed years and stay put.
None of these conventions counts buybacks. A company retiring shares returns cash without touching its dividend, so an index dividend yield understates total shareholder payout. Price charts leave the dividends out as well. Monthly total returns shows the arithmetic that puts them back in.
S&P 500 dividend yield FAQ
What is the S&P 500 dividend yield right now?
Any honest answer names its date, since the denominator changes every session. On the most recent session on file here, the broad index tracker's trailing twelve month distribution yield was 1.01%, from $7.525 of distributions against a $744.35 price.
Why is the S&P 500 dividend yield lower than the average stock's yield?
The index number weights every company by market value, and the weights concentrate in the largest companies. An average gives a $2 billion company the same vote as a $3 trillion one. In the panel above, the over $1T bucket read 0.28% cap weighted against 0.27% equal weighted, from identical inputs.
Does the S&P 500 dividend yield include buybacks?
No. It counts cash dividends only. Repurchases return cash by a different route and appear nowhere in the ratio, so an index yield today and one from the 1970s are not comparable like for like.
How often does the S&P 500 pay dividends?
Members pay on their own calendars, most of them quarterly. A tracking fund pools those payments and distributes on its own schedule: 4 distributions in 2025, totaling $7.28 per share. Who receives each one is settled by ownership on a specific date, which the ex dividend date guide walks through.
Is the S&P 500 dividend yield higher than the 10 year Treasury yield?
It depends on the year, and both readings sit on the chart above. At the December readings, 2015 showed 2.06% for the tracker and 2.27% for the note, while 2025 showed 1.07% and 4.18%.
Every figure above comes from stored, versioned queries over filed dividend records and real prices. Open any panel to read the SQL, or rebuild the ratio for a universe of your own on the Strasmore terminal.