Read the Fed rate odds

For the Fed meeting on Wednesday, 28 October 2026, prediction markets put a cut at 0.8%, no change at 90.6% and a rise at 8.6%. One request to the policy path returns the cut, no change and rise odds for each coming meeting, plus the expected move in basis points.

Read the Fed policy path with the API

Use GET /v1/predictions/policy-paths/federal-reserve to read the meeting probabilities together. The response has an as_of timestamp and a meetings[] list. Each meeting includes its event identifier, resolution date, probabilities and expected move, so the same request gives you the individual meetings and their cumulative path.

The printed output starts with the timestamp for the odds. Each following line belongs to a meeting, with the date first. Keep that meeting date separate from as_of: one identifies the meeting whose odds you are reading, and the other dates the set of values returned.

  1. Get your API key Create a free key and keep it in an environment variable named NARWHAL_API_KEY. Narwhal uses one account and one API key across its data APIs, and REST and MCP share that key. The script reads this variable when it builds the request header, so put your key there before requesting the path.
  2. Request the policy path Use the Python script to send your key in the Authorization: Bearer YOUR_KEY header. It prints the response timestamp, then each meeting date with its cut, hold and hike probabilities, expected move and cumulative move.
    Python, the Fed policy path
    import os
    import requests
    
    path = requests.get("https://api.narwhalapi.com/v1/predictions/policy-paths/federal-reserve",
                        headers={"Authorization": f"Bearer {os.environ['NARWHAL_API_KEY']}"}, timeout=10).json()
    print("as of", path["as_of"])
    for m in path["meetings"]:
        print(m["resolves_at"][:10], f"cut {float(m['p_cut']):.1%}  hold {float(m['p_hold']):.1%}  hike {float(m['p_hike']):.1%}",
              f" expected {m['expected_change_bps']} bp, cumulative {m['cumulative_change_bps']} bp")
  3. Read each meeting Read p_cut as the chance of a cut, p_hold as the chance of no change and p_hike as the chance of a rise. The script displays these probabilities as percentages with one decimal place. The date comes from resolves_at.
  4. Keep the timestamp with the odds Carry as_of into your model or dashboard alongside the meeting values. The Free plan has end-of-day values. Keep event_id if you also want the meeting’s specific outcome sizes through /v1/predictions/scalar/{event_id}.

Read the odds without code or in a sheet

Open Fed rate odds to read the odds without an API request. Use the page when you want to look at the Fed probabilities directly. The policy path endpoint is the option for putting those values into a model or dashboard.

In a sheet, paste the cut, hold and hike probabilities and use =SUM to add them. Their unrounded values sum to 1. If you paste percentages rounded for display, the total can differ slightly from that total. Keep the date with the pasted figures so the sheet identifies which set of odds it contains.

Which option to use when

SituationBest optionWhy
Reading the odds directlyFed rate odds pageRead the Fed probabilities without code
A model or dashboardPolicy path endpointRead meeting probabilities and expected moves together
A specific outcome size, such as 25 or 50 bpThe meeting’s scalar eventRead the specific outcome through its event_id

A policy path groups the cut, hold and hike probabilities for each meeting. For a particular outcome size, use that meeting’s event_id with /v1/predictions/scalar/{event_id}. The grouped probabilities and the specific outcome size answer different questions about the same meeting.

What does the cumulative change mean?

The cumulative figure is the running total of expected meeting moves, added in meeting order. Each expected_change_bps is a probability-weighted average of the outcome sizes in basis points. The cumulative_change_bps field carries that total through the meeting you are reading.

For the figures from 24 October 2026, the expected moves are +1.7 bp for 28 October 2026, +19.7 bp for 9 December 2026 and +7.4 bp for 27 January 2027. The cumulative values are +1.7 bp, +21.4 bp and +28.8 bp respectively. Read the January cumulative value as the expected net move across those meetings.

On 24 October 2026, the 27 January 2027 meeting had cut odds of 1.8%, hold odds of 67.4% and hike odds of 30.8%. Hold had the largest probability for that meeting, while its expected move was positive. The expected move includes the sizes and probabilities of the outcomes; the hold probability describes only the chance of no change at that meeting.

Do the three probabilities add up to 1?

Yes, the unrounded probabilities sum to 1, while displayed percentages can have a rounding difference. On 24 October 2026, the 28 October 2026 meeting had cut odds of 0.7%, hold odds of 91.9% and hike odds of 7.5%. Those rounded values add to 100.1% because each has one decimal place.

Which other central banks can I read?

The policy path also supports the ECB, Bank of England, Bank of Japan, Bank of Canada, Reserve Bank of Australia and Bank Indonesia. Replace federal-reserve in the policy path with the authority name for the bank you want.

Use european-central-bank for the ECB, bank-of-england for the Bank of England and bank-of-japan for the Bank of Japan. The other authority names are bank-of-canada, reserve-bank-of-australia and bank-indonesia.

Worked example: read the 9 December 2026 meeting

The figures are from 24 October 2026. The response timestamp is 2026-10-24T00:00:00Z. For the 9 December 2026 meeting, first read the probabilities, then the expected move for that meeting. The 77.3% hike probability is the chance of a rise. The +19.7 bp expected move is the probability-weighted average of the outcome sizes. To look at a particular rise of 25 or 50 bp, take the meeting’s event_id to its scalar event.

FieldValue
Cut probability1.2%
Hold probability21.5%
Hike probability77.3%
Rounded probability total100.0%
Expected change+19.7 bp
Cumulative change+21.4 bp

Add the displayed probabilities: 1.2% + 21.5% + 77.3% = 100.0%. To read the cumulative move, add the 28 October 2026 expected move of +1.7 bp to the 9 December 2026 expected move of +19.7 bp. The result is +21.4 bp through the December meeting.

Published .