Italy 10Y Government Bond Yield — Daily CSV Download
ECB Dataset · Interest Rates
Italy 10-Year Government Bond Yield — BTP (1993–2026)
The BTP — the euro area’s primary sovereign risk barometer. Italy is the third largest economy in the euro area and the largest sovereign bond market (~€2.5 trillion outstanding). The BTP-Bund spread is the most tracked fragmentation indicator in European fixed income.
Italy’s 10-year BTP yield encodes the market’s assessment of Italian sovereign credit risk — a complex function of debt-to-GDP (~140%), political stability, growth prospects, and ECB policy credibility. The yield has swung from 14% (1993, pre-euro convergence) to under 1% (2021, ECB QE peak) to 5% (2022, tightening cycle).
The BTP-Bund spread is the single most important variable for assessing euro area fragmentation. During the 2011–2012 sovereign crisis, it reached 550 bps — the level at which market access became prohibitively expensive and ECB intervention (Draghi’s ‘whatever it takes’) became necessary. The creation of the Transmission Protection Instrument (TPI) in 2022 formalized this backstop.
Italian political instability systematically widens the spread: the 2018 populist government formation (+150 bps in days), the 2022 Draghi resignation (+50 bps), and fiscal policy uncertainty around budget negotiations create recurring episodes of volatility. The current spread of approximately 100-120 bps suggests moderate but persistent credit risk.
CSV Data Dictionary
| Column | Type | Description |
|---|---|---|
| date | YYYY-MM-DD | First day of the reference month |
| btp_10y_yield | float | Italian 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.IT.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", "btp_10y_yield"]
df["date"] = pd.to_datetime(df["date"] + "-01")
df = df.sort_values("date").set_index("date")
df.plot(title="Italy 10Y BTP Yield", figsize=(12, 5))Related ECB Datasets
Source & Methodology
Source: ECB / Banca d’Italia — Long-term convergence criterion interest rate
Series key: IRS/M.IT.L.L40.CI.0000.EUR.N.Z
License: ECB open data — free reuse with attribution.
