Contributions by price growth category (percentage points)
Price growth < 2%
Price growth 2–5%
Price growth 5–10%
Price growth > 10%
Headline inflation (HICP)
Share of consumer basket by price growth category (% of total basket)
Price growth < 2%
Price growth 2–5%
Price growth 5–10%
Price growth > 10%
📊 Card 1: Economic Intuition — Why We Measure Inflation Diffusion (Breadth) Motivation & Theory

Standard macroeconomic discourse frequently relies on headline HICP (Harmonised Index of Consumer Prices) to assess price pressures. However, headline inflation is a single weighted average and can obscure critical structural dynamics:

  1. Masked Dispersion & Volatile Spikes: A headline inflation rate of 4% could result from a single severe supply-side shock (e.g., natural gas or electricity) while 90% of the basket remains at price stability. Conversely, headline inflation of 3% might conceal an entrenched, economy-wide wage-price spiral where 70% of consumer categories are compounding at excessive rates.
  2. Breadth of Inflation (Diffusion): By calculating the share of consumer basket expenditure experiencing price growth above critical policy thresholds, this dashboard quantifies the diffusion and pervasiveness of inflation across everyday goods and services.
  3. Threshold Calibration:
    • \(> 2\%\) YoY: Breaching the European Central Bank’s symmetric price stability target (\(\pi^* = 2\%\)). Measures how widespread above-target inflation has become.
    • \(> 5\%\) YoY: Indicates elevated secondary price pressures, where cost increases spill over from commodities into core processed goods and services.
    • \(> 10\%\) YoY: Represents acute, disruptive price growth characteristic of high-inflation regimes, where menu costs break down and consumer purchasing power is severely degraded.
🌳 Card 2: Eurostat Data Ingestion & ECOICOP Classification (Terminal Tree) Data & Aggregation
  1. Data Ingestion:
    • Monthly Indices & Annual Changes: Sourced from Eurostat dataset prc_hicp_minr (unit: RCH_A, rate of change compared to same month of previous year).
    • Expenditure Weights: Sourced from Eurostat dataset prc_hicp_iw (item weights in permille, updated annually).
  2. Eliminating Double-Counting across ECOICOP Hierarchies:
    • The European Classification of Individual Consumption by Purpose (ECOICOP) organizes items into hierarchical 2-digit to 7-digit codes.
    • To avoid double-counting parent categories (e.g., CP01 Food vs. CP0111 Bread), our recursive parsing algorithm extracts the terminal leaves of the classification tree for each economy:
      • Prioritizes 7-digit sub-classes (CPxxxxx) where available.
      • Recursively falls back to 6-digit and 5-digit categories only when child sub-classes are absent.
  3. Aggregation Verification:
    • The item weights are dynamically normalized to sum to exactly 100% of the consumer basket for each country and observation year, guaranteeing mathematical consistency across time.
📐 Card 3: Mathematical Formulations — Annual Growth & Cumulative Basket Diffusion Mathematics & Formulas

Let \(P_{i,c,t}\) denote the price index level of granular COICOP category \(i \in \mathcal{I}_c\) in country \(c\) at month \(t\). The annual year-over-year inflation rate \(r_{i,c,t}\) is given by:

\[r_{i,c,t} = \left( \frac{P_{i,c,t}}{P_{i,c,t-12}} - 1 \right) \times 100\%\]

Each category \(i\) has an official Eurostat expenditure weight \(\omega_{i,c,y}\) in year \(y = \text{year}(t)\) expressed in permille (\(\sum \omega = 1000\)). The normalized basket weight \(w_{i,c,y}\) (in percent) is:

\[w_{i,c,y} = \frac{\omega_{i,c,y}}{\sum_{j \in \mathcal{I}_c} \omega_{j,c,y}} \times 100\%\]

The Cumulative Diffusion Share \(S_{\tau, c, t}\) measures the percentage of the basket whose annual rate exceeds threshold \(\tau \in \{2\%, 5\%, 10\%\}\):

\[S_{\tau, c, t} = \sum_{i \in \mathcal{I}_c} w_{i,c,y} \cdot \mathbf{1}\{r_{i,c,t} > \tau\}\]

where \(\mathbf{1}\{\cdot\}\) is the indicator function:

\[\mathbf{1}\{r_{i,c,t} > \tau\} = \begin{cases} 1, & \text{if } r_{i,c,t} > \tau \\ 0, & \text{otherwise} \end{cases}\]
🔢 Card 4: Mathematical Formulations — Additive Contributions & EU Median Benchmark Decomposition & Benchmark

The contribution \(C_{[\tau_a, \tau_b), c, t}\) of a price-growth tier to overall headline HICP \(\Pi_{c,t}\) (in percentage points) is defined by the weighted sum of items falling within interval \([\tau_a, \tau_b)\):

\[C_{[\tau_a, \tau_b), c, t} = \sum_{i: r_{i,c,t} \in [\tau_a, \tau_b)} \left( \frac{w_{i,c,y}}{100} \right) \cdot r_{i,c,t}\]

The four mutually exclusive tiers partition headline inflation additively:

\[\Pi_{c,t} = C_{(-\infty, 2\%), c, t} + C_{[2\%, 5\%), c, t} + C_{[5\%, 10\%), c, t} + C_{[10\%, \infty), c, t} = \sum_{i \in \mathcal{I}_c} \frac{w_{i,c,y}}{100} \cdot r_{i,c,t}\]

To track pan-European disinflation without skew from small outlying economies or asymmetric weighting, the EU Median Diffusion is computed across all 27 EU member states:

\[\mathcal{M}_t(S_\tau) = \operatorname{median}_{c \in \text{EU}} \left\{ S_{\tau, c, t} \right\}\]