ETF Premium or Discount to NAV: Wetin E Mean
ETF premium or discount to NAV dey show pricing mechanics more than portfolio health. See how di gap form and checks wey fit catch false alarm.
ETF premium or discount to NAV na di gap between di price wey fund shares dey trade for and di value of di securities wey di fund hold, measured per share for di same time. Most days, di gap dey only few basis points wide. E dey describe how di fund structure and trading system dey work, no be di health of di portfolio. If di gap wide or e dey persist, first understand wetin dey cause am before you begin worry.
ETF premium or discount to NAV na wetin?
Net asset value, or NAV, na the fund arithmetic. Dem value and add every security wey e hold. Dem remove liabilities, then divide the result by the shares outstanding. US funds dey calculate that number once every trading day, after the 4:00 p.m. ET close. Market price na different matter: na the last price wey buyer and seller agree on. If price pass NAV, na premium. If price dey below NAV, na discount. Dem both dey quote as percentage of NAV.
Na here the difference between the two fund wrappers dey clear well. Mutual fund order dey fill at the strike, based on any NAV wey the fund publish that evening. Na why mutual fund no dey carry premium or discount. The cost of this setup be say you no fit see your price when you place the order. Our mutual funds versus ETFs guide explain the rest of the comparison, while mutual fund settlement explain when the cash actually move.
How authorized participants dey keep ETF price near NAV
No rule dey force ETF to trade at NAV. Wetin dey hold the two together na profit motive wey dey inside the fund structure. If you understand am, e go mostly help you read any gap correctly.
Small group of big broker-dealers dey sign agreement with fund sponsor and become authorized participants, usually dem dey call dem APs. AP na the only party wey fit create or cancel ETF shares. E dey work with blocks wey dem call creation units, normally tens of thousands of shares at once. To create shares, AP deliver the fund’s published basket of securities and receive new ETF shares. To redeem, e return ETF shares and receive the basket.
Make we use hypothetical fund wey basket worth $100.00 per share, while ETF dey change hands at $100.30. AP fit buy the basket for open market, deliver am, receive shares valued at $100.00, then sell dem at $100.30. Na this selling dey reduce the premium. Discount dey follow the same process in reverse: buy the cheap ETF shares, redeem dem for basket wey worth more, then sell the basket.
Two things follow from this. The gap go close only reach point wey the round trip still profitable. AP costs dey set that floor: the spread on every security inside the basket, creation fee, financing, hedging, plus any borrow or tax friction. The normal size of fund gap dey show how expensive e be to handle the basket. Na the same cost dey behind the fund own bid ask spread wey you dey see for screen.
Why normal gap dey wider for some funds pass others
Fund wey hold the biggest US stocks get basket wey AP fit buy within seconds, with tight spreads. Fund wey hold Japanese equities, or corporate bonds wey last print trade three days ago, no get that same liquidity. One way to see the difference without touching NAV na to measure how far each fund own price dey move during one regular trading session. Anything wey happen during those hours na information wey the closing mark still need catch up with.
The exact SQL behind every number
WITH sessions AS
(
SELECT
ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
argMin(toFloat64(open), window_start) AS px_open,
argMax(toFloat64(close), window_start) AS px_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('FXI', 'EWJ', 'EFA', 'SPY', 'HYG', 'LQD', 'AGG')
AND window_start >= '2026-01-02 00:00:00'
AND window_start < '2026-07-01 00: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, session_date
HAVING px_open > 0
)
SELECT
ticker,
round(quantileExact(0.5)(abs(px_close / px_open - 1) * 100), 3) AS median_move_pct,
round(quantileExact(0.9)(abs(px_close / px_open - 1) * 100), 3) AS p90_move_pct
FROM sessions
GROUP BY ticker
ORDER BY median_move_pct DESCFor the first half of 2026, FXI na the widest of the seven. Its median session cover 0.433% from the first print to the last, while the 90th percentile session reach 1.267%. For the other end of the list, AGG get median session of 0.099%. Those two numbers na the yardstick. Discount of quarter percentage point for fund wey its whole trading day normally smaller than that one na different event from the same quarter point for fund wey dey swing several times farther.
International ETFs: stale price na NAV, no be the fund
Na this case people dey misread pass. Fund wey hold Japanese shares dey trade for New York from 9:30 a.m. to 4:00 p.m. ET. Tokyo don close hours before New York open. The NAV wey dem strike for 4:00 p.m. ET value those Japanese shares with their last Tokyo prints, and those prints don stale by then. ETF price don spend the whole US session absorbing everything wey happen after Tokyo close. If you compare dem for 4:00 p.m., ETF price na the more current estimate, while NAV na the one wey dey lag.
European funds show part of the same matter. Continental and UK markets dey close around 11:30 a.m. ET, give or take one hour for the weeks wey US and Europe change clocks at different times. The first half of US session dey overlap with live European trading. The afternoon half no dey.
The exact SQL behind every number
WITH bars AS
(
SELECT
ticker,
window_start,
toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York')) AS et_minute,
toFloat64(open) AS px_o,
toFloat64(close) AS px_c
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'VGK', 'EFA', 'EWJ')
AND window_start >= '2026-01-02 00:00:00'
AND window_start < '2026-07-01 00:00:00'
),
legs AS
(
SELECT
ticker,
session_date,
argMinIf(px_o, window_start, et_minute >= 570) AS px_open,
argMaxIf(px_c, window_start, et_minute < 690) AS px_midday,
argMaxIf(px_c, window_start, et_minute < 960) AS px_close
FROM bars
WHERE et_minute >= 570 AND et_minute < 960
GROUP BY ticker, session_date
HAVING px_open > 0 AND px_midday > 0 AND px_close > 0
)
SELECT
ticker,
round(quantileExact(0.5)(abs(px_midday / px_open - 1) * 100), 3) AS morning_move_pct,
round(quantileExact(0.5)(abs(px_close / px_midday - 1) * 100), 3) AS afternoon_move_pct
FROM legs
GROUP BY ticker
ORDER BY multiIf(ticker = 'SPY', 1, ticker = 'VGK', 2, ticker = 'EFA', 3, 4)For VGK, the median morning half of the session cover 0.288%, while the median afternoon half cover 0.289%. That afternoon figure na price discovery without any live quote from the underlying market inside am. The US benchmark for the same panel, SPY, split im day into 0.306% and 0.283%, with im holdings dey trade live for both halves. EWJ dey for the far end: im home market close before New York open, so both halves of the US day, 0.272% and 0.302%, fall outside anything wey the closing mark fit price.
Sponsors no blind to this matter. Many of dem dey apply fair value adjustment to foreign holdings at the strike, to move stale marks closer to where those markets likely go reopen. The adjustment dey reduce the gap, but e no erase am. The method dey vary by sponsor. Na one reason two funds wey track the same index fit publish different premiums for the same evening.
Bond ETFs: NAV wey dem build from bid-side marks
Corporate and municipal bonds dey trade over the counter, and most individual bonds no dey trade at all for any given day. Fund no fit mark portfolio like that to last sale, so e dey use evaluated prices from pricing service: na model estimates wey dem build from any comparable trades, quotes and spreads wey dey available. Normally, dem strike these evaluations on the bid side, meaning the price wey holder fit sell at.
This convention dey put small structural discount inside the inputs. ETF dey trade wherever buyers and sellers meet, closer to the middle of the bond market than to the bid. So, bond fund wey dey show small persistent premium often na mid-market price wey dey above bid-side NAV. When selloff happen fast, the sign fit turn. ETF shares dey reprice within seconds, while evaluated marks dey update more slowly. The fund then prints discount wey really come from difference for measurement speed.
The exact SQL behind every number
WITH sessions AS
(
SELECT
ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
argMin(toFloat64(open), window_start) AS px_open,
argMax(toFloat64(close), window_start) AS px_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'EFA', 'HYG')
AND window_start >= '2026-01-02 00:00:00'
AND window_start < '2026-07-01 00: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, session_date
HAVING px_open > 0
)
SELECT
formatDateTime(session_date, '%Y-%m') AS month,
round(quantileExactIf(0.5)(abs(px_close / px_open - 1) * 100, ticker = 'SPY'), 3) AS spy_median_move_pct,
round(quantileExactIf(0.5)(abs(px_close / px_open - 1) * 100, ticker = 'EFA'), 3) AS efa_median_move_pct,
round(quantileExactIf(0.5)(abs(px_close / px_open - 1) * 100, ticker = 'HYG'), 3) AS hyg_median_move_pct
FROM sessions
GROUP BY month
HAVING countIf(ticker = 'SPY') > 0
AND countIf(ticker = 'EFA') > 0
AND countIf(ticker = 'HYG') > 0
ORDER BY monthThe normal daily move for bond fund dey small, and na this one make fixed threshold fit mislead. For the panel above, median HYG session measure 0.074% for the first month wey show and 0.063% for the last one, while equity line for the first month come to 0.322%. Half percentage point discount na big number compared with day wey get that size, and the yardstick itself dey change from month to month.
End-of-day NAV compared with intraday indicative value
Numbers two dey describe wetin fund worth, but dem no be the same thing.
Official NAV na once after market close dem dey calculate am. Na this number dem dey use measure every published premium and discount. Intraday indicative value, wey dem label IIV or IOPV, na running estimate of basket value wey dem publish throughout the session and update every 15 seconds. Na estimate e be, no be tradable price. For fund wey get foreign holdings, e inherit the same stale inputs wey closing NAV use. The after-hours session dey even further away, because prices dey print against NAV wey dem calculate for previous close.
The main point be say measurement fit create artifact wey investors need understand. Fund’s published premium and discount history na series of 4:00 p.m. snapshots: closing price compared with closing NAV. Price discovery dey most concentrated for market open and close, wey be the two edges of the day. Minute-by-minute price ranges show the pattern.
The exact SQL behind every number
SELECT
formatDateTime(toStartOfFifteenMinutes(toTimeZone(window_start, 'America/New_York')), '%H:%i') AS et_time,
round(avgIf(range_bps, ticker = 'SPY'), 2) AS spy_range_bps,
round(avgIf(range_bps, ticker = 'EFA'), 2) AS efa_range_bps,
round(avgIf(range_bps, ticker = 'HYG'), 2) AS hyg_range_bps
FROM
(
SELECT
window_start,
ticker,
(toFloat64(high) - toFloat64(low)) / toFloat64(close) * 10000 AS range_bps
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'EFA', 'HYG')
AND window_start >= '2026-04-01 00:00:00'
AND window_start < '2026-07-01 00:00:00'
AND close > 0
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 et_time
HAVING countIf(ticker = 'SPY') > 0
AND countIf(ticker = 'EFA') > 0
AND countIf(ticker = 'HYG') > 0
ORDER BY et_timeWhen dem average am across second quarter of 2026, one SPY minute bar for 09:30 bucket cover 7.06 basis points of its own price. By 12:45, the same measure don settle at 3.56 basis points. Final bucket, 15:45, print 5.18 basis points. Na the period wey dem publish closing auction imbalances and set closing price. EFA show the same pattern for its own level: 6.47 basis points for opening bucket compared with 2.96 around midday. HYG open the day at 2.53.
Snapshot wey dem take for the busiest moment of the day, then compare am with NAV wey dem calculate for that same moment, go show wider spread of premiums and discounts than wetin any mid-session order normally meet. The published number correct. But e dey answer narrower question than most readers think.
When creation and redemption dey stop to work
Everything wey don talk assume say AP fit assemble or unwind the basket for reasonable cost. Several situations fit interrupt am.
The basket fit become expensive or impossible to source. When dealers step back from an asset class, the bonds or foreign shares wey AP need go get wide quotes, or dem no quote dem at all. Round trip wey normally dey close with few basis points fit now cost pass wetin the gap worth. The gap go widen until the trade fit pay again.
Creation fit also get cap or dem fit suspend am completely. Fund wey don reach position limit, regulatory ceiling for holdings, or cap wey sponsor impose go stop issuing new creation units. From that point, the mechanism go work one way only. Redemption still dey work, and that one dey help control discount. But nothing fit create new supply to meet demand. Premium fit continue and grow for as long as the suspension last. Funds wey hold derivatives instead of cash securities na the usual candidates: how leveraged ETFs dey work explain the daily reset machinery behind one such family, while covered call ETFs describe a wrapper wey basket include written options. AP na also dealer wey dey trade with im own book under im own risk limits. No rule force am to step in on any particular day.
Checks wey you need do before you trade ETF
- Limit order dey set the worst price wey you go accept. Market order go take any price wey dey available. For thinly traded fund during quiet period, that price fit dey far from fair value.
- First and last minutes of the session dey get the widest price bars, as the panel above measure am. Middle of the day na when quoted spreads usually dey narrowest.
- Fund own premium and discount history dey published for sponsor website. E also show how many days e close above and below NAV. For comparing today gap, use that distribution, no be zero.
- If fund hold foreign securities, check whether those markets open during the US session. Gap for fund wey home market don close before US market open no be the same kind measurement as gap for domestic fund.
Wetin these panels measure and wetin dem no measure
None of the panels for this page get NAV inside am. Every figure come from global_markets.delayed_stocks_minute_aggs, the one minute price history for US listed shares. So each panel dey measure the fund own traded price. Fund sponsors na dem publish the premium and discount figures themselves. These measurements show the movement wey closing mark need keep up with. Na this quantity dey determine how wide normal gap fit be. The session start for 9:30 a.m. and end for 4:00 p.m. ET. Each window na fixed calendar range for 2026.
FAQ
ETF premium or discount mean say something dey wrong with the fund?
Most times, no. Gap of few basis points na the normal cost to assemble the fund basket. For international and bond funds, timing and marking differences dey cause plenty of the gap. But if gap big compared with the fund’s own history, or e continue for many days, na that one you suppose investigate. Start by checking whether creations don get capped.
Why international ETFs dey trade at premium or discount so often?
NAV dey value foreign holdings with their last local closing prices. By the time US trading close for 4:00 p.m. ET, those prices fit don old for many hours. ETF price don continue to move during that time. The published gap na the distance between current price and stale mark.
Wetin be the difference between NAV and intraday indicative value?
NAV na the official per share value of the fund holdings, calculated once after the 4:00 p.m. ET close. Intraday indicative value, or IIV, na estimate of the same value wey dem publish every 15 seconds during the session. Na only NAV dem use for creations and redemptions. Na only NAV dey appear for the fund’s published premium and discount history.
Published premium and discount dey overstate wetin I go experience?
For trade wey happen during the middle of the session, generally yes. Every published figure na snapshot from 4:00 p.m. ET. The closing window dey carry some of the widest price ranges for the day. The fund’s normal quoted spread during the middle of the session na the closer match for mid-session order.
Every panel for here come with the exact SQL underneath am. Put in the funds wey you dey follow, then run the same measurements for the Strasmore terminal.