{"slug":"how-markets-price-fed-rate-odds","qid":"meeting_windows","label":"Five-session move in short Treasury yields into each 2025 FOMC decision day","post_title":"How Markets Price Fed Rate Odds","post_url":"/blog/how-markets-price-fed-rate-odds#q-meeting_windows","columns":["meeting","m3_change_bps","y1_change_bps"],"rows":[{"meeting":"Jan 29","m3_change_bps":-5,"y1_change_bps":-3},{"meeting":"Mar 19","m3_change_bps":-2,"y1_change_bps":3},{"meeting":"May 7","m3_change_bps":3,"y1_change_bps":15},{"meeting":"Jun 18","m3_change_bps":-3,"y1_change_bps":2},{"meeting":"Jul 30","m3_change_bps":0,"y1_change_bps":4},{"meeting":"Sep 17","m3_change_bps":-7,"y1_change_bps":-6},{"meeting":"Oct 29","m3_change_bps":-3,"y1_change_bps":15},{"meeting":"Dec 10","m3_change_bps":-3,"y1_change_bps":1}],"shape":"ranking","sql":"WITH d AS (\n    SELECT date,\n           toFloat64(yield_3_month) AS m3,\n           toFloat64(yield_1_year) AS y1,\n           lagInFrame(toFloat64(yield_3_month), 5) OVER (ORDER BY date ROWS BETWEEN 5 PRECEDING AND CURRENT ROW) AS m3_five_before,\n           lagInFrame(toFloat64(yield_1_year), 5) OVER (ORDER BY date ROWS BETWEEN 5 PRECEDING AND CURRENT ROW) AS y1_five_before\n    FROM global_markets.treasury_yields\n    WHERE date >= toDate('2024-11-01')\n      AND date <= toDate('2025-12-31')\n      AND yield_3_month IS NOT NULL\n      AND yield_1_year IS NOT NULL\n)\nSELECT concat(formatDateTime(date, '%b'), ' ', toString(toDayOfMonth(date))) AS meeting,\n       round((m3 - m3_five_before) * 100, 1) AS m3_change_bps,\n       round((y1 - y1_five_before) * 100, 1) AS y1_change_bps\nFROM d\nWHERE date IN (toDate('2025-01-29'), toDate('2025-03-19'), toDate('2025-05-07'),\n               toDate('2025-06-18'), toDate('2025-07-30'), toDate('2025-09-17'),\n               toDate('2025-10-29'), toDate('2025-12-10'))\nORDER BY date","computed_at":"2026-08-03T10:41:15.801943+00:00","elapsed":0.003051647}