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.
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
| Column | Type | Description |
|---|---|---|
| date | YYYY-MM-DD | First day of the reference month |
| bund_10y_yield | float | German 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))Related ECB Datasets
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.
