STRASMORE/EXPLORE 2,170 QUERIES 22Y EQUITIES · 12Y OPTIONS

2,170 answered market questions

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

S&P 500 Dividend Yield: How It's Measured
Trailing twelve month distribution yields: broad index, equal weight, dividend screens, sector fundstable · 2026-08-22 · 9×6 SPY distributions per share and price, both rebased to 100 at 2015ranking · 2026-08-22 · 11×3Preview: 11 ranked values, smallest first. Tracker distribution yield vs the 10 year Treasury, calendar year ends 2015-2025table · 2026-08-22 · 11×5 Cap weighted vs equal weighted dividend yield, by company sizetable · 2026-08-22 · 5×6
Price Return vs Total Return: The Real Gap
Annualized price return vs total return over ten years: seven household names, to July 31, 2026ranking · 2026-08-03 · 7×4Preview: 7 ranked values, smallest first. $10,000 in the S&P 500 tracker: price only vs dividends reinvested, year-end 2006 to July 2026ranking · 2026-08-03 · 20×4Preview: 16 ranked values, smallest first. Price return vs total return by holding period: S&P 500 tracker, windows ending July 31, 2026ranking · 2026-08-03 · 5×4Preview: 5 ranked values, smallest first. S&P 500 tracker by calendar year: price return vs the points added by reinvested dividendsranking · 2026-08-03 · 20×3Preview: 16 ranked values, smallest first.
Trailing twelve month distribution yields: broad index, equal weight, dividend screens, sector funds

Trailing twelve month distribution yields: broad index, equal weight, dividend screens, sector funds

most recentas of table 9×6read in context →
Trailing twelve month distribution yields: broad index, equal weight, dividend screens, sector funds — 9 rows by 6 columns, computed from US exchange, SIP and OPRA data.
tickersegmentpricettm_distributions_usdpaymentstrailing_yield_pct
SPYbroad index tracker766.957.52540.98
RSPequal weight S&P 500221.913.20541.44
VYMdividend screen165.113.6342.2
SCHDdividend screen35.21.04842.98
SPYDdividend screen50.392.03144.03
XLUsector fund42.821.47943.45
XLPsector fund86.052.19742.55
XLREsector fund45.071.40543.12
XLKsector fund183.580.97240.53
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)
$