How the numbers are made

Every value on this site can be checked with a pocket calculator. Here is how.

The data

The basis are ECB-dated €STR futures: contracts whose maturities align exactly with the ECB’s reserve maintenance periods, i.e. the stretches between two Governing Council meetings. Banks and funds use these contracts to hedge against rate changes. Their price is a real-money bet on the average €STR money-market rate in exactly one meeting period. 25bp uses daily settlement prices plus the latest available price, delayed by at least 15 minutes. The raw exchange prices themselves are not republished for licensing reasons; only the probabilities derived from them are.

From price to probability

A €STR future is quoted as 100 − expected rate. The price difference between the contract before and the contract after a meeting therefore measures how much of a rate change the market has priced in for that specific meeting. Divided by the usual step size of 25 basis points, this yields the priced-in step count J:

J = (price before − price after) / 0.25

A J of 0.84 means the market prices 84% of a full 25 bp step. This is turned into a probability distribution over the two adjacent whole steps (linear attribution): 84% for one step, 16% for none. It is the same core principle the CME’s FedWatch tool applies to the Federal Reserve.

Chaining across meetings

For meetings further out, the outcome depends on all meetings in between. 25bp therefore convolves the individual distributions of all meetings up to the target date. The result is the unconditional distribution: the probability of each possible rate level after that meeting, regardless of the path taken. The expected rate is the probability-weighted average of this distribution.

Freshness and exclusions

Updates run twice per trading day. If the latest price of any link in the chain is older than seven days, the affected meeting is not calculated. Better no number than a falsely precise one. New prices pass a validation gate before being written (price range, maximum daily jumps, plausibility of implied steps); if it fails, the previous state remains. Values below 1% are not shown.

Policy rates and meeting dates

Meeting dates come from the official ECB calendar; the policy-rate history comes from the official ECB Data Portal series (FM.D.U2.EUR.4F.KR.DFR.LEV). Every rate change takes effect on the Wednesday after the Governing Council meeting, which lets 25bp assign changes to the right meeting automatically. There is no manually maintained dataset.

What the model cannot do

Three limitations matter, and none of them is small: First, the linear attribution only covers two adjacent scenarios per meeting: a J of 0.5 can mean “50% for +25 bp” but also “25% for +50 bp”. The model cannot tell these apart. Second, distant contracts are illiquid; individual prices there can be stale or distorted. Third, the spread between €STR and the deposit facility rate is assumed constant. If it shifts, the derived probabilities shift with it. How accurate markets have historically been is shown in “Forecast vs. reality”; consider it part of the methodology.