Why SPY Dividend Yield Dey Trail the Index
SPY dividend yield dey sit below VOO and IVV by a few basis points. See how the unit investment trust structure creates the gap from cash drag.
SPY dividend yield dey a few basis points below VOO and IVV own. The gap dey come from the fund legal wrapper, no be from anything wey the managers decide. SPY na unit investment trust, an older fund structure wey no fit reinvest the dividends wey e collect from the 500 companies wey e hold. Those dividends dey wait for non-interest-bearing account until the next scheduled payout. Na this cash wey dey wait be wetin the term "cash drag" dey describe.
SPY dividend yield dey trail VOO and IVV by how much?
Make we start with wetin we fit measure. The three funds below all dey track S&P 500, and all three dey pay the dividends wey dem collect to shareholders once every quarter. Trailing yield here na the total of the last four distributions per share, divided by the latest closing price. Na the same calculation wey dem explain for wetin dividend yield dey measure.
The exact SQL behind every number
WITH
divs AS
(
SELECT
ticker,
ex_dividend_date,
max(toFloat64(cash_amount)) AS cash_amount
FROM global_markets.stocks_dividends
WHERE ticker IN ('SPY', 'VOO', 'IVV')
AND ex_dividend_date >= today() - 365
AND ex_dividend_date < today()
GROUP BY ticker, ex_dividend_date
),
ttm AS
(
SELECT
ticker,
sum(cash_amount) AS ttm_dividend
FROM divs
GROUP BY ticker
HAVING count() = 4
),
px AS
(
SELECT
ticker,
toFloat64(argMax(close, window_start)) AS last_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'VOO', 'IVV')
AND window_start >= today() - 15
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
GROUP BY ticker
),
fund_yield AS
(
SELECT
ttm.ticker AS ticker,
ttm.ttm_dividend / px.last_close * 100 AS yield_pct
FROM ttm
INNER JOIN px ON px.ticker = ttm.ticker
),
spy_yield AS
(
SELECT max(yield_pct) AS spy_pct
FROM fund_yield
WHERE ticker = 'SPY'
)
SELECT
fund_yield.ticker AS ticker,
round(fund_yield.yield_pct, 3) AS trailing_yield_pct,
round((fund_yield.yield_pct - spy_yield.spy_pct) * 100, 1) AS yield_spread_vs_spy_bps
FROM fund_yield
CROSS JOIN spy_yield
ORDER BY tickerFor the last four distributions, SPY yield na 0.973%, compared with 1.033% for VOO and 1.054% for IVV. Both open-end funds show higher trailing yield than SPY: VOO higher by 6 basis points, while IVV higher by 8.1. One basis point na one hundredth of one percentage point, so the full spread for that chart small.
Two things dey between the index dividends and wetin fund pay out. The first one na fees. Expenses dey come out of the income wey fund collect. Wetin reach shareholders na that income after deducting the expense ratio. As of middle of 2026, SPY dey charge about 0.09% every year, compared with about 0.03% for VOO and IVV. That one na fee gap of roughly 6 basis points, and e dey around the same size as the yield gaps above. The index gross yield, before any fund deducts fees, na the figure wey S&P 500 dividend yield dey track. The second thing na securities lending, wey the next section go explain.
Wetin be unit investment trust?
Unit investment trust, or UIT, na fund wey dem register under Investment Company Act of 1940. E hold fixed portfolio, and no dey make ongoing investment decisions. SPY launch for January 1993 with this structure, and e still dey use am. Four things follow from this structure:
- The trust hold the index constituents according to index weight. E no fit sample the index, replace one name with similar one, or use futures instead of shares.
- Dividends wey the underlying companies pay no fit reinvest into more shares. Dem accumulate as cash.
- The cash dey inside non-interest-bearing account until the scheduled distribution date. E no dey earn anything while e dey wait.
- The trust no fit lend its shares to short sellers. Securities lending revenue, wey open-end funds collect and return largely to the fund, no dey available to am.
VOO and IVV dey structured as open-end investment companies. Open-end fund fit put dividend wey enter back into market the same day e arrive. E fit hold index futures as cash substitute, and run lending program wey revenue enter the fund.
You no need take any of this based on trust. Each fund prospectus and summary prospectus state the structure for the opening pages. Dem both dey posted for the issuer website and filed with the SEC. Search the fund legal name for EDGAR, open the prospectus, and read the first page.
How long the cash wey dem collect dey sit?
The visible end of the holding window na the gap between two dates wey every fund dey publish. Ex-dividend date na the day new buyer no longer receive the upcoming payment. Pay date na the day the cash enter accounts.
The exact SQL behind every number
WITH divs AS
(
SELECT
ticker,
ex_dividend_date,
any(pay_date) AS payment_date
FROM global_markets.stocks_dividends
WHERE ticker IN ('SPY', 'VOO', 'IVV')
AND ex_dividend_date >= today() - 1095
AND ex_dividend_date < today()
AND pay_date > ex_dividend_date
GROUP BY ticker, ex_dividend_date
)
SELECT
ticker,
round(avg(dateDiff('day', ex_dividend_date, payment_date)), 1) AS avg_days_cash_held,
max(dateDiff('day', ex_dividend_date, payment_date)) AS longest_wait_days,
count() AS payout_count
FROM divs
GROUP BY ticker
ORDER BY tickerAcross three years of distributions, SPY take 42.6 days on average between ex-date and pay date, across 12 payouts, with the longest wait being 47 days. VOO turn the same cash around in 3.8 days on average, while IVV take 4.3 days.
That gap na only the tail end of the window. The 500 companies inside the index dey pay based on their own calendars throughout the quarter. Dividend wey enter during the first week of a quarter go sit inside the trust account for the rest of that quarter, plus the pay lag on top. The size of the balance easier to understand one distribution at a time.
The exact SQL behind every number
WITH
divs AS
(
SELECT
ex_dividend_date AS ex_date,
any(pay_date) AS pay_date,
max(toFloat64(cash_amount)) AS cash_amount
FROM global_markets.stocks_dividends
WHERE ticker = 'SPY'
AND ex_dividend_date >= today() - 1095
AND ex_dividend_date < today()
GROUP BY ex_dividend_date
),
px AS
(
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
toFloat64(argMax(close, window_start)) AS close_px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= today() - 1105
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
GROUP BY d
)
SELECT
toString(divs.ex_date) AS ex_date,
formatDateTime(divs.ex_date, '%b %e, %Y') AS ex_date_label,
formatDateTime(divs.pay_date, '%b %e, %Y') AS pay_date_label,
round(divs.cash_amount, 4) AS cash_amount,
round(divs.cash_amount / px.close_px * 100, 3) AS pct_of_price
FROM divs
INNER JOIN px ON px.d = divs.ex_date
ORDER BY ex_dateThe oldest payment for that panel, with ex-date Sep 15, 2023, come to $1.5832 per share, or 0.357% of the fund price that day. The latest one, with ex-date Jun 18, 2026, pay $1.9035 per share, equal to 0.255% of the price, and reach shareholders on Jul 31, 2026. Across all 12 distributions on the panel, each quarterly payout na a fraction of one percent of the fund. Na that be the scale of the idle balance we dey talk about.
Cash drag dey how big, measured in basis points?
Now make we do the arithmetic, using round numbers for the calculation, no be measured or forecast figures. Assume say fund collect 1.2% of its assets as dividends over one year and no reinvest any of am. Assume say market gain 8% for that same year. The cash dey enter gradually every quarter and e leave on the pay date. The average dollar of that cash dey idle for roughly half a quarter plus the payment lag. Make we call am 85 days, or 0.23 of one year. The average uninvested balance then be 1.2% times 0.23, or about 0.28% of assets. Multiply that idle balance by the 8% wey market gain: the return wey fund miss be about 0.02%, or small pass 2 basis points for the year.
Na so the effect dey work. E dey measure in single-digit basis points per year. E show for total return, no be for the size of the distribution. The market direction determine whether e help or hurt. For year wey index fall, the idle cash no follow the fall. The same arithmetic then work in the holder favor by similar amount. Open-end fund no get free advantage too. E still hold working cash of its own, and using futures to make that cash track the market get costs attached.
Yield and total return dey measure different things
Trailing yield na the last four distributions divide by today’s price. E no talk anything about wetin price do during those four quarters, and the two figures dey use very different scales.
The exact SQL behind every number
WITH
px AS
(
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
toFloat64(argMax(close, window_start)) AS close_px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= today() - 2950
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
GROUP BY d
),
by_year AS
(
SELECT
toYear(d) AS year,
argMin(close_px, d) AS first_close,
argMax(close_px, d) AS last_close
FROM px
GROUP BY year
),
divs AS
(
SELECT
toYear(ex_date) AS year,
sum(cash_amount) AS year_dividends
FROM
(
SELECT
ex_dividend_date AS ex_date,
max(toFloat64(cash_amount)) AS cash_amount
FROM global_markets.stocks_dividends
WHERE ticker = 'SPY'
AND ex_dividend_date >= today() - 2950
GROUP BY ex_dividend_date
)
GROUP BY year
)
SELECT
by_year.year AS year,
round((by_year.last_close / by_year.first_close - 1) * 100, 2) AS price_return_pct,
round(divs.year_dividends / by_year.first_close * 100, 2) AS dividend_return_pct
FROM by_year
INNER JOIN divs ON divs.year = by_year.year
WHERE by_year.year > toYear(today() - 2950)
AND by_year.year < toYear(today())
ORDER BY yearCompare the two series with each other. For 2019, SPY price change from the first session close to the last one measure 28.62%, while the dividends e distribute during that year come to 2.25% of the price for the beginning of the year. For 2025, the same pair measure 16.64% and 1.25%. If you add the two together, roughly, na so you get total return. The exact definition dey inside price return versus total return. Small difference of a few basis points in yield between two S&P 500 trackers na only small part of that total. Funds wey dem design to pay bigger distributions dey behave differently again: see covered call ETFs explained, and for dividend-focused comparison, see SCHD versus VOO on dividend yield.
FAQ
Why SPY dividend yield lower pass VOO own?
Two structural things dey come between the index dividends and wetin shareholder collect. SPY expense ratio dey higher, and fees dey comot from the income wey fund collect before dem distribute anything. SPY still be unit investment trust, so e no fit earn securities lending revenue or reinvest dividends while dem dey wait. For the last four distributions, the measured gap na 6 basis points.
SPY na unit investment trust?
Yes. SPDR S&P 500 ETF Trust don dey organized as unit investment trust since e launch for January 1993. Fund prospectus talk about the structure, and dem file am with SEC and post am through the issuer.
SPY dey reinvest the dividends wey e collect?
No. Unit investment trust no fit reinvest dividends wey e receive from the holdings. The cash dey gather for non-interest-bearing account, then e go out on the scheduled distribution date. For the last three years, this one happen on average 42.6 days after the ex-dividend date.
How much cash drag dey cost S&P 500 index fund?
If we use round assumptions of 1.2% dividend rate and 8% market gain, quarterly dividend balance wey no dey invested go lose roughly 2 basis points of return over one year, or 0.02%. The figure small, and for year wey market dey fall, the same idle cash go work for the opposite direction.
When SPY dey pay dividend?
SPY dey distribute every quarter. The latest ex-dividend date wey show for the panel above na Jun 18, 2026, and dem pay the cash on Jul 31, 2026. The wait na about six weeks.
Every number for this page come from the query wey dem print underneath am. If you wan compare payout timing across other funds, ask the question for plain English on Strasmore terminal.