{"slug":"return-of-capital-in-etf-distributions","qid":"qyld_year_trace","label":"QYLD by calendar year: cash paid, average price, implied rate","post_title":"Return of Capital in ETF Distributions","post_url":"/blog/return-of-capital-in-etf-distributions#q-qyld_year_trace","columns":["year","distributions_per_share","avg_close","distribution_rate_pct","payments"],"rows":[{"year":"2021","distributions_per_share":2.851,"avg_close":22.59,"distribution_rate_pct":12.6,"payments":12},{"year":"2022","distributions_per_share":2.188,"avg_close":18.29,"distribution_rate_pct":12,"payments":12},{"year":"2023","distributions_per_share":2.042,"avg_close":17.17,"distribution_rate_pct":11.9,"payments":12},{"year":"2024","distributions_per_share":2.277,"avg_close":17.82,"distribution_rate_pct":12.8,"payments":12},{"year":"2025","distributions_per_share":2.041,"avg_close":17.11,"distribution_rate_pct":11.9,"payments":12}],"shape":"table","sql":"WITH yearly_px AS\n(\n    SELECT\n        toYear(toTimeZone(window_start, 'America/New_York')) AS yr,\n        round(avg(toFloat64(close)), 2)                      AS avg_close\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker = 'QYLD'\n      AND window_start >= toDateTime('2021-01-01 05:00:00')\n      AND window_start <  toDateTime('2026-01-01 05:00:00')\n      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60\n           + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570\n      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60\n           + toMinute(toTimeZone(window_start, 'America/New_York'))) < 960\n    GROUP BY yr\n),\nyearly_div AS\n(\n    SELECT\n        toYear(ex_dividend_date)         AS yr,\n        round(sum(cash_amount), 3)       AS distributions_per_share,\n        count()                          AS payments\n    FROM\n    (\n        SELECT\n            ex_dividend_date,\n            toFloat64(max(cash_amount)) AS cash_amount\n        FROM global_markets.stocks_dividends\n        WHERE ticker = 'QYLD'\n          AND ex_dividend_date >= toDate('2021-01-01')\n          AND ex_dividend_date <  toDate('2026-01-01')\n        GROUP BY ex_dividend_date\n    )\n    GROUP BY yr\n)\nSELECT\n    toString(p.yr)                                            AS year,\n    d.distributions_per_share                                 AS distributions_per_share,\n    p.avg_close                                               AS avg_close,\n    round(100 * d.distributions_per_share / p.avg_close, 1)   AS distribution_rate_pct,\n    d.payments                                                AS payments\nFROM yearly_px AS p\nINNER JOIN yearly_div AS d ON d.yr = p.yr\nORDER BY p.yr","computed_at":"2026-08-22T04:18:44.827781+00:00","elapsed":1.674165168}