Strasmore Research
Learn Matt ConnorBy Matt Connor

How ETF Creation and Redemption Works

ETF creation and redemption is the primary market retail never sees. How authorized participants swap baskets for shares, and why that loop pins price to NAV.

ETF creation and redemption is the wholesale layer of the fund business: a primary market where a handful of large trading firms hand a basket of stocks to the fund and receive a block of new ETF shares in return, or give the shares back and take the stocks. Retail orders never touch it. That loop runs underneath the ticker all day, and it is the mechanism that holds an ETF's price close to the value of what the fund owns.

What is ETF creation and redemption?

An authorized participant, or AP, is a large broker-dealer with a signed agreement letting it transact directly with the fund. Nobody else can. The unit of that business is the creation unit: one block of ETF shares, typically tens of thousands of them, issued or cancelled in a single transaction with the fund.

Creation runs in four steps.

  1. The fund publishes its creation basket before the open, the exact list of securities and cash it will accept that day.
  2. The AP buys those securities in the open market.
  3. The AP delivers the basket to the fund and receives one creation unit of newly issued ETF shares.
  4. The AP sells those shares on the exchange, or holds them in inventory.

Redemption is the same trade run backwards. The AP hands a creation unit of ETF shares back to the fund, receives the basket of securities, and those ETF shares are cancelled. Shares outstanding rise and fall all day this way, which is the first thing separating an ETF from a closed-end fund with a fixed share count.

Why the loop holds price near NAV

Net asset value, or NAV, is the per-share value of everything the fund holds. The market price is whatever buyers and sellers agree on, which can sit above NAV (a premium) or below it (a discount).

That gap is what pays the AP. With the ETF trading above the value of its basket, an AP can buy the basket, deliver it, and sell the newly issued shares at the higher price, keeping the difference. With the ETF below the basket, it runs the reverse: buy the cheap ETF shares, redeem them for the basket, sell the basket. Either way the AP sells the richer side and buys the cheaper one, and the two prices converge while it works.

Nobody has to be right about market direction for this to pay. It is a spread capture, repeatable all day, and it is the practical limit on how far price wanders from NAV. Our note on ETF premium and discount to NAV measures how tight that band gets in practice.

Why average daily volume understates ETF liquidity

Here is the part most readers came for. An ETF's own average daily volume measures how often its shares change hands. It does not measure how much size the fund can absorb. The absorbing is done by the basket: if a market maker can buy the underlying stocks quickly and cheaply, it will quote the ETF tightly whether the fund turns over ten million shares a day or ten thousand.

The panel below quotes 5 US listed ETFs over the same midday hour on Wednesday, June 17, 2026, ranked by average quoted bid ask spread in basis points. One basis point is a hundredth of a percentage point: a 2 bps spread on a $100 fund is two cents wide.

QueryQuoted spread against average share volume, US listed ETFs
The exact SQL behind every number
WITH
    quoted AS
    (
        SELECT
            ticker,
            round(10000 * avg(2 * toFloat64(ask_price - bid_price) / toFloat64(ask_price + bid_price)), 2) AS spread_bps
        FROM global_markets.cache_stocks_quotes
        WHERE ticker IN ('SPY', 'VOO', 'VV', 'SPLG', 'IWC', 'EPHE')
          AND sip_timestamp >= '2026-06-17 15:00:00'
          AND sip_timestamp <  '2026-06-17 16:00:00'
          AND bid_price > 0
          AND ask_price > bid_price
        GROUP BY ticker
    ),
    traded AS
    (
        SELECT
            ticker,
            formatReadableQuantity(round(avg(volume))) AS avg_daily_shares
        FROM global_markets.stocks_daily_aggs
        WHERE ticker IN ('SPY', 'VOO', 'VV', 'SPLG', 'IWC', 'EPHE')
          AND date >= '2026-03-17'
          AND date <  '2026-06-18'
        GROUP BY ticker
    )
SELECT
    q.ticker           AS ticker,
    q.spread_bps       AS spread_bps,
    t.avg_daily_shares AS avg_daily_shares
FROM quoted AS q
INNER JOIN traded AS t ON t.ticker = q.ticker
ORDER BY q.spread_bps ASC
Run this yourself

The tightest quote belongs to SPY at 0.29 bps, on 64.43 million shares a day over the prior three months. The widest is IWC at 30.89 bps, on 131.11 thousand shares. The two funds at the wide end hold securities that are slower and costlier for an AP to buy: micro-cap US names in one, Philippine listings in the other, on an exchange that shuts hours before New York opens. The funds at the tight end all hold the same deep pool of large US companies, and their share counts differ by orders of magnitude without their spreads doing the same.

Take a fund whose tape shows twenty thousand shares on a typical day. A buyer wanting fifty thousand shares does not have to wait for sellers to appear. A market maker sells the block, buys the underlying stocks, and delivers those stocks to the fund for a creation unit. The size came out of the underlying market. The fund's own volume history never entered the calculation, which is how market makers quote real size in a fund almost nobody trades.

How big is a creation unit next to the tape?

Most of what prints on an ETF's tape is small. The panel below sorts one full session of SPY prints into size buckets and measures what share of the day's trades and shares each bucket carried.

QueryOne session of SPY prints, sorted into trade size buckets
The exact SQL behind every number
WITH
    tape AS
    (
        SELECT size
        FROM global_markets.stocks_trades
        WHERE ticker = 'SPY'
          AND sip_timestamp >= '2026-06-17 13:30:00'
          AND sip_timestamp <  '2026-06-17 20:00:00'
          AND size > 0
    ),
    day_total AS
    (
        SELECT
            sum(size) AS all_shares,
            count()   AS all_prints
        FROM tape
    )
SELECT
    multiIf(t.size < 100,   '1 to 99',
            t.size < 1000,  '100 to 999',
            t.size < 10000, '1,000 to 9,999',
                            '10,000 and up')        AS bucket,
    count()                                         AS trade_count,
    round(100 * count() / any(d.all_prints), 2)     AS pct_of_prints,
    round(100 * sum(t.size) / any(d.all_shares), 2) AS pct_of_volume
FROM tape AS t
CROSS JOIN day_total AS d
GROUP BY bucket
ORDER BY min(t.size)
Run this yourself

The 1 to 99 bucket made up 83.01% of the session's prints and 34.17% of its shares: odd lots dominate the print count and still carry a sizeable slice of the volume. The 10,000 and up bucket, block trade territory, runs the other way: 0.01% of the prints carried 18% of the shares. A creation unit sits at the top of that range or above it, and it never appears on this tape at all. Primary market transactions print to the fund rather than to the exchange, which is why a day's tape understates how many shares actually moved.

Where the mechanism strains

The loop is neither free nor instant. Its cost is the AP's cost of assembling or unwinding the basket, and the ETF's quoted spread carries that cost.

The first place to watch is the opening minutes. The panel below tracks quoted spreads on a five-minute clock through one session, for a large-cap fund and a micro-cap fund side by side.

QueryQuoted spread through the session: large cap fund vs micro cap fund
The exact SQL behind every number
SELECT
    formatDateTime(toStartOfInterval(toTimeZone(sip_timestamp, 'America/New_York'), INTERVAL 5 MINUTE), '%H:%i') AS et_time,
    round(10000 * avgIf(2 * toFloat64(ask_price - bid_price) / toFloat64(ask_price + bid_price), ticker = 'VOO'), 2) AS voo_spread_bps,
    round(10000 * avgIf(2 * toFloat64(ask_price - bid_price) / toFloat64(ask_price + bid_price), ticker = 'IWC'), 2) AS iwc_spread_bps
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('VOO', 'IWC')
  AND sip_timestamp >= '2026-06-17 13:00:00'
  AND sip_timestamp <  '2026-06-17 21:00:00'
  AND bid_price > 0
  AND ask_price > bid_price
GROUP BY et_time
HAVING countIf(ticker = 'VOO') >= 50 AND countIf(ticker = 'IWC') >= 50
ORDER BY et_time
Run this yourself

At 09:30 the micro-cap fund quoted 54.65 bps against 0.55 bps for the large-cap fund. The window runs from before the opening bell to after the closing one, and both edges of the panel sit outside the hours when the underlying names quote most actively: in the last bucket, at 16:00, the micro-cap fund quoted 271.06 bps against 1.36 bps. The distance between the two funds is the basket showing up in the quote. A micro-cap basket holds many hundreds of names, and until each one has printed, a market maker is pricing a basket it cannot yet value precisely. The same shape appears across the market, which we walk through in why spreads widen at the open.

Credit is the harder case. Corporate and high yield bonds do not trade on a continuous exchange, and in a stressed week many individual bonds do not trade at all. An AP that cannot buy the basket at a knowable price will not create at a knowable price. The panel below measures the average daily high-to-low range of the high yield bond ETF HYG, month by month, from late 2019 through the first half of 2020.

QueryDaily range and volume in a high yield bond ETF, month by month
The exact SQL behind every number
SELECT
    formatDateTime(toStartOfMonth(date), '%b %Y')                             AS period,
    round(avg(100 * (toFloat64(high) - toFloat64(low)) / toFloat64(open)), 2) AS avg_day_range_pct,
    round(avg(volume) / 1000000, 1)                                          AS avg_daily_volume_millions
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'HYG'
  AND date >= '2019-10-01'
  AND date <  '2020-07-01'
GROUP BY period
ORDER BY min(date)
Run this yourself

In Oct 2019 the fund's average daily range measured 0.24%, on 17.4 million shares a day. In Mar 2020 the average range measured 2.9% on 56.6 million shares. In conditions like those, a discount that normally closes in minutes can stay open for days. The arbitrage still exists, at a much higher cost, and the ETF prints where dealers will actually transact rather than where a stale bond mark puts NAV.

A third case needs no crisis. When a fund's underlying market is shut for a local holiday, or when a fund suspends creations, the AP's side of the loop is unavailable for a while and price is left to supply and demand. Funds holding options rather than shares, such as the covered call ETFs, carry a version of the same friction, since the basket includes contracts an AP has to price and hedge.

How is this different from a mutual fund?

A mutual fund has no secondary market and no AP. You buy from the fund and sell to the fund at one price a day, the NAV struck after the close, and the fund raises cash by selling securities when redemptions arrive. There is no intraday price to arbitrage, which is why a mutual fund never trades at a premium or a discount. It also means every redemption reaches the portfolio itself. Our comparison of mutual funds versus ETFs covers the tax and cost trade-offs, and how mutual fund NAV is calculated walks through the daily strike.

FAQ

Who can create or redeem ETF shares?

Only an authorized participant, a large broker-dealer that has signed an agreement with the fund. Individual investors and ordinary brokers cannot. Everyone else buys and sells existing shares on an exchange.

How many shares are in a creation unit?

Typically tens of thousands, set in the fund's prospectus and fixed for that fund. The dollar value of one unit runs well into the millions, which is part of why the primary market belongs to institutions.

Does low average daily volume mean an ETF is illiquid?

Not on its own. A fund's tradable size is inherited from the securities it holds, so a fund with a liquid basket can fill an order many times its typical daily volume at a tight spread. A thin basket is the real constraint.

What keeps an ETF's price from drifting away from NAV?

The create and redeem arbitrage. A premium invites an AP to create new shares and sell them, a discount invites it to buy shares and redeem them, and both trades pull the two prices back together. The band widens when the basket is hard to trade.

When do premiums and discounts persist?

When the AP cannot work the basket. A closed foreign market, a stressed credit market where the underlying bonds are barely trading, a capacity limit on the strategy, or a suspension of creations will each hold the loop open longer than the minutes an equity fund's gap usually survives.


Every panel here ships with the SQL that produced it. Open one, swap in a fund you follow, and run the same measurement for that ticker on the Strasmore terminal.