{"slug":"mutual-fund-forward-pricing-rule","qid":"daily_move_distribution","label":"daily_move_distribution","post_title":"mutual-fund-forward-pricing-rule","post_url":"/blog/mutual-fund-forward-pricing-rule#q-daily_move_distribution","columns":["move_bucket","observations","share_of_sessions_pct"],"rows":[{"move_bucket":"under 0.25%","observations":263,"share_of_sessions_pct":28.7},{"move_bucket":"0.25% to 0.5%","observations":194,"share_of_sessions_pct":21.2},{"move_bucket":"0.5% to 1%","observations":262,"share_of_sessions_pct":28.6},{"move_bucket":"1% to 2%","observations":171,"share_of_sessions_pct":18.6},{"move_bucket":"over 2%","observations":27,"share_of_sessions_pct":2.9}],"shape":"ranking","sql":"WITH d AS\n(\n    SELECT\n        toFloat64(close)                                    AS px,\n        lagInFrame(toFloat64(close)) OVER (ORDER BY date\n            ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING)       AS prev_px\n    FROM global_markets.stocks_daily_aggs\n    WHERE ticker = 'SPY'\n      AND date >= '2023-01-01'\n      AND date <  '2026-09-01'\n),\nmoves AS\n(\n    SELECT abs(px / prev_px - 1) * 100 AS move_pct\n    FROM d\n    WHERE prev_px > 0\n)\nSELECT\n    multiIf(move_pct < 0.25, 'under 0.25%',\n            move_pct < 0.5,  '0.25% to 0.5%',\n            move_pct < 1,    '0.5% to 1%',\n            move_pct < 2,    '1% to 2%',\n                             'over 2%')                     AS move_bucket,\n    count()                                                 AS observations,\n    round(100.0 * count() / sum(count()) OVER (), 1)        AS share_of_sessions_pct\nFROM moves\nGROUP BY move_bucket\nORDER BY min(move_pct)","computed_at":"2026-09-24T14:48:32.800752+00:00","elapsed":0.003219709}