{"slug":"best-time-of-day-to-sell-mutual-funds","qid":"daily_move_buckets","label":"How big a one-day move usually is, sessions since 2016","post_title":"Best Time of Day to Sell a Mutual Fund","post_url":"/blog/best-time-of-day-to-sell-mutual-funds#q-daily_move_buckets","columns":["move_bucket","frequency_pct"],"rows":[{"move_bucket":"under 0.25%","frequency_pct":30.6},{"move_bucket":"0.25% to 0.50%","frequency_pct":19.5},{"move_bucket":"0.50% to 1.00%","frequency_pct":25.9},{"move_bucket":"1.00% to 2.00%","frequency_pct":18},{"move_bucket":"over 2.00%","frequency_pct":6}],"shape":"ranking","sql":"SELECT\n    move_bucket,\n    round(count() * 100.0 / sum(count()) OVER (), 1) AS frequency_pct\nFROM\n(\n    SELECT\n        multiIf(move_pct < 0.25, 'under 0.25%',\n                move_pct < 0.50, '0.25% to 0.50%',\n                move_pct < 1.00, '0.50% to 1.00%',\n                move_pct < 2.00, '1.00% to 2.00%',\n                'over 2.00%') AS move_bucket,\n        move_pct\n    FROM\n    (\n        SELECT abs(close_px / prior_close - 1) * 100 AS move_pct\n        FROM\n        (\n            SELECT\n                date,\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 >= '2016-01-01'\n              AND date <  today() - 2\n            GROUP BY date\n        )\n        WHERE prior_close > 0\n    )\n)\nGROUP BY move_bucket\nORDER BY min(move_pct) ASC","computed_at":"2026-08-22T04:01:39.304727+00:00","elapsed":0.042152999}