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

Highest Dividend Yield US Stocks in 2026
Highest dividend yields: US-listed companies over $2B, latest snapshot on filetable · 2026-08-22 · 15×5 How many US companies clear each yield floor, with payout ratio and loss-makersranking · 2026-08-22 · 8×4Preview: 8 ranked values, largest first. Payout ratio and dividend action by yield band: US payers over $2B, latest snapshottable · 2026-08-22 · 4×6 Walgreens Boots Alliance (WBA): month-end price, quarterly dividend, and yield, 2022-07 to 2024-06series · 2026-08-22 · 24×5Preview: a 16-point series, ending higher.
Highest dividend yields: US-listed companies over $2B, latest snapshot on file

Highest dividend yields: US-listed companies over $2B, latest snapshot on file

most recentas of table 15×5read in context →
Highest dividend yields: US-listed companies over $2B, latest snapshot on file — 15 rows by 5 columns, computed from US exchange, SIP and OPRA data.
tickerdividend_yield_pctpayout_ratiodividend_change_1y_pctshare_price
DD19.712037-36.1138.46
TDS19.57224034.71
CNK15.29389118.736.89
ARR14.5880016.32
PAA13.9951224.59
MNR13.67287-43.212.61
BXMT13.352129014.35
WU13.317607.29
AGNC13.05130010.92
NLY11.957559.323.29
RITM11.86113010.16
STWD11.54206-2516.41
DX11.08861.513.25
BKE10.25102042.64
APAM10.17112-32.942.05
the exact SQL behind every number
WITH snapshot AS (
    SELECT ticker,
           toFloat64(dividend_yield) * 100 AS yield_pct,
           toFloat64(price) AS price_usd,
           toFloat64(dividend_yield) * toFloat64(price) AS annual_dividend,
           toFloat64(earnings_per_share) AS eps
    FROM global_markets.stocks_ratios
    WHERE date = (SELECT max(date) FROM global_markets.stocks_ratios)
      AND price >= 5
      AND market_cap >= 2000000000
      AND dividend_yield > 0
      AND earnings_per_share > 0
),
payments AS (
    SELECT ticker,
           sumIf(toFloat64(cash_amount), ex_dividend_date > today() - INTERVAL 1 YEAR) AS ttm_paid,
           sumIf(toFloat64(cash_amount), ex_dividend_date <= today() - INTERVAL 1 YEAR
                 AND ex_dividend_date > today() - INTERVAL 2 YEAR) AS prior_paid
    FROM global_markets.stocks_dividends
    WHERE distribution_type = 'recurring'
      AND cash_amount > 0
      AND ex_dividend_date > today() - INTERVAL 2 YEAR
      AND ex_dividend_date <= today()
    GROUP BY ticker
    HAVING ttm_paid > 0 AND prior_paid > 0
)
SELECT s.ticker AS ticker,
       round(s.yield_pct, 2) AS dividend_yield_pct,
       round(s.annual_dividend / s.eps * 100, 0) AS payout_ratio,
       round(100 * (p.ttm_paid - p.prior_paid) / p.prior_paid, 1) AS dividend_change_1y_pct,
       round(s.price_usd, 2) AS share_price
FROM snapshot AS s
INNER JOIN payments AS p ON s.ticker = p.ticker
ORDER BY dividend_yield_pct DESC
LIMIT 15
$