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.
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
| Column | Type | Description |
|---|---|---|
| date | YYYY-MM-DD | First day of the reference month |
| spread_it_de | float | Italy 10Y yield minus Germany 10Y yield (percentage points) |
| btp_10y_yield | float | Italian 10Y yield (%) |
| bund_10y_yield | float | German 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))Related ECB Datasets
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.
