France-Germany 10Y Sovereign Spread: Monthly OAT-Bund Data Since 1990

ECB Dataset · Credit & Spreads

The spread between French and German 10-year government bond yields. Historically stable at 30–50 bps, it widened sharply in 2024 amid French fiscal and political uncertainty — signaling a potential structural repricing of French sovereign risk within the euro area.

Source
Eco3min composite
Frequency
Monthly
Coverage
1990–Present
Unit
Percentage points
Loading data…

France — from quasi-core to semi-periphery?

For most of the euro era, France was priced as a near-core sovereign — the OAT-Bund spread averaged 30–50 bps and rarely exceeded 80 bps outside of acute crisis episodes. This reflected France’s status as the second-largest euro area economy with a credible fiscal framework and stable political system. Related material: how fragmentation pressures the euro.

The 2024 widening marked a regime shift: snap elections, coalition fragmentation, a deficit above 5% of GDP, and debt approaching 115% of GDP converged to push the spread above 80 bps — levels last seen during the 2012 sovereign crisis. Unlike Italy (where spreads reflect a decades-long structural risk premium), the French widening represents a deterioration from a previously stable baseline. A second French spread runs on the other side of the same yield: the mortgage-minus-OAT spread for France, which prices bank intermediation rather than sovereign risk.

Systemic implications

France is fundamentally different from Italy for the ECB: it is too large (~20% of euro area GDP) for the TPI to credibly backstop, yet its fiscal trajectory creates genuine market concern. Figure drawn from the ECB Data Portal series for France 10-Year Government Bond Yield. A sustained OAT-Bund spread above 80 bps would increase borrowing costs for French banks, corporates, and the sovereign, potentially creating a negative feedback loop. This dataset tracks whether the 2024 widening proves transient or structural. Pricing that borrowing cost is a weekly exercise: France’s own issuance timetable brings BTFs to market every Monday and OATs on two Thursdays a month.

CSV Data Dictionary

ColumnTypeDescription
dateYYYY-MM-DDFirst day of the reference month
spread_fr_defloatFrance 10Y yield minus Germany 10Y yield (percentage points)
oat_10y_yieldfloatFrench 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-france-germany-spread.csv")
df["date"] = pd.to_datetime(df["date"])
df = df.set_index("date")

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

Source & Methodology

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

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

License: ECB open data — free reuse with attribution.

Cite This Dataset

Last updated — 21 September 2026

Disclaimer – Financial Information: The analyses, commentary, and content published on eco3min.fr are provided for informational and educational purposes only. They do not constitute investment advice or a solicitation to buy or sell financial instruments. Past performance is not indicative of future results. All investment decisions involve risk and are the sole responsibility of the reader.

Source terms. This series is produced by the European Central Bank (ECB Data Portal) and redistributed here under the ECB's copyright terms: free use provided the ECB is cited as the source, the data are reproduced accurately, and any modification (such as a spread or a real rate computed by Eco3min) is stated explicitly. Eco3min cannot sub-license it under Creative Commons: anyone reusing this file remains bound by the ECB terms, not by CC BY. Full terms.