What the market knew two days out

Market-implied probabilities of an FOMC rate change, measured at the close two business days before each decision, against what the Committee actually did. 251 scheduled meetings, February 1994 to July 2026. Prepared 13 September 2026.

100%  |  2%

When the market put an 85 to 95 percent probability on a rate change two days out, the Fed changed rates in 18 of 18 cases — every one. When it put 5 to 15 percent on a change, the Fed moved 1 of 48 times. Mean implied probabilities in the two buckets were 91% and 9%.

Both bins therefore lean the same way: the market is under-confident. It says 91 percent and delivers 100; it says 9 percent and delivers 2. The probabilities are compressed toward the middle at both ends. Part of that is real and part of it is mechanical — see what these numbers are — but the direction is consistent across 251 meetings.

The buckets are thin in the middle, and that is structural rather than accidental: the implied probability is a mechanical transform of a single expected rate, so 142 of 251 meetings sit in the 0-5 percent or 95-100 percent buckets. Intermediate readings are rare, and they are where the information is.

← Back to the record

Who wrote this. The research, the code, the charts and all of the writing below are Claude’s (Anthropic’s model), working under Jason Furman’s direction: he asked the questions, chose the framing and checked the numbers, and it built the dataset and wrote the text. It is posted here because he found it useful, not because he wrote it.

The whole calibration picture

Across the full sample the implied probability of a move tracks the realized frequency closely and monotonically: every bucket's realized rate is higher than the one below it. The one place the market looks genuinely over-confident is the top: of the 51 meetings priced at 95 percent or better, 3 did not move — and all three are from 1994, discussed below.

Each dot is a bin of meetings grouped by the market-implied probability of a rate change; its height is the share that actually changed. Dot area is proportional to the number of meetings.0%25%50%75%100%0%25%50%75%100%perfect calibration0-5%: 0 of 91 meetings moved (0%); mean implied 2%0/915-15%: 1 of 48 meetings moved (2%); mean implied 9%1/4815-35%: 1 of 25 meetings moved (4%); mean implied 22%1/2535-65%: 3 of 10 meetings moved (30%); mean implied 52%3/1065-85%: 6 of 8 meetings moved (75%); mean implied 73%6/885-95%: 18 of 18 meetings moved (100%); mean implied 91%18/1895-100%: 48 of 51 meetings moved (94%); mean implied 99%48/51the 85-95% binShare of meetings where the Fed actually movedMarket-implied probability of a move, two days out
Each dot is a group of meetings sharing a range of implied probability; its height is the share that actually moved. Dot area is proportional to the number of meetings, and the label gives the count. The 85-95 percent bin is picked out in violet.
Implied probability of a moveMeetingsMean implied probabilityThe Fed movedRealized share
0-5%912%00%
5-15%489%12%
15-35%2522%14%
35-65%1052%330%
65-85%873%675%
85-95%1891%18100%
95-100%5199%4894%

Bins are half-open. Probability of a move is one minus the probability the market put on no change, at the close two business days before the decision.

The 18 meetings in the 85-95 percent bin

MeetingEraImplied probability of a moveWhat the Fed did
1997-03-251994-200894%+25bp
1999-08-241994-200891%+25bp
2004-08-101994-200889%+25bp
2004-11-101994-200894%+25bp
2004-12-141994-200894%+25bp
2005-05-031994-200893%+25bp
2005-08-091994-200894%+25bp
2005-09-201994-200890%+25bp
2005-11-011994-200893%+25bp
2006-03-281994-200893%+25bp
2006-05-101994-200886%+25bp
2017-03-152015-202687%+25bp
2017-06-142015-202691%+25bp
2018-06-132015-202685%+25bp
2019-09-182015-202685%-25bp
2019-10-302015-202692%-25bp
2023-05-032015-202693%+25bp
2025-12-102015-202688%-25bp

No exceptions: every meeting the market priced at 85 to 95 percent produced a rate change.

The 48 meetings in the 5-15 percent bin

MeetingEraImplied probability of a moveWhat the Fed did
1995-05-231994-200814%held
1995-12-191994-20087%-25bp
1996-03-261994-20086%held
1996-05-211994-200815%held
1996-08-201994-20089%held
1997-02-051994-200811%held
1997-09-301994-20085%held
1997-11-121994-200811%held
1998-03-311994-200811%held
1998-08-181994-200810%held
1999-03-301994-20085%held
2000-11-151994-20085%held
2002-05-071994-20086%held
2002-12-101994-200811%held
2003-12-091994-20086%held
2004-05-041994-20088%held
2006-09-201994-200814%held
2006-12-121994-20086%held
2008-06-251994-200815%held
2008-08-051994-20086%held
2009-04-292008-2015 (zero lower bound)7%held
2009-06-242008-2015 (zero lower bound)13%held
2009-09-232008-2015 (zero lower bound)6%held
2009-12-162008-2015 (zero lower bound)8%held
2010-01-272008-2015 (zero lower bound)8%held
2010-04-282008-2015 (zero lower bound)15%held
2010-12-142008-2015 (zero lower bound)8%held
2011-03-152008-2015 (zero lower bound)9%held
2011-04-272008-2015 (zero lower bound)5%held
2011-06-222008-2015 (zero lower bound)8%held
2011-09-212008-2015 (zero lower bound)7%held
2012-03-132008-2015 (zero lower bound)8%held
2013-01-302008-2015 (zero lower bound)8%held
2013-06-192008-2015 (zero lower bound)10%held
2015-03-182008-2015 (zero lower bound)9%held
2015-06-172008-2015 (zero lower bound)6%held
2015-10-282008-2015 (zero lower bound)6%held
2016-01-272015-202611%held
2016-09-212015-202611%held
2017-02-012015-20269%held
2017-05-032015-20267%held
2018-01-312015-20265%held
2018-08-012015-20267%held
2018-11-082015-20269%held
2020-01-292015-202611%held
2020-06-102015-20268%held
2021-06-162015-20268%held
2024-07-312015-20265%held

One exception, in bold: 19 December 1995.

The meetings that defied their bucket

19 December 1995 — the market had the cut right and the date wrong

Two days out the futures strip put a 7 percent probability on a move, and the Committee cut the funds rate by a quarter point, from 5.75 to 5.50 percent. It is the only meeting in thirty-two years where the market said "almost certainly nothing" and something happened.

Was it explained? Yes, and unusually plainly for the period. The announcement — three sentences, which is what a 1995 announcement was — said that "since the last easing of monetary policy in July, inflation had been somewhat more favorable than anticipated," and that this "and an associated moderation in inflation expectations" warranted the easing. The minutes give the fuller argument: "the policy stance, as indexed by the prevailing real federal funds rate, was becoming somewhat restrictive as inflation and inflationary expectations moderated." The vote was unanimous.

The meeting transcript is blunter still. Greenspan: "falling inflation expectations have increased the real funds rate since July… the economy has more of a feel of driving with the parking brake partially engaged… we rightfully should be moving the funds rate lower." He added that he was not worried about reigniting inflation and that "frankly 25 basis points is not in that regard a big deal" — the real risk he named was that "we are at the edge of a bond and stock bubble."

Why the market missed it. Not because it misread the direction. On the Monday before the meeting the January 1996 contract was already nine basis points below the funds target and the February contract twenty-seven below — the strip had a full quarter-point cut priced in by February and roughly a third of one by January. The market expected this cut; it expected it in a few weeks. What it could not price was a decision whose trigger was not an event. Nothing had happened that week. The case was that inflation expectations had drifted down since July, which mechanically tightened policy at an unchanged nominal rate — an argument available on any given Tuesday, and therefore attached to no particular Tuesday.

There is a nice circularity in the minutes: one reason the Committee gave for moving was that "with markets expecting a reduction in the federal funds rate in coming months, an unchanged policy was likely to lead to a backup in intermediate- and long-term rates." The Fed moved partly because the curve already had a cut in it.

The budget question. The federal government was in the middle of its second shutdown of the winter, and the contemporaneous reading in some quarters was that the Fed was rewarding progress toward a deficit deal. The transcript does not support that. McDonough: "as regards the budget debate, it seems to me the best thing we can do is to distance ourselves from the debate… I don't believe we should be punishing politicians for what we don't like or rewarding them." Hoenig agreed that "the budget debate should not be a consideration for us." The Committee did assume "considerable fiscal restraint" in its forecast, but as a projection, not as a quid pro quo.

The market's reaction was to take the hint about the path, not the level. Over the two days spanning the decision the two-year Treasury yield fell 10 basis points, the ten-year 9 and the thirty-year 9. The whole fed funds strip repriced down by 8 to 11 basis points out to June 1996 — the January contract by 11. Equities did nothing much: the S&P 500 rose 0.8 percent on the day and gave it back the next. That is the signature of a surprise that changes the expected path rather than the news: a bond market that concludes more is coming, and an equity market that shrugs. It was right. The Fed cut again on 31 January 1996.

The other side: the three meetings priced at 100 percent where the Fed held

The 85-95 percent bucket has no exception, but the bucket above it has three, and they are the mirror image of December 1995 — all from 1994, all cases where the market had the move right and the meeting wrong.

MeetingImplied probability of a moveExpected changeWhat the Fed didWhat it did at the next meeting
1994-07-06100%+30bpheld+50bp on 16 August
1994-09-27100%+26bpheld+75bp on 15 November
1994-12-20100%+37bpheld+50bp on 1 February 1995

Each time the Fed did exactly what the market expected, a few weeks later and usually larger. The clearest is 6 July 1994, and Greenspan's opening words at that meeting explain the hold: "it's fairly apparent that if we move today, the general view is going to be that we moved in order to support the dollar." The dollar was under heavy pressure that summer; the Committee held rather than validate that reading, then raised by 50 basis points in August. In December 1994 Greenspan told the Committee he was "impressed with the extent to which it is very difficult to find any negative factors in the current outlook" — and they still held, then went 50 in February.

There is also a measurement point buried in these three, and it cuts against reading 1994 too confidently. A monthly futures contract prices the funds rate being higher for the rest of the month, not specifically at the meeting — and 1994 was a year in which the Fed moved between meetings, on 18 April. Some of what looks like a 100 percent probability on a hike at the meeting was a probability of a hike sometime in those weeks. That distinction disappears once policy changes come only on meeting days, which is why the problem does not recur after the 1990s.

Taken together, the two kinds of failure in this dataset are the same failure: the market has been reliably right about what the Fed would do and occasionally wrong about when.

How well does the market call the Fed?

The honest summary is that it calls it very well now and called it only moderately well thirty years ago, and that almost all of the improvement belongs to the Federal Reserve rather than to the market.

1994-20082008-2015 (ZLB)2015-2026All
Scheduled meetings1155185251
Meetings that changed rates4802977
Most likely outcome was the actual one82%100%99%91%
Mean probability on the actual outcome0.7490.9520.9240.849
Mean absolute surprise (bp)6.41.21.93.8
Mean Brier score0.2510.0090.0340.128
Moves only: modal call right75%—97%83%
Moves only: mean probability on the actual outcome0.695—0.8600.757
Moves only: mean absolute surprise (bp)7.6—3.56.1
Scatter of the market-implied expected change two days before each FOMC decision against the change the Committee made, 1994-2026. Points on the diagonal were fully anticipated.-100-75-50-250+25+50+75-100-75-50-250+25+50+75perfect foresight1994-02-04: expected +11bp, actual +25bp1994-03-22: expected +35bp, actual +25bp1994-05-17: expected +46bp, actual +50bp1994-07-06: expected +30bp, actual +0bp1994-08-16: expected +36bp, actual +50bp1994-09-27: expected +26bp, actual +0bp1994-11-15: expected +61bp, actual +75bp1994-12-20: expected +37bp, actual +0bp1995-03-28: expected +7bp, actual +0bp1995-05-23: expected -4bp, actual +0bp1995-07-06: expected -15bp, actual -25bp1995-08-22: expected -4bp, actual +0bp1995-09-26: expected -5bp, actual +0bp1995-11-15: expected -5bp, actual +0bp1995-12-19: expected -2bp, actual -25bp1996-01-31: expected -13bp, actual -25bp1996-03-26: expected -2bp, actual +0bp1996-05-21: expected +4bp, actual +0bp1996-07-03: expected +5bp, actual +0bp1996-08-20: expected +2bp, actual +0bp1996-09-24: expected +16bp, actual +0bp1996-11-13: expected +5bp, actual +0bp1996-12-17: expected +12bp, actual +0bp1997-02-05: expected +3bp, actual +0bp1997-03-25: expected +24bp, actual +25bp1997-05-20: expected +5bp, actual +0bp1997-07-02: expected +4bp, actual +0bp1997-08-19: expected -1bp, actual +0bp1997-09-30: expected -1bp, actual +0bp1997-11-12: expected +3bp, actual +0bp1997-12-16: expected +16bp, actual +0bp1998-02-04: expected -6bp, actual +0bp1998-03-31: expected +3bp, actual +0bp1998-05-19: expected +14bp, actual +0bp1998-08-18: expected -3bp, actual +0bp1998-09-29: expected -37bp, actual -25bp1998-11-17: expected -6bp, actual -25bp1998-12-22: expected +17bp, actual +0bp1999-02-03: expected +8bp, actual +0bp1999-03-30: expected -1bp, actual +0bp1999-05-18: expected +4bp, actual +0bp1999-06-30: expected +31bp, actual +25bp1999-08-24: expected +23bp, actual +25bp1999-10-05: expected +9bp, actual +0bp1999-11-16: expected +20bp, actual +25bp1999-12-21: expected -15bp, actual +0bp2000-03-21: expected +28bp, actual +25bp2000-05-16: expected +42bp, actual +50bp2000-06-28: expected +5bp, actual +0bp2000-08-22: expected -1bp, actual +0bp2000-10-03: expected -1bp, actual +0bp2000-11-15: expected +1bp, actual +0bp2000-12-19: expected -15bp, actual +0bp2001-01-31: expected -41bp, actual -50bp2001-03-20: expected -63bp, actual -50bp2001-05-15: expected -38bp, actual -50bp2001-06-27: expected -38bp, actual -25bp2001-08-21: expected -31bp, actual -25bp2001-10-02: expected -37bp, actual -50bp2001-11-06: expected -26bp, actual -50bp2001-12-11: expected -27bp, actual -25bp2002-01-30: expected +0bp, actual +0bp2002-03-19: expected +10bp, actual +0bp2002-05-07: expected +1bp, actual +0bp2002-06-26: expected +1bp, actual +0bp2002-08-13: expected -5bp, actual +0bp2002-09-24: expected -5bp, actual +0bp2002-11-06: expected -28bp, actual -50bp2002-12-10: expected -3bp, actual +0bp2003-01-29: expected -1bp, actual +0bp2003-03-18: expected -7bp, actual +0bp2003-05-06: expected -5bp, actual +0bp2003-06-25: expected -38bp, actual -25bp2003-08-12: expected +1bp, actual +0bp2003-09-15: expected +1bp, actual +0bp2003-09-16: expected -0bp, actual +0bp2003-10-28: expected +0bp, actual +0bp2003-12-09: expected +2bp, actual +0bp2004-01-28: expected +1bp, actual +0bp2004-03-16: expected +0bp, actual +0bp2004-05-04: expected +2bp, actual +0bp2004-06-30: expected +26bp, actual +25bp2004-08-10: expected +22bp, actual +25bp2004-09-21: expected +26bp, actual +25bp2004-11-10: expected +23bp, actual +25bp2004-12-14: expected +23bp, actual +25bp2005-02-02: expected +25bp, actual +25bp2005-03-22: expected +26bp, actual +25bp2005-05-03: expected +23bp, actual +25bp2005-06-30: expected +24bp, actual +25bp2005-08-09: expected +24bp, actual +25bp2005-09-20: expected +22bp, actual +25bp2005-11-01: expected +23bp, actual +25bp2005-12-13: expected +24bp, actual +25bp2006-01-31: expected +24bp, actual +25bp2006-03-28: expected +23bp, actual +25bp2006-05-10: expected +22bp, actual +25bp2006-06-29: expected +28bp, actual +25bp2006-08-08: expected +7bp, actual +0bp2006-09-20: expected +4bp, actual +0bp2006-10-25: expected -1bp, actual +0bp2006-12-12: expected -2bp, actual +0bp2007-01-31: expected +0bp, actual +0bp2007-03-21: expected -1bp, actual +0bp2007-05-09: expected -1bp, actual +0bp2007-06-28: expected -0bp, actual +0bp2007-08-07: expected -4bp, actual +0bp2007-10-31: expected -20bp, actual -25bp2007-12-11: expected -37bp, actual -25bp2008-01-30: expected -40bp, actual -50bp2008-03-18: expected -96bp, actual -75bp2008-04-30: expected -18bp, actual -25bp2008-06-25: expected +4bp, actual +0bp2008-08-05: expected +2bp, actual +0bp2008-09-16: expected -4bp, actual +0bp2009-03-18: expected +0bp, actual +0bp2009-04-29: expected +2bp, actual +0bp2009-06-24: expected +3bp, actual +0bp2009-08-12: expected -0bp, actual +0bp2009-09-23: expected +2bp, actual +0bp2009-11-04: expected +1bp, actual +0bp2009-12-16: expected +2bp, actual +0bp2010-01-27: expected +2bp, actual +0bp2010-03-16: expected +5bp, actual +0bp2010-04-28: expected +4bp, actual +0bp2010-06-23: expected -0bp, actual +0bp2010-08-10: expected -0bp, actual +0bp2010-09-21: expected +1bp, actual +0bp2010-11-03: expected -1bp, actual +0bp2010-12-14: expected -2bp, actual +0bp2011-01-26: expected -1bp, actual +0bp2011-03-15: expected -2bp, actual +0bp2011-04-27: expected -1bp, actual +0bp2011-06-22: expected +2bp, actual +0bp2011-08-09: expected -1bp, actual +0bp2011-09-21: expected -2bp, actual +0bp2011-11-02: expected +0bp, actual +0bp2011-12-13: expected +0bp, actual +0bp2012-01-25: expected +1bp, actual +0bp2012-03-13: expected +2bp, actual +0bp2012-04-25: expected +0bp, actual +0bp2012-06-20: expected -0bp, actual +0bp2012-09-13: expected -1bp, actual +0bp2012-10-24: expected +1bp, actual +0bp2012-12-12: expected -1bp, actual +0bp2013-01-30: expected -2bp, actual +0bp2013-03-20: expected +0bp, actual +0bp2013-06-19: expected -3bp, actual +0bp2013-07-31: expected +1bp, actual +0bp2013-09-18: expected +0bp, actual +0bp2013-10-30: expected +0bp, actual +0bp2013-12-18: expected -0bp, actual +0bp2014-01-29: expected +0bp, actual +0bp2014-03-19: expected +1bp, actual +0bp2014-04-30: expected +1bp, actual +0bp2014-06-18: expected +1bp, actual +0bp2014-07-30: expected +0bp, actual +0bp2014-09-17: expected +0bp, actual +0bp2014-10-29: expected -0bp, actual +0bp2014-12-17: expected +0bp, actual +0bp2015-03-18: expected +2bp, actual +0bp2015-04-29: expected +0bp, actual +0bp2015-06-17: expected +1bp, actual +0bp2015-07-29: expected +1bp, actual +0bp2015-09-17: expected +5bp, actual +0bp2015-10-28: expected +1bp, actual +0bp2015-12-16: expected +19bp, actual +25bp2016-01-27: expected +3bp, actual +0bp2016-03-16: expected +0bp, actual +0bp2016-04-27: expected +1bp, actual +0bp2016-06-15: expected -0bp, actual +0bp2016-07-27: expected +0bp, actual +0bp2016-09-21: expected +3bp, actual +0bp2016-11-02: expected +1bp, actual +0bp2016-12-14: expected +24bp, actual +25bp2017-02-01: expected +2bp, actual +0bp2017-03-15: expected +22bp, actual +25bp2017-05-03: expected +2bp, actual +0bp2017-06-14: expected +23bp, actual +25bp2017-07-26: expected +1bp, actual +0bp2017-09-20: expected +0bp, actual +0bp2017-11-01: expected -0bp, actual +0bp2017-12-13: expected +26bp, actual +25bp2018-01-31: expected +1bp, actual +0bp2018-03-21: expected +25bp, actual +25bp2018-05-02: expected +1bp, actual +0bp2018-06-13: expected +21bp, actual +25bp2018-08-01: expected +2bp, actual +0bp2018-09-26: expected +25bp, actual +25bp2018-11-08: expected +2bp, actual +0bp2018-12-19: expected +17bp, actual +25bp2019-01-30: expected +0bp, actual +0bp2019-03-20: expected -0bp, actual +0bp2019-05-01: expected -1bp, actual +0bp2019-06-19: expected -5bp, actual +0bp2019-07-31: expected -30bp, actual -25bp2019-09-18: expected -21bp, actual -25bp2019-10-30: expected -23bp, actual -25bp2019-12-11: expected +1bp, actual +0bp2020-01-29: expected +3bp, actual +0bp2020-04-29: expected +0bp, actual +0bp2020-06-10: expected +2bp, actual +0bp2020-07-29: expected +0bp, actual +0bp2020-09-16: expected +0bp, actual +0bp2020-11-05: expected +0bp, actual +0bp2020-12-16: expected +0bp, actual +0bp2021-01-27: expected +0bp, actual +0bp2021-03-17: expected +0bp, actual +0bp2021-04-28: expected +1bp, actual +0bp2021-06-16: expected +2bp, actual +0bp2021-07-28: expected +0bp, actual +0bp2021-09-22: expected +0bp, actual +0bp2021-11-03: expected +0bp, actual +0bp2021-12-15: expected +1bp, actual +0bp2022-01-26: expected +1bp, actual +0bp2022-03-16: expected +28bp, actual +25bp2022-05-04: expected +50bp, actual +50bp2022-06-15: expected +59bp, actual +75bp2022-07-27: expected +81bp, actual +75bp2022-09-21: expected +80bp, actual +75bp2022-11-02: expected +72bp, actual +75bp2022-12-14: expected +57bp, actual +50bp2023-02-01: expected +26bp, actual +25bp2023-03-22: expected +18bp, actual +25bp2023-05-03: expected +23bp, actual +25bp2023-06-14: expected +5bp, actual +0bp2023-07-26: expected +25bp, actual +25bp2023-09-20: expected +0bp, actual +0bp2023-11-01: expected -0bp, actual +0bp2023-12-13: expected +0bp, actual +0bp2024-01-31: expected -1bp, actual +0bp2024-03-20: expected +0bp, actual +0bp2024-05-01: expected -1bp, actual +0bp2024-06-12: expected -1bp, actual +0bp2024-07-31: expected -1bp, actual +0bp2024-09-18: expected -40bp, actual -50bp2024-11-07: expected -24bp, actual -25bp2024-12-18: expected -25bp, actual -25bp2025-01-29: expected -1bp, actual +0bp2025-03-19: expected -0bp, actual +0bp2025-05-07: expected -0bp, actual +0bp2025-06-18: expected -1bp, actual +0bp2025-07-30: expected -1bp, actual +0bp2025-09-17: expected -26bp, actual -25bp2025-10-29: expected -24bp, actual -25bp2025-12-10: expected -22bp, actual -25bp2026-01-28: expected -1bp, actual +0bp2026-03-18: expected -0bp, actual +0bp2026-04-29: expected +0bp, actual +0bp2026-06-17: expected -0bp, actual +0bp2026-07-29: expected +9bp, actual +0bp1994-20082015-20262008-2015: 51 meetings, all heldWhat the Fed actually did (basis points)What the market expected two days out (basis points)
Expected change against actual change, one point per scheduled meeting. Points on the dashed diagonal were fully anticipated; vertical distance from it is the surprise. The 1994-2008 cloud is visibly fatter than the post-2015 one.
Bar chart of the surprise in each FOMC decision, 1994-2026: blue where the Fed did more than the market expected, red where it did less. The bars shrink markedly after 2015.no rate changes at all-60-40-200+20+40199519992003200720112015201920231994-02-04: actual +25bp vs expected +10.8bp -> surprise +14.2bp1994-03-22: actual +25bp vs expected +35.3bp -> surprise -10.3bp1994-05-17: actual +50bp vs expected +46.0bp -> surprise +4.0bp1994-07-06: actual +0bp vs expected +30.1bp -> surprise -30.1bp1994-08-16: actual +50bp vs expected +36.3bp -> surprise +13.7bp1994-09-27: actual +0bp vs expected +26.1bp -> surprise -26.1bp1994-11-15: actual +75bp vs expected +60.5bp -> surprise +14.4bp1994-12-20: actual +0bp vs expected +37.1bp -> surprise -37.1bp1995-03-28: actual +0bp vs expected +7.3bp -> surprise -7.3bp1995-05-23: actual +0bp vs expected -3.5bp -> surprise +3.5bp1995-07-06: actual -25bp vs expected -14.9bp -> surprise -10.1bp1995-08-22: actual +0bp vs expected -4.5bp -> surprise +4.5bp1995-09-26: actual +0bp vs expected -5.4bp -> surprise +5.4bp1995-11-15: actual +0bp vs expected -5.0bp -> surprise +5.0bp1995-12-19: actual -25bp vs expected -1.7bp -> surprise -23.3bp1996-01-31: actual -25bp vs expected -13.3bp -> surprise -11.7bp1996-03-26: actual +0bp vs expected -1.6bp -> surprise +1.6bp1996-05-21: actual +0bp vs expected +3.7bp -> surprise -3.7bp1996-07-03: actual +0bp vs expected +5.1bp -> surprise -5.1bp1996-08-20: actual +0bp vs expected +2.4bp -> surprise -2.4bp1996-09-24: actual +0bp vs expected +15.6bp -> surprise -15.6bp1996-11-13: actual +0bp vs expected +5.4bp -> surprise -5.4bp1996-12-17: actual +0bp vs expected +12.1bp -> surprise -12.1bp1997-02-05: actual +0bp vs expected +2.9bp -> surprise -2.9bp1997-03-25: actual +25bp vs expected +23.5bp -> surprise +1.5bp1997-05-20: actual +0bp vs expected +5.4bp -> surprise -5.4bp1997-07-02: actual +0bp vs expected +4.0bp -> surprise -4.0bp1997-08-19: actual +0bp vs expected -0.6bp -> surprise +0.6bp1997-09-30: actual +0bp vs expected -1.3bp -> surprise +1.3bp1997-11-12: actual +0bp vs expected +2.8bp -> surprise -2.8bp1997-12-16: actual +0bp vs expected +16.4bp -> surprise -16.4bp1998-02-04: actual +0bp vs expected -5.6bp -> surprise +5.6bp1998-03-31: actual +0bp vs expected +2.8bp -> surprise -2.8bp1998-05-19: actual +0bp vs expected +14.5bp -> surprise -14.5bp1998-08-18: actual +0bp vs expected -2.5bp -> surprise +2.5bp1998-09-29: actual -25bp vs expected -37.1bp -> surprise +12.1bp1998-11-17: actual -25bp vs expected -6.3bp -> surprise -18.7bp1998-12-22: actual +0bp vs expected +16.7bp -> surprise -16.7bp1999-02-03: actual +0bp vs expected +7.7bp -> surprise -7.7bp1999-03-30: actual +0bp vs expected -1.3bp -> surprise +1.3bp1999-05-18: actual +0bp vs expected +4.4bp -> surprise -4.4bp1999-06-30: actual +25bp vs expected +31.0bp -> surprise -6.0bp1999-08-24: actual +25bp vs expected +22.6bp -> surprise +2.4bp1999-10-05: actual +0bp vs expected +8.7bp -> surprise -8.7bp1999-11-16: actual +25bp vs expected +20.3bp -> surprise +4.7bp1999-12-21: actual +0bp vs expected -15.5bp -> surprise +15.5bp2000-03-21: actual +25bp vs expected +27.7bp -> surprise -2.7bp2000-05-16: actual +50bp vs expected +42.5bp -> surprise +7.5bp2000-06-28: actual +0bp vs expected +4.7bp -> surprise -4.7bp2000-08-22: actual +0bp vs expected -1.1bp -> surprise +1.1bp2000-10-03: actual +0bp vs expected -1.1bp -> surprise +1.1bp2000-11-15: actual +0bp vs expected +1.3bp -> surprise -1.3bp2000-12-19: actual +0bp vs expected -14.8bp -> surprise +14.8bp2001-01-31: actual -50bp vs expected -41.4bp -> surprise -8.6bp2001-03-20: actual -50bp vs expected -63.1bp -> surprise +13.1bp2001-05-15: actual -50bp vs expected -38.5bp -> surprise -11.5bp2001-06-27: actual -25bp vs expected -38.0bp -> surprise +13.0bp2001-08-21: actual -25bp vs expected -30.7bp -> surprise +5.7bp2001-10-02: actual -50bp vs expected -36.9bp -> surprise -13.1bp2001-11-06: actual -50bp vs expected -25.7bp -> surprise -24.3bp2001-12-11: actual -25bp vs expected -26.8bp -> surprise +1.8bp2002-01-30: actual +0bp vs expected +0.4bp -> surprise -0.4bp2002-03-19: actual +0bp vs expected +9.8bp -> surprise -9.8bp2002-05-07: actual +0bp vs expected +1.4bp -> surprise -1.4bp2002-06-26: actual +0bp vs expected +1.1bp -> surprise -1.1bp2002-08-13: actual +0bp vs expected -4.9bp -> surprise +4.9bp2002-09-24: actual +0bp vs expected -4.9bp -> surprise +4.9bp2002-11-06: actual -50bp vs expected -27.6bp -> surprise -22.4bp2002-12-10: actual +0bp vs expected -2.7bp -> surprise +2.7bp2003-01-29: actual +0bp vs expected -0.8bp -> surprise +0.8bp2003-03-18: actual +0bp vs expected -6.8bp -> surprise +6.8bp2003-05-06: actual +0bp vs expected -5.3bp -> surprise +5.3bp2003-06-25: actual -25bp vs expected -38.4bp -> surprise +13.4bp2003-08-12: actual +0bp vs expected +0.9bp -> surprise -0.9bp2003-09-15: actual +0bp vs expected +0.8bp -> surprise -0.8bp2003-09-16: actual +0bp vs expected -0.1bp -> surprise +0.1bp2003-10-28: actual +0bp vs expected +0.1bp -> surprise -0.1bp2003-12-09: actual +0bp vs expected +1.6bp -> surprise -1.6bp2004-01-28: actual +0bp vs expected +1.1bp -> surprise -1.1bp2004-03-16: actual +0bp vs expected +0.2bp -> surprise -0.2bp2004-05-04: actual +0bp vs expected +2.0bp -> surprise -2.0bp2004-06-30: actual +25bp vs expected +26.3bp -> surprise -1.3bp2004-08-10: actual +25bp vs expected +22.1bp -> surprise +2.9bp2004-09-21: actual +25bp vs expected +25.8bp -> surprise -0.8bp2004-11-10: actual +25bp vs expected +23.4bp -> surprise +1.6bp2004-12-14: actual +25bp vs expected +23.5bp -> surprise +1.5bp2005-02-02: actual +25bp vs expected +24.8bp -> surprise +0.2bp2005-03-22: actual +25bp vs expected +26.1bp -> surprise -1.1bp2005-05-03: actual +25bp vs expected +23.3bp -> surprise +1.7bp2005-06-30: actual +25bp vs expected +23.8bp -> surprise +1.2bp2005-08-09: actual +25bp vs expected +23.5bp -> surprise +1.5bp2005-09-20: actual +25bp vs expected +22.4bp -> surprise +2.6bp2005-11-01: actual +25bp vs expected +23.4bp -> surprise +1.6bp2005-12-13: actual +25bp vs expected +24.2bp -> surprise +0.8bp2006-01-31: actual +25bp vs expected +23.9bp -> surprise +1.1bp2006-03-28: actual +25bp vs expected +23.2bp -> surprise +1.8bp2006-05-10: actual +25bp vs expected +21.5bp -> surprise +3.5bp2006-06-29: actual +25bp vs expected +27.7bp -> surprise -2.7bp2006-08-08: actual +0bp vs expected +7.5bp -> surprise -7.5bp2006-09-20: actual +0bp vs expected +3.6bp -> surprise -3.6bp2006-10-25: actual +0bp vs expected -0.6bp -> surprise +0.6bp2006-12-12: actual +0bp vs expected -1.6bp -> surprise +1.6bp2007-01-31: actual +0bp vs expected +0.3bp -> surprise -0.3bp2007-03-21: actual +0bp vs expected -0.8bp -> surprise +0.8bp2007-05-09: actual +0bp vs expected -0.6bp -> surprise +0.6bp2007-06-28: actual +0bp vs expected -0.2bp -> surprise +0.2bp2007-08-07: actual +0bp vs expected -4.3bp -> surprise +4.3bp2007-10-31: actual -25bp vs expected -19.7bp -> surprise -5.3bp2007-12-11: actual -25bp vs expected -36.5bp -> surprise +11.5bp2008-01-30: actual -50bp vs expected -40.2bp -> surprise -9.8bp2008-03-18: actual -75bp vs expected -95.9bp -> surprise +20.9bp2008-04-30: actual -25bp vs expected -18.1bp -> surprise -6.9bp2008-06-25: actual +0bp vs expected +3.7bp -> surprise -3.7bp2008-08-05: actual +0bp vs expected +1.5bp -> surprise -1.5bp2008-09-16: actual +0bp vs expected -4.0bp -> surprise +4.0bp2009-03-18: actual +0bp vs expected +0.1bp -> surprise -0.1bp2009-04-29: actual +0bp vs expected +1.8bp -> surprise -1.8bp2009-06-24: actual +0bp vs expected +3.1bp -> surprise -3.1bp2009-08-12: actual +0bp vs expected -0.0bp -> surprise +0.0bp2009-09-23: actual +0bp vs expected +1.6bp -> surprise -1.6bp2009-11-04: actual +0bp vs expected +0.6bp -> surprise -0.6bp2009-12-16: actual +0bp vs expected +2.1bp -> surprise -2.1bp2010-01-27: actual +0bp vs expected +2.1bp -> surprise -2.1bp2010-03-16: actual +0bp vs expected +5.4bp -> surprise -5.4bp2010-04-28: actual +0bp vs expected +3.7bp -> surprise -3.7bp2010-06-23: actual +0bp vs expected -0.5bp -> surprise +0.5bp2010-08-10: actual +0bp vs expected -0.2bp -> surprise +0.2bp2010-09-21: actual +0bp vs expected +0.8bp -> surprise -0.8bp2010-11-03: actual +0bp vs expected -1.0bp -> surprise +1.0bp2010-12-14: actual +0bp vs expected -2.1bp -> surprise +2.1bp2011-01-26: actual +0bp vs expected -0.8bp -> surprise +0.8bp2011-03-15: actual +0bp vs expected -2.3bp -> surprise +2.3bp2011-04-27: actual +0bp vs expected -1.3bp -> surprise +1.3bp2011-06-22: actual +0bp vs expected +2.0bp -> surprise -2.0bp2011-08-09: actual +0bp vs expected -0.9bp -> surprise +0.9bp2011-09-21: actual +0bp vs expected -1.8bp -> surprise +1.8bp2011-11-02: actual +0bp vs expected +0.3bp -> surprise -0.3bp2011-12-13: actual +0bp vs expected +0.5bp -> surprise -0.5bp2012-01-25: actual +0bp vs expected +1.0bp -> surprise -1.0bp2012-03-13: actual +0bp vs expected +2.1bp -> surprise -2.1bp2012-04-25: actual +0bp vs expected +0.2bp -> surprise -0.2bp2012-06-20: actual +0bp vs expected -0.2bp -> surprise +0.2bp2012-09-13: actual +0bp vs expected -0.8bp -> surprise +0.8bp2012-10-24: actual +0bp vs expected +0.8bp -> surprise -0.8bp2012-12-12: actual +0bp vs expected -0.5bp -> surprise +0.5bp2013-01-30: actual +0bp vs expected -2.0bp -> surprise +2.0bp2013-03-20: actual +0bp vs expected +0.3bp -> surprise -0.3bp2013-06-19: actual +0bp vs expected -2.5bp -> surprise +2.5bp2013-07-31: actual +0bp vs expected +0.7bp -> surprise -0.7bp2013-09-18: actual +0bp vs expected +0.3bp -> surprise -0.3bp2013-10-30: actual +0bp vs expected +0.1bp -> surprise -0.1bp2013-12-18: actual +0bp vs expected -0.1bp -> surprise +0.1bp2014-01-29: actual +0bp vs expected +0.1bp -> surprise -0.1bp2014-03-19: actual +0bp vs expected +1.0bp -> surprise -1.0bp2014-04-30: actual +0bp vs expected +0.7bp -> surprise -0.7bp2014-06-18: actual +0bp vs expected +0.9bp -> surprise -0.9bp2014-07-30: actual +0bp vs expected +0.2bp -> surprise -0.2bp2014-09-17: actual +0bp vs expected +0.3bp -> surprise -0.3bp2014-10-29: actual +0bp vs expected -0.3bp -> surprise +0.3bp2014-12-17: actual +0bp vs expected +0.3bp -> surprise -0.3bp2015-03-18: actual +0bp vs expected +2.2bp -> surprise -2.2bp2015-04-29: actual +0bp vs expected +0.3bp -> surprise -0.3bp2015-06-17: actual +0bp vs expected +1.4bp -> surprise -1.4bp2015-07-29: actual +0bp vs expected +0.5bp -> surprise -0.5bp2015-09-17: actual +0bp vs expected +5.3bp -> surprise -5.3bp2015-10-28: actual +0bp vs expected +1.4bp -> surprise -1.4bp2015-12-16: actual +25bp vs expected +19.1bp -> surprise +5.9bp2016-01-27: actual +0bp vs expected +2.9bp -> surprise -2.9bp2016-03-16: actual +0bp vs expected +0.3bp -> surprise -0.3bp2016-04-27: actual +0bp vs expected +0.8bp -> surprise -0.8bp2016-06-15: actual +0bp vs expected -0.3bp -> surprise +0.3bp2016-07-27: actual +0bp vs expected +0.3bp -> surprise -0.3bp2016-09-21: actual +0bp vs expected +2.8bp -> surprise -2.8bp2016-11-02: actual +0bp vs expected +0.8bp -> surprise -0.8bp2016-12-14: actual +25bp vs expected +23.8bp -> surprise +1.2bp2017-02-01: actual +0bp vs expected +2.4bp -> surprise -2.4bp2017-03-15: actual +25bp vs expected +21.7bp -> surprise +3.3bp2017-05-03: actual +0bp vs expected +1.9bp -> surprise -1.9bp2017-06-14: actual +25bp vs expected +22.8bp -> surprise +2.2bp2017-07-26: actual +0bp vs expected +0.6bp -> surprise -0.6bp2017-09-20: actual +0bp vs expected +0.0bp -> surprise +0.0bp2017-11-01: actual +0bp vs expected -0.5bp -> surprise +0.5bp2017-12-13: actual +25bp vs expected +25.6bp -> surprise -0.6bp2018-01-31: actual +0bp vs expected +1.2bp -> surprise -1.2bp2018-03-21: actual +25bp vs expected +25.2bp -> surprise -0.2bp2018-05-02: actual +0bp vs expected +1.2bp -> surprise -1.2bp2018-06-13: actual +25bp vs expected +21.4bp -> surprise +3.6bp2018-08-01: actual +0bp vs expected +1.8bp -> surprise -1.8bp2018-09-26: actual +25bp vs expected +25.1bp -> surprise -0.1bp2018-11-08: actual +0bp vs expected +2.3bp -> surprise -2.3bp2018-12-19: actual +25bp vs expected +17.1bp -> surprise +7.9bp2019-01-30: actual +0bp vs expected +0.0bp -> surprise +0.0bp2019-03-20: actual +0bp vs expected -0.2bp -> surprise +0.2bp2019-05-01: actual +0bp vs expected -0.8bp -> surprise +0.8bp2019-06-19: actual +0bp vs expected -4.7bp -> surprise +4.7bp2019-07-31: actual -25bp vs expected -30.5bp -> surprise +5.5bp2019-09-18: actual -25bp vs expected -21.4bp -> surprise -3.6bp2019-10-30: actual -25bp vs expected -23.0bp -> surprise -2.0bp2019-12-11: actual +0bp vs expected +0.6bp -> surprise -0.6bp2020-01-29: actual +0bp vs expected +2.7bp -> surprise -2.7bp2020-04-29: actual +0bp vs expected +0.0bp -> surprise +0.0bp2020-06-10: actual +0bp vs expected +2.0bp -> surprise -2.0bp2020-07-29: actual +0bp vs expected +0.0bp -> surprise +0.0bp2020-09-16: actual +0bp vs expected +0.0bp -> surprise +0.0bp2020-11-05: actual +0bp vs expected +0.0bp -> surprise +0.0bp2020-12-16: actual +0bp vs expected +0.0bp -> surprise +0.0bp2021-01-27: actual +0bp vs expected +0.0bp -> surprise +0.0bp2021-03-17: actual +0bp vs expected +0.0bp -> surprise +0.0bp2021-04-28: actual +0bp vs expected +0.5bp -> surprise -0.5bp2021-06-16: actual +0bp vs expected +1.9bp -> surprise -1.9bp2021-07-28: actual +0bp vs expected +0.0bp -> surprise +0.0bp2021-09-22: actual +0bp vs expected +0.0bp -> surprise +0.0bp2021-11-03: actual +0bp vs expected +0.0bp -> surprise +0.0bp2021-12-15: actual +0bp vs expected +0.6bp -> surprise -0.6bp2022-01-26: actual +0bp vs expected +0.9bp -> surprise -0.9bp2022-03-16: actual +25bp vs expected +28.2bp -> surprise -3.2bp2022-05-04: actual +50bp vs expected +50.5bp -> surprise -0.5bp2022-06-15: actual +75bp vs expected +58.6bp -> surprise +16.4bp2022-07-27: actual +75bp vs expected +81.1bp -> surprise -6.1bp2022-09-21: actual +75bp vs expected +79.8bp -> surprise -4.8bp2022-11-02: actual +75bp vs expected +71.6bp -> surprise +3.4bp2022-12-14: actual +50bp vs expected +56.6bp -> surprise -6.6bp2023-02-01: actual +25bp vs expected +25.6bp -> surprise -0.6bp2023-03-22: actual +25bp vs expected +18.4bp -> surprise +6.5bp2023-05-03: actual +25bp vs expected +23.3bp -> surprise +1.7bp2023-06-14: actual +0bp vs expected +5.2bp -> surprise -5.2bp2023-07-26: actual +25bp vs expected +25.1bp -> surprise -0.1bp2023-09-20: actual +0bp vs expected +0.5bp -> surprise -0.5bp2023-11-01: actual +0bp vs expected -0.3bp -> surprise +0.3bp2023-12-13: actual +0bp vs expected +0.0bp -> surprise -0.0bp2024-01-31: actual +0bp vs expected -0.5bp -> surprise +0.5bp2024-03-20: actual +0bp vs expected +0.0bp -> surprise +0.0bp2024-05-01: actual +0bp vs expected -1.0bp -> surprise +1.0bp2024-06-12: actual +0bp vs expected -1.2bp -> surprise +1.2bp2024-07-31: actual +0bp vs expected -1.3bp -> surprise +1.3bp2024-09-18: actual -50bp vs expected -40.5bp -> surprise -9.5bp2024-11-07: actual -25bp vs expected -24.1bp -> surprise -0.9bp2024-12-18: actual -25bp vs expected -24.6bp -> surprise -0.4bp2025-01-29: actual +0bp vs expected -0.5bp -> surprise +0.5bp2025-03-19: actual +0bp vs expected -0.5bp -> surprise +0.5bp2025-05-07: actual +0bp vs expected -0.3bp -> surprise +0.3bp2025-06-18: actual +0bp vs expected -0.7bp -> surprise +0.7bp2025-07-30: actual +0bp vs expected -0.8bp -> surprise +0.8bp2025-09-17: actual -25bp vs expected -26.3bp -> surprise +1.3bp2025-10-29: actual -25bp vs expected -24.3bp -> surprise -0.7bp2025-12-10: actual -25bp vs expected -22.1bp -> surprise -2.9bp2026-01-28: actual +0bp vs expected -1.1bp -> surprise +1.1bp2026-03-18: actual +0bp vs expected -0.5bp -> surprise +0.5bp2026-04-29: actual +0bp vs expected +0.0bp -> surprise +0.0bp2026-06-17: actual +0bp vs expected -0.1bp -> surprise +0.1bp2026-07-29: actual +0bp vs expected +9.1bp -> surprise -9.1bpJun 2022Nov 2002Dec 1994Mar 2008Actual minus expected (basis points)
The surprise at each meeting — what the Fed did minus what the market expected two days earlier. Blue bars are meetings where the Fed did more than expected, red where it did less. The shaded stretch is the zero-lower-bound period, when the Committee made no changes at all.
Bar chart of the average absolute difference between what the Fed did and what the market expected two days earlier, by year.05101520199519992003200720112015201920231994: mean absolute surprise 18.7bp1995: mean absolute surprise 8.4bp1996: mean absolute surprise 7.2bp1997: mean absolute surprise 4.4bp1998: mean absolute surprise 10.4bp1999: mean absolute surprise 6.3bp2000: mean absolute surprise 4.7bp2001: mean absolute surprise 11.4bp2002: mean absolute surprise 6.0bp2003: mean absolute surprise 3.3bp2004: mean absolute surprise 1.4bp2005: mean absolute surprise 1.3bp2006: mean absolute surprise 2.8bp2007: mean absolute surprise 3.3bp2008: mean absolute surprise 7.8bp2009: mean absolute surprise 1.3bp2010: mean absolute surprise 2.0bp2011: mean absolute surprise 1.2bp2012: mean absolute surprise 0.8bp2013: mean absolute surprise 0.9bp2014: mean absolute surprise 0.5bp2015: mean absolute surprise 2.4bp2016: mean absolute surprise 1.2bp2017: mean absolute surprise 1.4bp2018: mean absolute surprise 2.3bp2019: mean absolute surprise 2.2bp2020: mean absolute surprise 0.7bp2021: mean absolute surprise 0.4bp2022: mean absolute surprise 5.2bp2023: mean absolute surprise 1.9bp2024: mean absolute surprise 1.9bp2025: mean absolute surprise 1.0bp2026: mean absolute surprise 2.2bpMean absolute surprise (basis points)
Mean absolute surprise by year, over the meetings where futures identify the target. 1994 and 1995 stand alone at the left; nothing since 2015 comes close.

The mean absolute surprise falls from 6.4 basis points in 1994-2008 to 1.9 since 2015 — a reduction of roughly three quarters. The share of meetings where the market's single most likely outcome was the one that happened rises from 82% to 99%.

What changed in between is the Federal Reserve's communication, not the futures market's machinery. A statement after every meeting dates from 1999; language about the likely path of the funds rate from 2003; the press conference from 2011; the projections and the dot plot from 2012; and through the whole later period a settled practice of signaling a move in speeches before making it. This dataset is therefore at least as much a measure of Fed transparency as of market skill.

Direction versus size — the 25-or-50 question

Splitting the market's forecast into its two components is where the interesting failure lives. Across all 77 meetings that changed rates, the market had the direction right 91% of the time on average but the exact size right only 76% of the time. Essentially all of the ex ante error is about magnitude.

Grouped bars comparing the average probability the market put on the right direction with the average probability it put on the exact size, for meetings that changed rates.0%25%50%75%100%1994-2008: right direction 89.9%1994-2008: right direction and size 69.5%90%69%1994-2008right directionright direction and size2015-2026: right direction 94.1%2015-2026: right direction and size 86.0%94%86%2015-2026Average probability
Average probability the market placed on the right direction, and on the right direction and size together, for meetings that changed rates.

The gap narrows but does not close: it is 20 percentage points in 1994-2008 and 8 points since 2015. The practical implication for any analysis built on this dataset is that a binary move-or-hold framing throws away the part of the problem that is actually hard. Three columns in the data keep the distinction: t2_p_actual (exact outcome), t2_p_direction (direction only) and t2_p_atleast_actual (a move at least this large).

Where the market was most wrong

MeetingExpectedActualSurpriseProbability on the actual outcome
1994-12-20+37bpheld-37bp0%
1994-07-06+30bpheld-30bp0%
1994-09-27+26bpheld-26bp0%
2001-11-06-26bp-50bp-24bp3%
1995-12-19-2bp-25bp-23bp7%
2002-11-06-28bp-50bp-22bp10%
2008-03-18-96bp-75bp+21bp16%
1998-11-17-6bp-25bp-19bp25%
1998-12-22+17bpheld-17bp33%
1997-12-16+16bpheld-16bp34%
2022-06-15+59bp+75bp+16bp35%
1996-09-24+16bpheld-16bp38%
Line chart of the market-implied probability of a 75 basis point hike at the June 2022 meeting, measured ten, five, two and one business days before the decision.0%25%50%75%100%T-10T-5T-2T-1T-10: 3.9% on 75bp4%T-5: 8.2% on 75bp8%T-2: 34.6% on 75bp35%T-1: 96.5% on 75bp97%Wall Street Journal story,Monday 13 JuneProbability of a 75 basis point hikeBusiness days before the decision
The only meeting since 2015 where the market's most likely outcome was not the one that happened. The Monday reading is the close of the day the Wall Street Journal reported that a 75 basis point hike was on the table.

June 2022 is the clean modern case and it is instructive precisely because the market did adjust — just not by the two-day mark. Ten business days out the odds on 75 basis points were four percent; on the Monday they were 35%; by the Tuesday close they were 97%. A two-days-out measurement catches this episode mid-repricing, which is a reason to look at the other vintages in the data rather than the T-2 column alone.

VintageMean probability on the actual outcomeMean absolute surprise (bp)
T-10 business days0.8254.7
T-5 business days0.8464.0
T-2 business days0.8493.8
T-1 business days0.8523.8

The last two days add little on average. Most of what the market is going to learn, it has already learned ten business days out.

What these numbers are — and what they are not

This matters more than it sounds, and it constrains what the calibration exercise above can mean.

The implied probabilities are not a probability distribution. In every one of the 91 meetings covered by CME's own published FedWatch numbers, the weight sits on at most two adjacent quarter-point outcomes. A 65/35 split does not describe a market weighing two scenarios; it says the expected rate sits 35 percent of the way from one notch to the next. The probability is a deterministic transform of a single number.

Three consequences worth carrying into any write-up:

Sources and construction

Two sources, joined in January 2015.

The join was tested rather than assumed. Over the 67 meetings where both methods can run (2015-2023) the rebuilt expected change matches CME's to a mean of 1.0 basis point, a median of 0.7, and a correlation of 0.998, and the two never disagree about the most likely outcome. The contract prices themselves — 432 contracts, 1989 to 2023, from the open-source pyfedwatch project — were checked independently against Yahoo Finance's continuous fed funds future over 5,748 overlapping days: median difference exactly zero, 98.7 percent of days within one basis point. They are a third party's copy of CME data and should be re-sourced from CME or a Bloomberg export before anything here is published.

One construction choice does real work and is worth stating. The calculation needs an answer to "what would the effective rate average this month if the Fed does nothing," and that anchor is not simply the current target: the effective rate wanders around it. Because a futures contract settles on the month's average, the anchor has to be an average too — and through the 1990s the effective rate spiked at month- and quarter-ends, which put the monthly mean about three basis points above the median of the daily prints. An earlier build of this dataset anchored on a rolling median and therefore read every pre-2000 meeting as about three basis points more hawkish than it was, with meeting-level errors several times that when a meeting fell near a month end. The anchor here is a 60-day mean of the effective-rate-to-target spread, winsorized at the 2nd and 98th percentiles so that one turn-of-year print cannot own it. It was chosen over four alternatives on a joint test: it matches CME over 2015-2023 as well as the median did (mean 1.0 basis point) while cutting the average 1990s bias from -2.2 basis points to -0.1.

A second choice matters for a handful of meetings. When a decision falls in the last few days of a month, the meeting-month contract has almost no post-decision days left and amplifies any pricing error roughly tenfold, so the following month's contract is used instead. That substitution is only legitimate when no scheduled meeting falls in the following month — and an early version of this build treated a conference call as though it were a scheduled meeting, which blocked the substitution and sent the March 1995 meeting down the ten-times-amplified path. It read as an 88 percent probability of a hike. On the correct contract it reads as 29 percent, which is also what the history says: by then the market thought the tightening cycle was over, and it was right.

Exclusions and caveats

Hover any mark in a chart for the underlying numbers. The meeting-by-meeting record this is built on — sortable and filterable — is on the previous page. Data frozen 14 September 2026; the series runs through the meeting of 29 July 2026 and is not updated as new meetings happen.