STRASMORE/EXPLORE 2,170 QUERIES

QYLD by calendar year: cash paid, average price, implied rate

Answered against 22 years of US equities and 12 years of US options data and published with the query that produced it. This result is stored as of 2026-08-22, from Return of Capital in ETF Distributions.

as of table 5×5read in context →
QYLD by calendar year: cash paid, average price, implied rate — 5 rows by 5 columns, computed from US exchange, SIP and OPRA data.
yeardistributions_per_shareavg_closedistribution_rate_pctpayments
20212.85122.5912.612
20222.18818.291212
20232.04217.1711.912
20242.27717.8212.812
20252.04117.1111.912
Rows × columns
5 × 5
Computed
Completeness
No missing values
Source
US exchange, SIP and OPRA market data
Licence
Strasmore terms · free, no signup
Formats
JSON · CSV · the SQL below

What each column holds

Column definitions for QYLD by calendar year: cash paid, average price, implied rate, derived from the stored result.
ColumnTypeRangeNotes
year text 5 distinct values (2021, 2022, 2023…)
distributions_per_share number 2.041 to 2.851
avg_close number 17.11 to 22.59 US dollars
distribution_rate_pct number 11.9 to 12.8 percent
payments number every row is 12

Computed from Strasmore's warehouse of US exchange, SIP and OPRA market data. Equity prices are delayed; options greeks and implied volatility are end-of-day. This result is stored, not recomputed on load — it is exactly the numbers that were returned on , and the query below is what returned them.

the exact SQL behind every number
WITH yearly_px AS
(
    SELECT
        toYear(toTimeZone(window_start, 'America/New_York')) AS yr,
        round(avg(toFloat64(close)), 2)                      AS avg_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'QYLD'
      AND window_start >= toDateTime('2021-01-01 05:00:00')
      AND window_start <  toDateTime('2026-01-01 05:00:00')
      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 yr
),
yearly_div AS
(
    SELECT
        toYear(ex_dividend_date)         AS yr,
        round(sum(cash_amount), 3)       AS distributions_per_share,
        count()                          AS payments
    FROM
    (
        SELECT
            ex_dividend_date,
            toFloat64(max(cash_amount)) AS cash_amount
        FROM global_markets.stocks_dividends
        WHERE ticker = 'QYLD'
          AND ex_dividend_date >= toDate('2021-01-01')
          AND ex_dividend_date <  toDate('2026-01-01')
        GROUP BY ex_dividend_date
    )
    GROUP BY yr
)
SELECT
    toString(p.yr)                                            AS year,
    d.distributions_per_share                                 AS distributions_per_share,
    p.avg_close                                               AS avg_close,
    round(100 * d.distributions_per_share / p.avg_close, 1)   AS distribution_rate_pct,
    d.payments                                                AS payments
FROM yearly_px AS p
INNER JOIN yearly_div AS d ON d.yr = p.yr
ORDER BY p.yr

Run your own version of this

The same 22 years of US equities and 12 years of options data are queryable in SQL or plain English. A free account runs 100 queries a day and takes no card.

More from this analysisReturn of Capital in ETF Distributions
Share price indexed to 100, three covered call ETFs, monthly series 59×4 Cash distributions per share, month by month series 59×4 Trailing year distribution rate, price change, and approximate total return ranking 7×4 Short-term Treasury yields by month, the reference for fund borrowing costs series 36×3 Monthly cash per share: an option income fund and a bond fund series 24×3 Monthly cost of a near-the-money call, as a percent of share price series 18×3 See all 2,170 queries →