Italy Germany 10Y Spread — Daily CSV Download

ECB Dataset · Credit & Spreads

Italy–Germany 10Y Sovereign Spread — BTP-Bund (1993–2026)

The most tracked fragmentation indicator in the euro area — the spread between Italian and German 10-year government bond yields. Widened to 550+ bps during the 2011 sovereign crisis, currently approximately 100–120 bps. Inversely correlated with ECB credibility and euro area cohesion.

Source
Eco3min composite
Frequency
Monthly
Coverage
1993–Present
Unit
Percentage points

The fragmentation barometer

The BTP-Bund spread compresses the market’s real-time assessment of Italian sovereign risk into a single number. It captures credit risk (Italy’s ~140% debt-to-GDP), political risk (coalition instability, policy uncertainty), ECB credibility (willingness and ability to backstop), and liquidity conditions (risk-on vs risk-off flows within the euro area).

Three regimes are visible in the data: pre-euro convergence (1993–1998, spread collapsed from 600+ bps to under 30 as Italy qualified for EMU), the ‘great compression’ (1999–2008, spreads near zero as markets priced no redenomination risk), and the post-crisis fragmentation era (2009–present, where the spread has fluctuated between 100 and 550 bps).

Critical thresholds

Market practitioners watch several levels: below 150 bps is considered ‘manageable,’ 200–300 bps signals stress requiring monitoring, and above 400 bps historically triggered ECB emergency interventions (SMP in 2011, OMT announcement in 2012, TPI creation in 2022). The current level (~100–120 bps) is well within the comfort zone but above the pre-2008 norm of near-zero.

CSV Data Dictionary

ColumnTypeDescription
dateYYYY-MM-DDFirst day of the reference month
spread_it_defloatItaly 10Y yield minus Germany 10Y yield (percentage points)
btp_10y_yieldfloatItalian 10Y yield (%)
bund_10y_yieldfloatGerman 10Y yield (%)

Python Code Example

import pandas as pd

# From Eco3min pre-cleaned CSV (composite dataset)
df = pd.read_csv("https://eco3min.fr/dataset/ecb/ecb-italy-germany-spread.csv")
df["date"] = pd.to_datetime(df["date"])
df = df.set_index("date")

df["spread_it_de"].plot(title="BTP-Bund 10Y Spread", figsize=(12, 5))

Source & Methodology

Source: Eco3min composite — ECB/IRS Italy minus Germany convergence rates

Series key: Composite: IRS/M.IT − IRS/M.DE

License: ECB open data — free reuse with attribution.

Cite This Dataset