How to calculate Bank of Canada rate probabilities from CORRA futures
Quick answer
To calculate a Bank of Canada rate probability, use the Montréal Exchange One-Month CORRA future (COA) for a month that sits entirely after the meeting, read its implied rate as 100 minus the price, and compare it with what CORRA would average if the Bank held. The probability of a 25 basis point move is the gap divided by 0.25. Two details decide the answer: a rate change takes effect the day after the announcement, and CORRA has recently traded a few basis points above the Bank's target, so subtract that spread before you divide.
The market-implied probability of a Bank of Canada rate move comes from the Montréal Exchange's One-Month CORRA future, ticker COA. The contract settles on the compounded average of CORRA, the overnight repo rate the Bank targets, over one calendar month, so its price tells you what the market expects that average to be. Pick a month that sits entirely after the meeting, and the gap between its implied rate and today's rate is the priced share of a 25 basis point move.
That is the fed funds probability calculation moved to Canada, and the exchange's own Canadian interest rate expectations page uses COA prices the same way, describing itself as comparable to the WIRP screen we rebuilt for free. What the method summaries skip is the date geometry, which is unusually awkward for the 28 October 2026 decision, and a spread between CORRA and the target that has changed sign since 2022.
The contract and what it settles on
According to the Montréal Exchange's contract specifications, COA settles at 100 minus R, where R is CORRA compounded daily over the contract month on an actual/365 basis. Each day's rate is weighted by the calendar days it applies to, so Friday's CORRA covers the weekend. The calculation window runs from the first business day of the month up to, but not including, the first business day of the next month. A basis point is worth C$25 per contract, the nearest month ticks in 0.0025 and later months in 0.005, and the exchange currently lists the four nearest months.
There is also a Three-Month CORRA future (CRA), but it runs between IMM dates, the third Wednesday of the quarter months, so a single contract spans two or three Bank of Canada meetings. For isolating one decision, use COA.
Compounding barely matters at today's rate level. We computed September 2026 from the Bank's published daily CORRA: compounded, it comes to 2.2967%, against a simple day-weighted average of 2.2947%. Two tenths of a basis point is far below anything that moves a probability, so a spreadsheet that averages instead of compounding will not mislead you.
The new rate starts the day after the announcement
The Bank of Canada states that, as of 2021, a change to the policy rate takes effect the day after it is announced. Its own daily target series agrees. The last cut was announced on Wednesday 29 October 2025, and the series shows 2.50% that day and 2.25% from Thursday 30 October. The September 2025 cut, announced on the 17th, shows the same one-day step.
So the split point inside a contract month is the day after the decision, not the decision date. Use the decision date and you count one day too many at the new rate, which, as the next section shows, is a big error when only a handful of days are on the far side.
Why the October contract is the wrong one to read
The 2026 schedule published by the Bank puts the next decision on Wednesday 28 October at 09:45 ET, followed by Wednesday 9 December. A new rate from 28 October would apply from Thursday 29 October.
Now look at the October COA window. The first business day of October is Thursday 1 October and the first business day of November is Monday 2 November, so the window is 32 days long. Only 4 of them, 29 October to 1 November, sit after the decision. The other 28 are already known to within a basis point or two.
Back out a post-meeting rate from that contract and you multiply every error by 32/4, which is 8. One tick on the nearest month is 0.0025 percentage points, so a single tick moves the implied post-meeting rate by 2 basis points, which is 8 points of probability on a 25 basis point move. A stale quote, a wide bid-ask, or one day miscounted at the month end swamps the signal.
The November contract has none of this. Its window runs from Monday 2 November to Tuesday 1 December, 29 days, every one of them after the October decision and before the December one, which would take effect on 10 December. Its implied rate is a direct read of where the market expects CORRA to sit after 28 October. At 0.005 per tick it is quantized to 2 probability points rather than 8. This is the same trick FedWatch uses when a meeting falls late in a month, and it is spelled out in our FedWatch methodology rebuild.
Subtract the CORRA-target spread first
COA settles on CORRA, not on the Bank's target, and the two are not the same number. From the Bank's own daily series, CORRA minus the target averaged:
2022: minus 3.2 basis points. 2023: plus 1.0. 2024: plus 3.4. 2025: plus 1.8. 2026 to 5 October: plus 3.0. The 20 business days to 5 October: plus 4.4.
The spread flipped sign after 2022 and has drifted within each year, so a fixed number from an old blog post will not do. Measure it over a recent window and state the window. At 4.4 basis points it is worth about 18 points of probability on a 25 basis point step if you ignore it. That is the same trap the RBA cash rate post found in Australian data, with the sign reversed.
A worked example for the 28 October decision
Facts as of 7 October 2026: the target is 2.25% and has been since 30 October 2025, held at all six announcements in 2026 so far. The recent CORRA-target spread is plus 4.4 basis points. The futures price below is illustrative, chosen to show the arithmetic, not a market quote.
Suppose the November COA trades at 97.8000. The implied November CORRA is 100 minus 97.8000, which is 2.2000%.
If the Bank holds, CORRA should average about 2.25% plus 0.044%, which is 2.294%. If it cuts 25 basis points, about 2.044%. The implied rate sits between the two, and the cut probability is the share of the distance it has covered: (2.294 minus 2.200) divided by 0.25, which is 0.376, or about 38%.
Ignore the spread and compare 2.20% with the 2.25% target directly, and you get (2.25 minus 2.20) divided by 0.25, which is 20%. Same price, same day, and the answer has nearly halved. The convention that matches how the contract settles is to compare like with like: CORRA against expected CORRA.
For the December decision you repeat the calculation one step out. December's window runs from Tuesday 1 December to Monday 4 January, because 1 January 2027 is a holiday, so 9 of its 34 days sit before the new rate would apply on 10 December and 25 after. Use the November implied rate as the starting level for those first 9 days, solve for the post-meeting rate, and chain the result through a probability tree exactly as the BoE, ECB and BoJ versions do. Read each later probability as cumulative, conditional on the paths before it.
[QUADESTO-EMBED: Bank of Canada meeting probabilities for 28 Oct and 9 Dec 2026 from One-Month CORRA futures (November and December COA), with the 20-day CORRA minus target spread shown beneath and the days-after-decision count annotated per contract]
Where the 25 basis point assumption holds
The method assumes the Bank moves in 25 basis point steps. Every change in the Bank's own target series since July 2024 has been either 25 or 50 basis points. A 50 basis point move shows up as an implied probability above 100% on the 25 basis point scale. Report that honestly as some probability of a larger move rather than clipping it at 100.
Where Quadesto fits
The inputs here are two public series from the Bank of Canada and a handful of COA settlement prices. Quadesto can chart them as a meeting-by-meeting probability view. Whichever tool you use, state the spread window and the effective-date convention in the caption, because that is the information a reader needs to compare your number with anyone else's. You can start free.