ECB Main Refinancing Rate — Daily CSV Download

ECB Dataset · Interest Rates

ECB Main Refinancing Operations Rate (1999–2026)

The traditional ECB policy rate — the rate at which banks borrow from the ECB against eligible collateral for one-week operations. Since September 2024, set at 15 basis points above the Deposit Facility Rate.

Source
ECB
Frequency
Event-based
Coverage
Jan 1999–Present
Unit
% per annum

What is the Main Refinancing Rate?

The Main Refinancing Operations (MRO) rate was historically the ECB’s headline policy rate — the equivalent of the Fed Funds Rate for the euro area. Banks submit bids for one-week central bank liquidity at this rate. For most of the ECB’s history, the MRO anchored money market rates.

However, the massive expansion of excess liquidity through QE programs (APP, PEPP) and TLTROs fundamentally changed the monetary plumbing. With trillions of euros in excess reserves, banks no longer need to borrow from the ECB at the MRO rate — they park excess cash at the Deposit Facility instead. This is why the ECB formally shifted to the DFR as the primary operational rate in September 2023.

The new corridor framework

Since September 2024, the ECB narrowed its interest rate corridor: the MRO is now fixed at DFR + 15 bps (previously +50 bps), and the Marginal Lending Facility at DFR + 40 bps (previously +75 bps). This narrowing aims to reduce money market rate volatility as excess liquidity gradually declines through QT.

The MRO rate ranged from 0% (2016–2022) to 4.50% (Sep 2023). As of mid-2025, it stands at approximately 2.15%, tracking the DFR at a fixed 15 bps premium.

CSV Data Dictionary

ColumnTypeDescription
dateYYYY-MM-DDDate of rate change (effective date)
mro_ratefloatECB Main Refinancing Operations fixed rate (% per annum)

Python Code Example

import pandas as pd
from io import StringIO
import requests

url = "https://data-api.ecb.europa.eu/service/data/FM/B.U2.EUR.4F.KR.MRR_FR.LEV"
resp = requests.get(url, params={"format": "csvdata"})
raw = pd.read_csv(StringIO(resp.text))

df = raw[["TIME_PERIOD", "OBS_VALUE"]].copy()
df.columns = ["date", "mro_rate"]
df["date"] = pd.to_datetime(df["date"])
df = df.sort_values("date").set_index("date")

df.plot(title="ECB Main Refinancing Rate", figsize=(12, 5))

Source & Methodology

Source: European Central Bank — Key Interest Rates

Series key: FM/B.U2.EUR.4F.KR.MRR_FR.LEV

License: ECB open data — free reuse with attribution.

Cite This Dataset