Euro Area Industrial Production Index: Monthly Data Since 1991
ECB Dataset · Real Economy
Total industry excluding construction (seasonally and working day adjusted, base 2021=100). The monthly hard data indicator for euro area manufacturing — in structural decline relative to services, down approximately 5% from its 2018 peak.
European deindustrialisation in data
Euro area industrial production has been structurally declining as a share of GDP for decades — from ~25% in the 1990s to ~20% today. The index captures this within-sector performance: manufacturing output peaked in 2018 and has not recovered, with the 2022 energy crisis accelerating the decline in energy-intensive sectors (chemicals, metals, glass).
Germany — traditionally the industrial engine of Europe — has been particularly affected: German industrial production is roughly 10% below its 2018 peak, dragged down by the automotive sector’s EV transition disruption, energy cost disadvantages versus US and Asian competitors, and Chinese competition in machinery exports.
Industrial production as a leading indicator
Despite its declining weight in GDP, industrial production remains a useful cyclical indicator because it is available monthly (vs quarterly GDP), subject to minimal revision, and more sensitive to global trade conditions and energy prices. It correlates with the manufacturing PMI but provides hard data rather than survey-based expectations. Measured by the ECB Data Portal series for Euro Area Industrial Production Index.
CSV Data Dictionary
| Column | Type | Description |
|---|---|---|
| date | YYYY-MM-DD | First day of the reference month |
| indpro_index | float | Industrial production index, total ex construction (2021=100, seasonally adjusted) |
Python Code Example
import pandas as pd
from io import StringIO
import requests
url = "https://data-api.ecb.europa.eu/service/data/STBS/M.I10.Y.PROD.NS0020.4D0.N.IX"
resp = requests.get(url, params={"format": "csvdata"})
raw = pd.read_csv(StringIO(resp.text))
df = raw[["TIME_PERIOD", "OBS_VALUE"]].copy()
df.columns = ["date", "indpro_index"]
df["date"] = pd.to_datetime(df["date"] + "-01")
df = df.sort_values("date").set_index("date")
df.plot(title="Euro Area Industrial Production", figsize=(12, 5))Related ECB Datasets
Source & Methodology
Source: ECB / Eurostat — Short-Term Business Statistics (STBS, euro area 21)
Series key: STBS/M.I10.Y.PROD.NS0020.4D0.N.IX
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.
