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.
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
| Column | Type | Description |
|---|---|---|
| date | YYYY-MM-DD | Date of rate change (effective date) |
| mro_rate | float | ECB 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))Related ECB Datasets
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.
