Germany 10Y Government Bond Yield — Daily CSV Download

ECB Dataset · Interest Rates

Germany 10-Year Government Bond Yield — Bund (1993–2026)

The Bund — the euro area’s risk-free anchor. All European sovereign spreads, corporate bonds, and swap rates are priced relative to this benchmark. The monthly long-term convergence criterion interest rate as reported to the ECB.

Source
ECB / Bundesbank
Frequency
Monthly
Coverage
1993–Present
Unit
% per annum

The Bund as the European risk-free rate

The German 10-year Bund yield is the de facto risk-free rate for the euro area. Germany’s AAA rating, deep and liquid bond market, and constitutional debt brake make the Bund the benchmark against which all other European fixed income is priced. When market participants say ‘the BTP-Bund spread is 120 bps,’ they mean the Italian 10-year yield is 1.2 percentage points above this rate.

The Bund yield has followed the global secular decline in long-term rates: from ~7% in the early 1990s to negative territory in 2019–2021 (reaching −0.85% in March 2020). The 2022 inflation shock and ECB tightening drove a sharp reversal — the Bund surged from −0.18% (Jan 2022) to above 2.5% (Oct 2023). By early 2026, it has settled around 2.7%, reflecting a structural regime shift from the ultra-low rate era.

Bund scarcity and the ‘safe asset’ problem

Germany’s fiscal conservatism creates a structural scarcity of Bunds relative to demand from pension funds, insurers, and the ECB itself (which holds ~30% of the outstanding stock via APP/PEPP). This scarcity depresses Bund yields relative to fundamentals — creating what some analysts call the ‘safe asset premium.’ Recent German defense spending plans (2025–2026) may increase Bund supply significantly, potentially narrowing this premium.

CSV Data Dictionary

ColumnTypeDescription
dateYYYY-MM-DDFirst day of the reference month
bund_10y_yieldfloatGerman 10-year government bond yield (% per annum, convergence criterion)

Python Code Example

import pandas as pd
from io import StringIO
import requests

url = "https://data-api.ecb.europa.eu/service/data/IRS/M.DE.L.L40.CI.0000.EUR.N.Z"
resp = requests.get(url, params={"format": "csvdata"})
raw = pd.read_csv(StringIO(resp.text))

df = raw[["TIME_PERIOD", "OBS_VALUE"]].copy()
df.columns = ["date", "bund_10y_yield"]
df["date"] = pd.to_datetime(df["date"] + "-01")
df = df.sort_values("date").set_index("date")

df.plot(title="Germany 10Y Bund Yield", figsize=(12, 5))

Source & Methodology

Source: ECB / Bundesbank — Long-term convergence criterion interest rate

Series key: IRS/M.DE.L.L40.CI.0000.EUR.N.Z

License: ECB open data — free reuse with attribution.

Cite This Dataset