{"slug":"how-mutual-fund-nav-is-calculated","qid":"click_to_close","label":"Distance from the 10:00 a.m. ET price to the close, SPY, by month","post_title":"How Mutual Fund NAV Is Calculated: Example","post_url":"/blog/how-mutual-fund-nav-is-calculated#q-click_to_close","columns":["month","month_label","avg_move_pct","largest_move_pct"],"rows":[{"month":"2025-08","month_label":"Aug 2025","avg_move_pct":0.32,"largest_move_pct":0.9},{"month":"2025-09","month_label":"Sep 2025","avg_move_pct":0.25,"largest_move_pct":0.64},{"month":"2025-10","month_label":"Oct 2025","avg_move_pct":0.48,"largest_move_pct":2.98},{"month":"2025-11","month_label":"Nov 2025","avg_move_pct":0.66,"largest_move_pct":3.34},{"month":"2025-12","month_label":"Dec 2025","avg_move_pct":0.34,"largest_move_pct":1.11},{"month":"2026-01","month_label":"Jan 2026","avg_move_pct":0.24,"largest_move_pct":0.59},{"month":"2026-02","month_label":"Feb 2026","avg_move_pct":0.47,"largest_move_pct":1.62},{"month":"2026-03","month_label":"Mar 2026","avg_move_pct":0.68,"largest_move_pct":2.11},{"month":"2026-04","month_label":"Apr 2026","avg_move_pct":0.44,"largest_move_pct":0.96},{"month":"2026-05","month_label":"May 2026","avg_move_pct":0.31,"largest_move_pct":0.73},{"month":"2026-06","month_label":"Jun 2026","avg_move_pct":0.59,"largest_move_pct":1.5},{"month":"2026-07","month_label":"Jul 2026","avg_move_pct":0.36,"largest_move_pct":1.09}],"shape":"series","sql":"WITH session_marks AS\n(\n    SELECT\n        toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,\n        argMinIf(toFloat64(close), window_start,\n                 (toHour(toTimeZone(window_start, 'America/New_York')) * 60\n                  + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 600) AS price_at_10am,\n        argMax(toFloat64(close), window_start)                                      AS price_at_close,\n        countIf((toHour(toTimeZone(window_start, 'America/New_York')) * 60\n                 + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 600)  AS bars_after_10am\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker = 'SPY'\n      AND window_start >= toDateTime('2025-08-01 00:00:00', 'UTC')\n      AND window_start <  toDateTime('2026-08-01 00:00:00', 'UTC')\n      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60\n           + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570\n      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60\n           + toMinute(toTimeZone(window_start, 'America/New_York'))) < 960\n    GROUP BY session_date\n    HAVING bars_after_10am > 30\n)\nSELECT\n    formatDateTime(session_date, '%Y-%m')                       AS month,\n    formatDateTime(session_date, '%b %Y')                       AS month_label,\n    round(avg(abs(price_at_close / price_at_10am - 1) * 100), 2) AS avg_move_pct,\n    round(max(abs(price_at_close / price_at_10am - 1) * 100), 2) AS largest_move_pct\nFROM session_marks\nGROUP BY month, month_label\nORDER BY month","computed_at":"2026-08-06T04:19:16.372060+00:00","elapsed":0.003996288}