Euro Area Bank Loans NFC — Daily CSV Download

ECB Dataset · Credit & Spreads

Euro Area Bank Loans to Non-Financial Corporations (2003–2026)

MFI loans to euro area non-financial corporations (S.11) — outstanding amounts. European firms are approximately 70% bank-financed (vs. ~30% in the US), making this the most direct measure of the credit cycle in the euro area.

Source
ECB
Frequency
Monthly
Coverage
2003–Present
Unit
EUR millions

The corporate credit cycle in Europe

Unlike in the US where capital markets (bonds, commercial paper, leveraged loans) dominate corporate financing, European firms remain heavily dependent on bank credit. This structural difference means that ECB rate policy and bank lending conditions have a more direct and immediate impact on corporate investment in Europe than Fed policy does in the US.

The stock of NFC loans currently stands near €5.3 trillion. The 2023 tightening cycle produced a sharp deceleration: NFC loan growth turned negative for the first time since the 2012 sovereign crisis, reflecting both demand destruction (firms delaying investment) and supply constraints (banks tightening lending standards as the ECB’s Bank Lending Survey confirmed).

Bank-based vs market-based financing

The high bank-dependency of European corporates creates a stronger credit channel for monetary policy transmission but also a vulnerability: when banks tighten, European firms have fewer alternative funding sources than US firms. This asymmetry is particularly acute for SMEs, which have essentially zero access to capital markets and represent ~60% of euro area employment.

CSV Data Dictionary

ColumnTypeDescription
dateYYYY-MM-DDFirst day of the reference month
loans_nfc_eur_mfloatMFI loans to non-financial corporations, outstanding amounts, EUR millions

Python Code Example

import pandas as pd
from io import StringIO
import requests

url = "https://data-api.ecb.europa.eu/service/data/BSI/M.U2.N.A.A20.A.1.U2.2240.Z01.E"
resp = requests.get(url, params={"format": "csvdata"})
raw = pd.read_csv(StringIO(resp.text))

df = raw[["TIME_PERIOD", "OBS_VALUE"]].copy()
df.columns = ["date", "loans_nfc_eur_m"]
df["date"] = pd.to_datetime(df["date"] + "-01")
df = df.sort_values("date").set_index("date")

df.plot(title="Euro Area Loans to NFCs", figsize=(12, 5))

Source & Methodology

Source: ECB — MFI Balance Sheet Statistics (BSI)

Series key: BSI/M.U2.N.A.A20.A.1.U2.2240.Z01.E

License: ECB open data — free reuse with attribution.

Cite This Dataset