{"slug":"best-time-of-day-to-sell-mutual-funds","qid":"overnight_vs_intraday","label":"Overnight gap versus the session that follows, complete years","post_title":"Best Time of Day to Sell a Mutual Fund","post_url":"/blog/best-time-of-day-to-sell-mutual-funds#q-overnight_vs_intraday","columns":["year","overnight_move_pct","intraday_move_pct"],"rows":[{"year":2021,"overnight_move_pct":0.364,"intraday_move_pct":0.484},{"year":2022,"overnight_move_pct":0.65,"intraday_move_pct":1.005},{"year":2023,"overnight_move_pct":0.376,"intraday_move_pct":0.554},{"year":2024,"overnight_move_pct":0.354,"intraday_move_pct":0.447},{"year":2025,"overnight_move_pct":0.467,"intraday_move_pct":0.627}],"shape":"ranking","sql":"SELECT\n    year,\n    round(avg(overnight_pct), 3) AS overnight_move_pct,\n    round(avg(intraday_pct), 3)  AS intraday_move_pct\nFROM\n(\n    SELECT\n        toYear(date)                             AS year,\n        abs(open_px / prior_close - 1) * 100     AS overnight_pct,\n        abs(close_px / open_px - 1) * 100        AS intraday_pct\n    FROM\n    (\n        SELECT\n            date,\n            max(toFloat64(open))  AS open_px,\n            max(toFloat64(close)) AS close_px,\n            lagInFrame(max(toFloat64(close)))\n                OVER (ORDER BY date ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prior_close\n        FROM global_markets.stocks_daily_aggs\n        WHERE ticker = 'SPY'\n          AND date >= '2021-01-01'\n          AND date <  toStartOfYear(today())\n        GROUP BY date\n    )\n    WHERE prior_close > 0 AND open_px > 0\n)\nGROUP BY year\nORDER BY year","computed_at":"2026-08-22T04:01:39.647590+00:00","elapsed":0.036424362}