{"slug":"dividend-withholding-tax-non-us-investors","qid":"fund_distribution_yields","label":"Six broad US funds: trailing-year distribution yield, gross and net of withholding","post_title":"Dividend Withholding Tax for Non-US Investors","post_url":"/blog/dividend-withholding-tax-non-us-investors#q-fund_distribution_yields","columns":["ticker","price","ttm_distributions_usd","payments","gross_yield_pct","net_yield_15_pct","net_yield_30_pct"],"rows":[{"ticker":"SCHD","price":35.2,"ttm_distributions_usd":1.048,"payments":4,"gross_yield_pct":2.98,"net_yield_15_pct":2.53,"net_yield_30_pct":2.08},{"ticker":"VYM","price":165.11,"ttm_distributions_usd":3.63,"payments":4,"gross_yield_pct":2.2,"net_yield_15_pct":1.87,"net_yield_30_pct":1.54},{"ticker":"VOO","price":704.8,"ttm_distributions_usd":7.346,"payments":4,"gross_yield_pct":1.04,"net_yield_15_pct":0.89,"net_yield_30_pct":0.73},{"ticker":"VTI","price":378.92,"ttm_distributions_usd":3.9,"payments":4,"gross_yield_pct":1.03,"net_yield_15_pct":0.87,"net_yield_30_pct":0.72},{"ticker":"SPY","price":766.95,"ttm_distributions_usd":7.525,"payments":4,"gross_yield_pct":0.98,"net_yield_15_pct":0.83,"net_yield_30_pct":0.69},{"ticker":"QQQ","price":714.31,"ttm_distributions_usd":3.034,"payments":4,"gross_yield_pct":0.42,"net_yield_15_pct":0.36,"net_yield_30_pct":0.3}],"shape":"table","sql":"WITH px AS (\n    SELECT ticker, argMax(close, window_start) AS price\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker IN ('SPY', 'VOO', 'VTI', 'QQQ', 'SCHD', 'VYM')\n      AND window_start >= now() - INTERVAL 7 DAY\n      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60\n           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959\n    GROUP BY ticker\n),\ndv AS (\n    SELECT ticker,\n           sum(cash_amount) AS ttm_distributions,\n           count() AS payments\n    FROM global_markets.stocks_dividends\n    WHERE ticker IN ('SPY', 'VOO', 'VTI', 'QQQ', 'SCHD', 'VYM')\n      AND ex_dividend_date > today() - INTERVAL 1 YEAR\n      AND ex_dividend_date <= today()\n      AND cash_amount > 0\n    GROUP BY ticker\n)\nSELECT px.ticker AS ticker,\n       round(px.price, 2) AS price,\n       round(toFloat64(dv.ttm_distributions), 3) AS ttm_distributions_usd,\n       dv.payments AS payments,\n       round(toFloat64(dv.ttm_distributions) / toFloat64(px.price) * 100, 2) AS gross_yield_pct,\n       round(toFloat64(dv.ttm_distributions) / toFloat64(px.price) * 100 * 0.85, 2) AS net_yield_15_pct,\n       round(toFloat64(dv.ttm_distributions) / toFloat64(px.price) * 100 * 0.70, 2) AS net_yield_30_pct\nFROM px\nINNER JOIN dv ON px.ticker = dv.ticker\nORDER BY gross_yield_pct DESC","computed_at":"2026-08-22T04:04:27.459894+00:00","elapsed":0.780258}