Strasmore Research
Learn am Matt ConnorBy Matt Connor

How Mutual Fund NAV Dey Calculate: Example

See how mutual fund NAV dey calculate with the formula, 4 p.m. ET strike, forward pricing, accrued expenses, and one full example wey you fit reproduce.

Mutual fund wey get NAV, or net asset value, dey calculate am once every business day with one formula: total assets minus total liabilities, divide by shares outstanding. Fund dey strike that number after 4:00 p.m. ET close, using closing price of every security wey e hold. Any order wey you place go fill at the NAV wey fund calculate after e receive am, never the one wey dey show for your screen when you click.

How mutual fund dey calculate NAV, line by line

NAV per share = (total assets - total liabilities) / shares outstanding

Dem measure every input for the same moment: end of business day.

  • Total assets: market value of every holding for e closing price, plus cash wey fund hold, plus money wey dem owe the fund, like dividends wey dem declare but never pay and proceeds from trades wey never settle.
  • Total liabilities: securities wey fund buy but never pay for, redemptions wey fund owe shareholders wey sell, and fees wey accrue since the last payment date.
  • Shares outstanding: the fund own share count at the end of that day, after dem book the day’s purchases and redemptions.

Fund accountants dey call the daily calculation “striking the NAV.” E dey happen for evening, and the published figure reach the fund website and your brokerage statement that night or the next morning.

Which closing prices dey enter NAV

For US listed holding, the mark na the official closing price from the primary exchange, set during the closing auction wey run at 4:00 p.m. ET. That auction na the busiest single period of the trading day. The panel below show am: the share of session volume wey print for each half hour.

QuerySPY session volume wey trade for each half hour, June 2026 average
The exact SQL behind every number
WITH minute_bars AS
(
    SELECT
        toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
        formatDateTime(
            toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 MINUTE),
            '%H:%i')                                         AS et_time,
        toFloat64(volume)                                    AS shares
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime('2026-06-01 00:00:00', 'UTC')
      AND window_start <  toDateTime('2026-07-01 00:00:00', 'UTC')
      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
),
bucket_totals AS
(
    SELECT session_date, et_time, sum(shares) AS bucket_shares
    FROM minute_bars
    GROUP BY session_date, et_time
),
session_totals AS
(
    SELECT session_date, sum(bucket_shares) AS session_shares
    FROM bucket_totals
    GROUP BY session_date
)
SELECT
    b.et_time                                               AS et_time,
    round(avg(b.bucket_shares / s.session_shares) * 100, 2) AS share_of_volume_pct
FROM bucket_totals AS b
INNER JOIN session_totals AS s ON s.session_date = b.session_date
GROUP BY b.et_time
ORDER BY b.et_time
Run this yourself

When dem average every June 2026 session, the half hour wey start 15:30 carry 21.92% of the day’s SPY volume, compared with 11.24% for the half hour wey start 09:30 ET. The prices wey fund use to mark its book dey set for that last window, and na there trading dey concentrate.

Worked NAV example wey you fit reproduce

Dem invent the figures below for this example. Dem round am enough so you fit check am by hand.

  • Holdings valued at their 4:00 p.m. closing prices: $850,000,000
  • Cash and receivables: $14,000,000
  • Total assets: $864,000,000
  • Total liabilities, including unsettled purchases, redemptions payable and accrued fees: $4,000,000
  • Net assets: $860,000,000
  • Shares outstanding: 40,000,000

$860,000,000 divide by 40,000,000 shares give NAV of $21.50 per share. Na be the price for every order wey fund accept that day, whether e arrive at 9:35 a.m. or 3:58 p.m. A $10,000 purchase buy 465.116 shares, because na $10,000 divide by $21.50. Mutual funds dey issue fractional shares, commonly to three decimal places, so the full amount enter without cash remaining unused.

Forward pricing: which NAV your order go receive

Rule 22c-1 under the Investment Company Act set the forward pricing requirement. Fund must fill every purchase or redemption at the next NAV wey e calculate after e receive the order. No mechanism dey to buy at an NAV wey already exist, and the figure wey fund page quote today na the one dem strike at the previous close. Order wey reach fund at 11:15 a.m. Tuesday go price at Tuesday 4:00 p.m. NAV. Order wey reach am at 4:05 p.m. Tuesday go price at Wednesday NAV. The cutoff clock and intermediary rules around am dey covered for when dem price mutual fund orders.

Between the click and the strike, market still dey move. The panel below pin one normal session, June 17, 2026, and mark SPY every fifteen minutes from open to close.

QueryOne session price path, SPY every 15 minutes on June 17, 2026
The exact SQL behind every number
SELECT
    formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') AS et_time,
    round(toFloat64(argMax(close, window_start)), 2)                      AS spy_price
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
  AND window_start >= toDateTime('2026-06-17 13:30:00', 'UTC')
  AND window_start <= toDateTime('2026-06-17 20:00:00', 'UTC')
  AND toMinute(toTimeZone(window_start, 'America/New_York')) % 15 = 0
GROUP BY et_time
ORDER BY et_time
Run this yourself

The first mark, at 09:30 ET, print $750.93. The last one, at 16:00 ET, print $741.83. Every point between dem na real trade at real price, but na only one enter NAV calculation: the last one.

How far portfolio normally fit move between mid-morning order and the strike? The next panel measure the gap on SPY from 10:00 a.m. ET to closing print for every session in the trailing year, averaged by month.

QueryDistance from 10:00 a.m. ET price reach the close, SPY, by month
The exact SQL behind every number
WITH session_marks AS
(
    SELECT
        toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
        argMinIf(toFloat64(close), window_start,
                 (toHour(toTimeZone(window_start, 'America/New_York')) * 60
                  + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 600) AS price_at_10am,
        argMax(toFloat64(close), window_start)                                      AS price_at_close,
        countIf((toHour(toTimeZone(window_start, 'America/New_York')) * 60
                 + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 600)  AS bars_after_10am
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime('2025-08-01 00:00:00', 'UTC')
      AND window_start <  toDateTime('2026-08-01 00:00:00', 'UTC')
      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 session_date
    HAVING bars_after_10am > 30
)
SELECT
    formatDateTime(session_date, '%Y-%m')                       AS month,
    formatDateTime(session_date, '%b %Y')                       AS month_label,
    round(avg(abs(price_at_close / price_at_10am - 1) * 100), 2) AS avg_move_pct,
    round(max(abs(price_at_close / price_at_10am - 1) * 100), 2) AS largest_move_pct
FROM session_marks
GROUP BY month, month_label
ORDER BY month
Run this yourself

For Aug 2025, the average distance reach 0.32%, and for Jul 2026 e reach 0.36%. The widest single session inside that final month reach 1.09%. Those percentages show the size of the window wey fund order sit inside while e dey wait for price.

Where expense ratio dey sit inside NAV

The fee dey inside the number. Na this part many explanations dey leave out. Fund wey charge 0.60% per year on $860,000,000 net assets owe $5,160,000 over one year. E dey book part of am every day instead of billing everything at once. On 365-day accrual, the daily part na about $14,137. That accrual dey sit under liabilities for the formula above and pull NAV down by roughly $0.00035 per share each day, before dem publish the figure.

Two things follow. Fund’s published NAV and published returns already dey net of expense ratio, so you no need subtract anything again when you compare funds. And no separate fee line go show for your statement. The fee never leave your account as cash. Dem deduct am inside the calculation.

Fair value pricing when fund hold foreign stocks

US fund wey hold Japanese shares face timing gap. Tokyo session end at 2:00 a.m. ET, so the last traded price of those shares don old reach fourteen hours when US fund strike NAV at 4:00 p.m. ET. Frankfurt and Paris close at 11:30 a.m. ET, roughly four and a half hours before the strike.

Under SEC Rule 2a-5, fund board designate valuation process wey replace stale closing price with fair value estimate whenever the last quoted price no longer be good measure at the strike moment. Pricing vendors supply adjustment factors, often based on wetin US listed proxies do during the hours after foreign market close.

The size of the gap fit measure. The panel take four US listed funds wey track foreign markets, plus SPY for reference, and measure how far each one move between 11:30 a.m. ET and 4:00 p.m. close.

QueryAverage move from 11:30 a.m. ET European close reach 4:00 p.m. close, Q2 2026
The exact SQL behind every number
WITH afternoon_bars AS
(
    SELECT
        ticker,
        toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
        toFloat64(close)                                     AS px,
        window_start
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('EWJ', 'EWG', 'VGK', 'EFA', 'SPY')
      AND window_start >= toDateTime('2026-04-01 00:00:00', 'UTC')
      AND window_start <  toDateTime('2026-07-01 00:00:00', 'UTC')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 690
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
),
per_session AS
(
    SELECT
        ticker,
        session_date,
        abs(argMax(px, window_start) / argMin(px, window_start) - 1) * 100 AS afternoon_move_pct
    FROM afternoon_bars
    GROUP BY ticker, session_date
    HAVING count() > 30
)
SELECT
    ticker,
    round(avg(afternoon_move_pct), 3) AS avg_afternoon_move_pct,
    round(max(afternoon_move_pct), 3) AS largest_afternoon_move_pct
FROM per_session
GROUP BY ticker
ORDER BY avg_afternoon_move_pct DESC
Run this yourself

During the second quarter of 2026, EWG move average of 0.428% across that period, with one session reaching 2.212%. The quietest of the 5 funds average 0.366%. Fund wey carry unchanged Tokyo or Frankfurt marks into 4:00 p.m. strike go price a book wey don visibly move since those exchanges close. Fair value procedures dey for that window.

Buyers and sellers set ETF market price continuously, and ETF still publish daily NAV. Normally, the two figures dey within pennies of each other. Mutual fund get one number per day and no intraday price at all. Mutual funds versus ETFs explain the full comparison.

Settlement na another date. Your NAV fix on trade day. For most funds, cash and shares change hands one business day later. Na wetin mutual fund settlement time cover. Distributions move NAV on their own schedule: on the day fund pay out, NAV fall by the per-share amount distributed, while cash or reinvested shares enter your account. When mutual funds pay dividends cover that calendar, and selling mutual funds at a loss explain wetin selling below your cost basis mean at tax time.

This one na the point wey readers dey often get wrong. Intraday market move no change the NAV wey you receive unless the move still dey inside closing prices. Portfolio wey jump 2% at 11:00 a.m. and give everything back by 3:45 p.m. go strike the same NAV wey e for get without that round trip. Formula dey read the last price of the day and nothing before am.

FAQ

Which time dem calculate mutual fund NAV?

Once per business day, after 4:00 p.m. ET close. Fund value its holdings at their closing prices, subtract liabilities, and divide by shares outstanding. Most funds publish the figure that same evening.

Wetin be the formula for mutual fund NAV per share?

NAV per share equal total assets minus total liabilities, divide by shares outstanding. Total assets include market value of every holding plus cash and receivables. Liabilities include unpaid trades and accrued fees.

If market rally around lunchtime, my mutual fund order go get that price?

No. Dem fill the order at the NAV wey dem strike after 4:00 p.m. ET, and that calculation read closing prices only. Midday move affect your NAV only if e still dey there at close.

Expense ratio dey come out of my NAV?

Yes. Fund accrue one daily portion of its annual expense ratio as liability, and dem subtract that accrual inside NAV calculation. Published NAVs and published returns already include the deduction.

Why mutual fund NAV dey drop on the day e pay distribution?

Cash dey leave fund assets and enter your account as cash or reinvested shares. NAV fall by the per-share amount paid out, while total value of your position remain unchanged at that moment.


Every panel here come with the SQL wey produce am, so you fit open one and see exactly which minutes dem count. If you want measure how far a holding move between morning price and closing print for any date wey you choose, ask the question in plain English on the Strasmore terminal.

#mutual funds#nav#forward pricing#fund mechanics#fund pricing