Strasmore Research
Learn Matt ConnorBy Matt Connor · data as of August 6, 2026 · refreshed weekly

Return of Capital in ETF Distributions

Return of capital is the gap between a covered call ETF's headline distribution rate and its dividend yield. Here is what each part does to your cost basis.

Return of capital in an ETF distribution is the part of a payout that is neither investment income nor realised gains: it is your own invested money coming back to you. A covered call ETF quoting a double digit distribution rate is not paying a double digit dividend yield, and return of capital usually accounts for the difference. A fund reports the split twice, first as an estimate at payment time, then as a final figure on your year end tax form.

What is return of capital in an ETF distribution?

A distribution arrives as one payment of cash, but it carries up to three separate characters, and the tax code treats each one differently.

  1. Net investment income: the dividends and interest the fund's own holdings paid, minus the fund's expenses.
  2. Realised capital gains: profits the fund booked selling positions, split into short term and long term by how long the fund held them, not by how long you held the fund.
  3. Return of capital: everything else, paid from the fund's capital rather than from what the portfolio earned.

Option premium sits awkwardly in that list. When a covered call fund sells an option and later buys it back or lets it expire, the cash it collected is generally not net investment income. It lands in the gains bucket, or, when there are no gains left to distribute, in the capital bucket. Funds running large option income programmes often classify a sizeable share of the payout as return of capital. The strategy itself lives in our covered call ETF guide.

Distribution rate is not the same as dividend yield

A distribution rate is arithmetic on the payout: recent cash paid divided by the share price. Nothing in that calculation asks where the cash came from. A dividend yield describes income the portfolio actually earned. The panel below sums every distribution seven funds paid over the past year, divides by the price a year earlier, then puts the price change over the same window beside it.

QueryTrailing year distribution rate, price change, and approximate total return
The exact SQL behind every number
WITH divs AS
(
    SELECT
        ticker,
        sum(cash_amount) AS paid_12m
    FROM
    (
        SELECT
            ticker,
            ex_dividend_date,
            toFloat64(max(cash_amount)) AS cash_amount
        FROM global_markets.stocks_dividends
        WHERE ticker IN ('JEPI', 'JEPQ', 'QYLD', 'XYLD', 'RYLD', 'SCHD', 'SPY')
          AND ex_dividend_date >= today() - 373
          AND ex_dividend_date <  today() - 5
        GROUP BY ticker, ex_dividend_date
    )
    GROUP BY ticker
),
px AS
(
    SELECT
        ticker,
        toFloat64(argMin(close, window_start)) AS price_then,
        toFloat64(argMax(close, window_start)) AS price_now
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('JEPI', 'JEPQ', 'QYLD', 'XYLD', 'RYLD', 'SCHD', 'SPY')
      AND (
            (window_start >= now() - INTERVAL 375 DAY AND window_start < now() - INTERVAL 368 DAY)
         OR (window_start >= now() - INTERVAL 9 DAY   AND window_start < now() - INTERVAL 2 DAY)
          )
      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 ticker
)
SELECT
    px.ticker                                                          AS ticker,
    round(100 * divs.paid_12m / px.price_then, 1)                      AS distribution_rate_pct,
    round(100 * (px.price_now / px.price_then - 1), 1)                 AS price_change_pct,
    round(100 * ((px.price_now + divs.paid_12m) / px.price_then - 1), 1) AS approx_total_return_pct
FROM px
INNER JOIN divs ON divs.ticker = px.ticker
ORDER BY distribution_rate_pct DESC
Run this yourself

Over the trailing year, QYLD carried the highest distribution rate of the group at 12.6%. Its share price moved 7.6% over the same window. Adding the cash back to the price change gives an approximate total return of 20.2%, approximate since it assumes the distributions sat in cash rather than being reinvested. At the far end of the sort, SPY paid out 1.2% of its starting price. Compare each fund's first number against its third and the rate column stops working as a ranking of returns. A plain index fund's payout, and the small cash drag behind it, is a useful reference point: see SPY's dividend yield.

How return of capital changes your cost basis

In a taxable account, net investment income and capital gain distributions are taxable in the year you receive them. Return of capital generally is not. It reduces your cost basis instead, which pushes the tax bill to the day you sell.

Round hypothetical numbers make the mechanics plain. You buy one share at $50.00. Over the following year the fund pays you $2.00, and afterwards reports $1.20 of it as net investment income and $0.80 as return of capital. You are taxed on the $1.20 now. Your basis falls from $50.00 to $49.20. Sell at $50.00 and you book a $0.80 capital gain that would not exist had the whole $2.00 been income. Hold long enough and a basis can reach zero; further return of capital after that point is treated as a capital gain in the year it is paid. Inside an IRA or 401(k) the character makes no difference to what you owe, though the fund still tracks it.

What is a Section 19(a) notice?

A fund paying a distribution from anything other than net investment income has to say so in writing. The requirement sits in Section 19(a) of the Investment Company Act of 1940:

It shall be unlawful for any registered investment company to pay any dividend, or to make any distribution in the nature of a dividend payment, wholly or partly from any source other than ... such company's accumulated undistributed net income, determined in accordance with good accounting practice and not including profits or losses realized upon the sale of securities or other properties; or ... such company's net income so determined for the current or preceding fiscal year; unless such payment is accompanied by a written statement which adequately discloses the source or sources of such payment.

Investment Company Act of 1940, Section 19(a), 15 U.S.C. 80a-19(a), read from the current statute text, August 2026. Clause numbers replaced with ellipses.

The SEC rule underneath it, Rule 19a-1, fixes what that statement has to show:

Every written statement made pursuant to section 19 by or on behalf of a management company shall be made on a separate paper and shall clearly indicate what portion of the payment per share is made from the following sources: (1) Net income for the current or preceding fiscal year, or accumulated undistributed net income, or both, not including in either case profits or losses from the sale of securities or other properties. (2) Accumulated undistributed net profits from the sale of securities or other properties (except that an open-end company may treat as a separate source its net profits from such sales during its current fiscal year). (3) Paid-in surplus or other capital source.

SEC Rule 19a-1(a), 17 CFR 270.19a-1(a), current rule text, August 2026.

Paid-in surplus or other capital source is the line a fund's 19(a) notice reports as return of capital. Two features shape how you read one. It is an estimate, computed on the fund's books for that distribution period under the rule's accounting. And it is a separate document, sent with the payment and posted on the fund's website, never a tax form.

Why the year end 1099-DIV revises the estimate

Once the calendar year closes, a fund recalculates the character of everything it paid under the tax rules, which are not the accounting rules the 19(a) notices used, and reports final figures on Form 1099-DIV. Box 1a is Total Ordinary Dividends, box 1b Qualified Dividends, box 2a Total Capital Gain Distr., and box 3 Nondividend Distributions. Box 3 is where return of capital lands.

The revision runs both directions. A fund that estimated heavy return of capital all year can finish with realised gains that reclassify much of it as capital gain distributions, and a fund that estimated none can report some in January. Treat the 19(a) notices as a running estimate and the 1099-DIV as the number your tax return uses. This is general information about the categories, not tax advice.

Destructive and non-destructive return of capital

Return of capital on a notice does not by itself mean a fund is eating itself. Non-destructive return of capital is an accounting outcome: the fund's economics covered the payout, and tax character simply assigns part of it to capital. Unrealised appreciation the fund has not sold, and return of capital passed straight through from holdings such as REITs and MLPs, both produce it.

Destructive return of capital is the other case. The payout exceeds what the fund earned, and the shortfall comes out of assets. Fewer assets per share means a lower net asset value, and a lower NAV means the next payment of the same dollar size is a bigger bite of a smaller pot. Its signature is a price line that grinds lower across years while the payout continues. The panel below indexes each fund's share price to 100 at the start of the window, putting three funds at different price levels on one scale.

QueryShare price indexed to 100, three covered call ETFs, monthly
The exact SQL behind every number
WITH monthly AS
(
    SELECT
        ticker,
        toStartOfMonth(toTimeZone(window_start, 'America/New_York')) AS month_start,
        argMax(toFloat64(close), window_start)                       AS month_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('QYLD', 'XYLD', 'RYLD')
      AND window_start >= toDateTime('2021-09-01 04:00:00')
      AND window_start <  toDateTime('2026-08-01 04: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 ticker, month_start
),
base AS
(
    SELECT
        ticker,
        argMin(month_close, month_start) AS base_close
    FROM monthly
    GROUP BY ticker
)
SELECT
    formatDateTime(m.month_start, '%Y-%m')                                  AS month,
    round(100 * sumIf(m.month_close / b.base_close, m.ticker = 'QYLD'), 1)  AS qyld_price_index,
    round(100 * sumIf(m.month_close / b.base_close, m.ticker = 'XYLD'), 1)  AS xyld_price_index,
    round(100 * sumIf(m.month_close / b.base_close, m.ticker = 'RYLD'), 1)  AS ryld_price_index
FROM monthly AS m
INNER JOIN base AS b ON b.ticker = m.ticker
GROUP BY m.month_start
ORDER BY m.month_start
Run this yourself

Between 2021-09 and 2026-07, the QYLD price index went from 100 to 80.5. Read that line on its own and you would conclude holders lost money. You cannot conclude it, since the index tracks price only, and every distribution paid across those years is missing from it. The cash is real and the erosion is real; total return is the only figure that nets them. Where a fund's price sits against the value of what it holds is a separate question, covered in ETF premium and discount to NAV, and the arithmetic underneath the NAV itself is in how a fund's NAV is calculated.

Now set the payout stream beside that price path. The next panel plots what each fund paid per share, month by month, over the same window.

QueryCash distributions per share, month by month
The exact SQL behind every number
SELECT
    formatDateTime(toStartOfMonth(ex_dividend_date), '%Y-%m') AS month,
    round(sumIf(cash_amount, ticker = 'QYLD'), 4)             AS qyld_per_share,
    round(sumIf(cash_amount, ticker = 'XYLD'), 4)             AS xyld_per_share,
    round(sumIf(cash_amount, ticker = 'RYLD'), 4)             AS ryld_per_share
FROM
(
    SELECT
        ticker,
        ex_dividend_date,
        toFloat64(max(cash_amount)) AS cash_amount
    FROM global_markets.stocks_dividends
    WHERE ticker IN ('QYLD', 'XYLD', 'RYLD')
      AND ex_dividend_date >= toDate('2021-09-01')
      AND ex_dividend_date <  toDate('2026-08-01')
    GROUP BY ticker, ex_dividend_date
)
GROUP BY toStartOfMonth(ex_dividend_date)
ORDER BY toStartOfMonth(ex_dividend_date)
Run this yourself

In 2026-07 QYLD paid $0.1775 per share, against $0.1902 in 2021-09. The dollar payout stays inside a fairly narrow band across the whole window while the price index does not, which is how a headline rate holds up on a shrinking base. Funds that pay every month invite this comparison more often than quarterly payers do, a habit worth carrying into monthly dividend stocks as well.

Distribution rate versus total return

Two numbers settle what the headline rate leaves open. The first is the distribution rate. The second is total return over the same window, price change plus distributions, which is the figure that answers whether the payout was earned. A fund can post a high distribution rate alongside a weak total return for years, and the gap is capital handed back to you. The trace below pins one fund across five full calendar years.

QueryQYLD by calendar year: cash paid, average price, implied rate
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 this yourself

In 2021, QYLD distributed $2.851 per share against an average regular session price of $22.59, a distribution rate of 12.6%. In 2025 the payout was $2.041 per share on an average price of $17.11, a rate of 11.9%. The rate finishes near where it started, and both of its inputs moved along the way. That is the whole point of the ratio: it can hold steady while the numerator and the denominator both shrink, which tells you nothing about whether the fund earned what it paid.

FAQ

Is return of capital from an ETF taxable?

Generally not in the year you receive it. It reduces your cost basis, which raises the capital gain, or trims the loss, you book when you sell. Once basis reaches zero, further return of capital is treated as a capital gain in the year it is paid.

What is a Section 19(a) notice?

A written statement a fund sends with any distribution paid from a source other than net investment income. Rule 19a-1 requires it on a separate paper, splitting the payment per share across net income, accumulated profits from sales, and paid-in surplus or other capital source. Every figure on it is an estimate at payment time.

Does return of capital mean the ETF is losing money?

Not on its own. Non-destructive return of capital comes from differences between fund accounting and tax character. Destructive return of capital pays out more than the fund earned, and it shows up over years as a share price grinding lower while the payout continues.

Is a double digit distribution rate the same as a double digit yield?

No. A distribution rate divides recent payouts by the share price and ignores where the cash came from. Yield describes income the portfolio earned. Set the distribution rate beside total return over the same window to see how much of the payout was earned.

How do I find the return of capital in my ETF distributions?

Two places. The fund posts 19(a) notices with each affected distribution, carrying the estimated split. Your Form 1099-DIV then reports the final figure for the year in box 3, Nondividend Distributions.


Every panel here opens to the exact SQL that produced it. To put a distribution rate next to the total return on a fund you follow, ask for both in plain English on the Strasmore terminal.