ETF NAV vs market price: premiums, discounts and which one your data shows
Why an ETF has two prices, how creation and redemption keep them close, when premiums and discounts appear, and why factsheet performance is NAV-based.Published 20 September 2026 · 6 min read · by FundFacts APIAn ETF has two prices: the net asset value (NAV), which is the value of the fund's holdings minus liabilities divided by shares outstanding and is struck once a day, and the market price, which is whatever the shares last traded at on an exchange during the day. When the market price is above NAV the ETF trades at a premium; below, at a discount. For liquid ETFs on open markets the two stay within a few basis points because authorised participants can create or redeem shares whenever they diverge, but they can separate when the underlying market is closed, illiquid or stressed. Factsheet and API performance figures are calculated from NAV, not from the market price.
What NAV is
The NAV of a fund is the total value of its assets less its liabilities. NAV per share is that figure divided by the number of shares in issue. For a UCITS ETF the administrator computes it once per dealing day, after the markets where the fund invests have closed, using the closing prices of every holding and the day's exchange rates, minus accrued fees. It is the price at which the fund itself issues and redeems shares with authorised participants, and it is the price series that a fund's total-return figures are built on.
NAV has three properties that matter for data:
- It is daily, so a NAV series has one point per dealing day (weekends and holidays have none).
- It is in the share-class currency, which is why a USD share class and a EUR-hedged share class of the same fund have different NAV series.
- It is net of ongoing charges, because fees accrue inside the fund before the NAV is struck. Returns computed from NAV are therefore net of the TER.
What the market price is
An ETF share is listed on one or more exchanges and trades like a stock. The market price is the last traded price, and the bid and ask around it are quoted by market makers. During the trading day exchanges and data vendors also publish an indicative NAV (iNAV), an estimate of the NAV updated every few seconds from live prices of the holdings, so that traders can see whether the quote is fair. The official NAV, however, only exists at the end of the day.
Because trading happens on the exchange and not with the fund, the market price is set by supply and demand for the ETF shares, and nothing forces it to equal NAV at every instant. What keeps it close is arbitrage.
Creation and redemption: why the gap stays small
Authorised participants (large broker-dealers) can deliver a basket of the underlying securities (or cash) to the fund and receive new ETF shares at NAV, or return ETF shares and receive the basket. If the ETF trades at a premium, an AP buys the basket, creates shares at NAV and sells them on the exchange at the higher price, pushing the price back down; at a discount the trade runs the other way. For an ETF whose holdings are liquid and trading at the same time as the ETF, this keeps premiums and discounts to a few basis points, roughly the cost of doing the arbitrage.
When premiums and discounts appear
| Situation | Why the gap opens | Typical sign |
|---|---|---|
| Underlying market closed | A European-listed ETF on US or Asian equities trades while its holdings do not; the market price reflects news the stale NAV does not | Apparent premium or discount that disappears at the next NAV |
| Illiquid holdings | High-yield bonds, small caps, frontier markets: APs cannot cheaply assemble the basket | Persistent small discounts, wider in stress |
| Market stress | Dealers' balance sheets are constrained; bond ETFs traded at notable discounts in March 2020 | Discounts that later close |
| Currency moves after the NAV time | The NAV uses one FX fix; the market price moves with the live rate | Small, mechanical |
| Thin ETF listing | Wide bid-ask spreads on a small listing rather than a true premium | Large spread, price inside it |
| Capacity or creation halts | The fund suspends creations (rare; some commodity and single-country ETFs) | Premiums that persist |
The first row is the one that confuses most readers. An MSCI World ETF listed in Frankfurt prices all day, but its US holdings, which are the majority of the index, only trade from the afternoon European time. Morning "premiums" and "discounts" in that ETF are mostly the market pricing in the US futures move since the previous close, not a mispricing. In these cases the market price is arguably the more current number, and the NAV catches up in the evening.
Which price your data shows
Factsheets and regulatory documents use NAV. So does FundFacts API: the performance block is computed from the issuer's published NAV history when there is one, using the last NAV of each month, and otherwise from the returns stated in the factsheet. That means:
cumulativePerformance,indexedPerformance.points,calendarReturnsandannualisedReturnsare NAV-based total returns in the share-class currency.headlineMetrics.volatility3y,headlineMetrics.sharpe3yandmetrics.maxDrawdownare computed from the same monthly NAV returns over the trailing three years.dataAsOfis the date of the latest NAV observation used, or the factsheet's reporting date.- There is no market price, bid/ask or premium/discount field. Those are exchange data, vary by listing (one ISIN, several exchanges), and are not part of a factsheet.
This is the right basis for comparing funds, because NAV returns depend only on the portfolio and the fees, not on which exchange or time of day an investor traded. It is not, however, what any individual investor earned: their return is market price to market price, and the difference from the NAV return is the premium at purchase minus the premium at sale, plus the spread paid. Over long holding periods in liquid ETFs that difference is small; over a day in a stressed bond ETF it can be the whole story.
Reading the NAV-based figures
typescriptconst r = await fetch("https://fundfactsapi.com/api/v1/funds/IE00B3RBWM25", {headers: { Authorization: "Bearer ffk_live_..." },});const { data } = await r.json();// Monthly NAV-based series, rebased to 100 at the first pointconst series = data.indexedPerformance.points; // [{ date: "2021-09", fund: 100, index: null }, …]const last = series.at(-1);console.log(last.date, last.fund); // e.g. "2026-08", 168.2// Annualised NAV total returnsfor (const row of data.annualisedReturns) console.log(row.label, row.fund, row.index);// The date these figures refer toconsole.log(data.dataAsOf); // latest NAV observation used
If you also display live market prices from an exchange feed, label the two clearly: "NAV return" for the factsheet figures and "price" for the quote, and show the premium/discount as its own number computed from the day's official NAV once it is published. Mixing a live price into a NAV series produces a last point that is not comparable with the rest.
NAV, premium and tracking
Premium and discount are about the ETF's share price versus its own NAV. Tracking difference is about the ETF's NAV versus its index. Both are usually small for a liquid physical ETF, and both are worth separating from the third source of divergence, which is the replication method. A reader who sees an ETF "underperforming" should ask which of the three gaps they are looking at before drawing a conclusion. The performance data post describes the NAV-based series in detail, and the field reference lists every performance key.
For non-ETF UCITS funds none of this applies: there is no exchange and no market price, and investors deal directly with the fund at NAV (sometimes adjusted by swing pricing).
FAQ
Is it bad to buy an ETF at a premium to NAV?
It means paying more than the current value of the holdings. For liquid ETFs the premium is normally a few basis points and irrelevant over a long holding period. It matters when the premium is large and likely to close, for example in illiquid or capacity-constrained ETFs, or when the NAV is stale because the underlying market is closed and the 'premium' is really the market pricing in new information.
Why does an ETF's return differ from its NAV return?
Published returns are NAV-to-NAV. An investor's realised return is market price to market price, so it differs by the change in premium or discount between purchase and sale, plus the bid-ask spread paid. The two converge over long periods in liquid ETFs.
What is iNAV?
The indicative or intraday NAV: an estimate of the ETF's NAV published during the trading day from live prices of the holdings, used by traders to judge whether the quoted price is fair. The official NAV is calculated once a day after the underlying markets close.
Does the API return the market price of an ETF?
No. It returns NAV-based performance, statistics and the as-of date from the fund's published documents and NAV history. Market prices depend on the listing and the time of day and belong to an exchange data feed.