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.

Source
ECB / Banca d’Italia
Frequency
Monthly
Coverage
1993–Present
Unit
% per annum

Italy’s sovereign risk premium

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.

Political risk premium

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

ColumnTypeDescription
dateYYYY-MM-DDFirst day of the reference month
btp_10y_yieldfloatItalian 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))

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.

Cite This Dataset