Mutual Fund Forward Pricing Rule Explained
Under the forward pricing rule, a mutual fund order is priced at the next NAV struck after it arrives. Here is what that means for your buy or sell.
The forward pricing rule is why you cannot know the price of a mutual fund trade at the moment you place it. Under SEC Rule 22c-1, a mutual fund order is priced at the next net asset value computed after the fund or its agent receives the order. The NAV showing on your screen when you click buy was struck after the previous close. It is history, not your price.
What the forward pricing rule actually says
Net asset value, or NAV, is everything a fund owns minus what it owes, divided by the number of shares outstanding. Funds strike it once a day, after the close of regular trading, on every day the exchange is open. The arithmetic behind that single number is covered in how mutual fund NAV is calculated.
Rule 22c-1, in force since 1968, governs the other half of the transaction: which NAV your order gets. The fund and any intermediary carrying the order must transact at the NAV next computed after receipt. Two things follow from that one word, "next".
- An order received before the day's cut-off is priced at the NAV struck that evening.
- An order received after the cut-off waits, and is priced at the following business day's NAV.
Cut-off times are set by the fund and, separately, by the broker or platform carrying your order. An intermediary's deadline often sits earlier than the fund's own, since it has to batch and forward orders before the fund closes its books. Both appear in the prospectus and in the platform's order terms, and both change from time to time, so the only reliable cut-off is the one published where you actually trade. For the wider timing picture, see when mutual funds trade.
Why the NAV on your screen is not your price
Every NAV you can look up has already happened. The distance between that last published NAV and the one your order will receive is a full session of price movement in whatever the fund holds.
Mutual fund NAVs are not quoted on a public tape through the day, so the panels here use the closing prices of SPY, a large S&P 500 exchange-traded fund, as a stand-in for the holdings of a diversified US stock fund. The mechanism is the same either way: a fund's NAV moves with the closing prices of what it owns.
| move_bucket | observations | share_of_sessions_pct |
|---|---|---|
| under 0.25% | 263 | 28.7 |
| 0.25% to 0.5% | 194 | 21.2 |
| 0.5% to 1% | 262 | 28.6 |
| 1% to 2% | 171 | 18.6 |
| over 2% | 27 | 2.9 |
The exact SQL behind every number
WITH d AS
(
SELECT
toFloat64(close) AS px,
lagInFrame(toFloat64(close)) OVER (ORDER BY date
ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prev_px
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'SPY'
AND date >= '2023-01-01'
AND date < '2026-09-01'
),
moves AS
(
SELECT abs(px / prev_px - 1) * 100 AS move_pct
FROM d
WHERE prev_px > 0
)
SELECT
multiIf(move_pct < 0.25, 'under 0.25%',
move_pct < 0.5, '0.25% to 0.5%',
move_pct < 1, '0.5% to 1%',
move_pct < 2, '1% to 2%',
'over 2%') AS move_bucket,
count() AS observations,
round(100.0 * count() / sum(count()) OVER (), 1) AS share_of_sessions_pct
FROM moves
GROUP BY move_bucket
ORDER BY min(move_pct)About 28.7% of sessions in that window closed within 0.25% of the prior close. That is the comfortable case: the NAV you looked at and the NAV you were given are nearly the same number. The tail is the part worth knowing about. 2.9% of sessions moved more than 2%, and on those days the two numbers are not close at all.
How far the value travels between your click and the strike
An order placed at lunchtime is not priced at the lunchtime value. It sits until the close. The panel below measures the distance still to travel: for each half-hour mark of the regular session, the average absolute move from that moment to that day's final print.
| et_time | avg_move_to_close_pct | observations |
|---|---|---|
| 09:30 | 0.401 | 104 |
| 10:00 | 0.366 | 104 |
| 10:30 | 0.334 | 104 |
| 11:00 | 0.31 | 104 |
| 11:30 | 0.31 | 104 |
| 12:00 | 0.277 | 104 |
| 12:30 | 0.249 | 104 |
| 13:00 | 0.237 | 104 |
| 13:30 | 0.198 | 103 |
| 14:00 | 0.179 | 103 |
| 14:30 | 0.15 | 103 |
| 15:00 | 0.126 | 103 |
| 15:30 | 0.104 | 103 |
The exact SQL behind every number
WITH bars AS
(
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
toTimeZone(window_start, 'America/New_York') AS et,
toFloat64(close) AS px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= today() - 150
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
),
final_print AS
(
SELECT
session_date,
argMax(px, et) AS closing_px
FROM bars
GROUP BY session_date
)
SELECT
formatDateTime(b.et, '%H:%i') AS et_time,
round(avg(abs(f.closing_px / b.px - 1)) * 100, 3) AS avg_move_to_close_pct,
count() AS observations
FROM bars AS b
INNER JOIN final_print AS f ON f.session_date = b.session_date
WHERE toMinute(b.et) IN (0, 30)
GROUP BY et_time
ORDER BY et_timeAt the 09:30 ET open, the closing value averages 0.401% away in absolute terms. By 15:30 ET the remaining average distance is 0.104%. The curve slopes down all day, which is the shape of uncertainty draining out of an order that was already submitted. Placing the order earlier does not get you a better price, and placing it at 3:59 p.m. does not get you a worse one. Every order in before the cut-off receives the identical NAV.
Why a limit price does nothing on a fund order
A limit order names a maximum you will pay or a minimum you will accept. It works on a stock, which trades continuously against a live bid and offer. A mutual fund has neither. There is one price per day, computed by the fund after the close, and Rule 22c-1 requires every order received before the cut-off to transact at it. A price condition attached to a fund order has nothing to test itself against, and brokers do not accept one. The order-entry mechanics are laid out in can you place a limit order on a mutual fund.
You commit dollars, not a share count
A stock order is usually written in shares. A fund order is usually written in dollars, and forward pricing is the reason: the share count cannot be computed until the NAV exists. Put $10,000 in, and what lands in the account is $10,000 divided by that evening's NAV, whatever it turns out to be, less any applicable sales charge.
| session_label | shares_at_screen_nav | shares_at_struck_nav | move_pct |
|---|---|---|---|
| Apr 9, 2025 | 20.14 | 18.23 | 10.5 |
| Apr 4, 2025 | 18.63 | 19.79 | 5.85 |
| Apr 3, 2025 | 17.71 | 18.63 | 4.93 |
| Apr 10, 2025 | 18.23 | 19.06 | 4.38 |
| May 12, 2025 | 17.72 | 17.15 | 3.3 |
| Dec 18, 2024 | 16.55 | 17.06 | 2.98 |
| Aug 5, 2024 | 18.77 | 19.33 | 2.91 |
| Mar 31, 2026 | 15.82 | 15.38 | 2.91 |
| Oct 10, 2025 | 14.9 | 15.31 | 2.7 |
| Mar 10, 2025 | 17.36 | 17.84 | 2.66 |
The exact SQL behind every number
WITH d AS
(
SELECT
date,
toFloat64(close) AS px,
lagInFrame(toFloat64(close)) OVER (ORDER BY date
ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prev_px
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'SPY'
AND date >= '2023-01-01'
AND date < '2026-09-01'
)
SELECT
formatDateTime(date, '%b %e, %Y') AS session_label,
round(10000.0 / prev_px, 2) AS shares_at_screen_nav,
round(10000.0 / px, 2) AS shares_at_struck_nav,
round(abs(px / prev_px - 1) * 100, 2) AS move_pct
FROM d
WHERE prev_px > 0
ORDER BY abs(px / prev_px - 1) DESC
LIMIT 10These are the ten sharpest single-session moves in the window. On Apr 9, 2025, the last published value implied 20.14 shares for a $10,000 order, while the value struck at that session's close delivered 18.23. The two counts differ by the size of that session's move, 10.5%. Days like these are rare, as the distribution above shows, and they are the days when the gap between the screen and the strike is impossible to ignore.
Until the strike, a confirmation typically shows the dollar amount and a pending status with no share count. The count appears once the NAV is set and the trade is priced. Redemptions run the same way in reverse: you name shares or dollars, and the proceeds are fixed by the NAV computed after your order is received. The sell-side timing questions are covered in the best time of day to sell mutual funds.
Days when no NAV is struck
Funds value their holdings on each day the exchange is open. On a full-day closure there are no closing prices and no NAV, so the queue simply waits. An order that arrives Friday after the cut-off ahead of a Monday holiday is priced at Tuesday evening's NAV, days after it was placed. The forward calendar below lists the closures ahead.
The soonest entry is Thanksgiving on Thu Nov 26, 63 days out, and the panel carries 12 dated entries in all. Rows marked closed are days with no NAV at all. Rows marked early-close are still NAV days: the fund values its holdings at the shortened 1:00 p.m. close rather than 4:00 p.m. There is more on the queue behaviour in whether mutual funds trade on holidays.
Forward pricing is not settlement
Forward pricing decides which NAV your order receives. Settlement decides when the money and the shares actually change hands, which for a mutual fund is typically one business day after the trade date. A purchase priced at tonight's NAV still has a settlement date sitting after it, and a redemption priced tonight pays out on its own schedule. The two clocks are separated in mutual fund settlement time.
FAQ
What is the forward pricing rule?
It is SEC Rule 22c-1, which requires a mutual fund order to be priced at the next net asset value computed after the fund or an authorized intermediary receives it. Nobody, including the fund, knows that price at the moment the order is placed.
Do I get today's NAV if I buy a mutual fund in the morning?
If the order reaches the fund or its intermediary before that day's cut-off, it is priced at the NAV struck after that day's close. An order arriving after the cut-off is priced at the following business day's NAV. Cut-offs are set by the fund and by the platform carrying the order, and the platform's is often the earlier of the two.
Can I set a limit price on a mutual fund order?
No. A fund carries one price per day, calculated after the close, and every order received before the cut-off transacts at it. There is no continuous quote for a limit condition to test itself against.
Why does my fund order show no share count until the next day?
The share count is your dollar amount divided by a NAV that has not been computed yet. It appears once the fund strikes the NAV after the close and the order is priced at it.
Every panel above ships with the exact SQL beneath it, expandable in place. To measure how far a fund's holdings typically travel between one close and the next, ask the question in plain English on the Strasmore terminal.