{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Pichler et al. (2022) Dynamic Input-Output Model (PichlerEtAl2022DIO)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This model implements the dynamic disequilibrium input-output model\n", "introduced by Pichler, Pangallo, del Rio-Chanona, Lafond & Farmer (2022),\n", "*Forecasting the propagation of pandemic shocks with a dynamic\n", "input-output model*, Journal of Economic Dynamics and Control, 144,\n", "104527. The model simulates daily production, consumption, and\n", "employment dynamics across an input-output network subject to supply\n", "and demand shocks. Key features:\n", "\n", "- **Partially Binding Leontief (PBL) production functions** that\n", " distinguish critical from non-critical intermediate inputs.\n", "- **Industry-specific inventories** with target stock levels.\n", "- **Muellbauer consumption function** incorporating fear-of-infection\n", " and permanent-income effects.\n", "- **Sluggish labour adjustment** with asymmetric hiring/firing speeds." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Module Contents\n", "\n", "As with all `MacroStat` models, PichlerEtAl2022DIO is divided into\n", "Variables, Parameters, Scenarios, and the Behavior (model\n", "initialisation and steps). The module-level documentation can be\n", "found in:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```{eval-rst}\n", ".. toctree::\n", " :maxdepth: 2\n", "\n", " Variables \n", " Parameters \n", " Equations \n", " Scenarios \n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Model Overview\n", "\n", "A time step corresponds to one calendar day. The economy initially\n", "rests in a steady state until exogenous shocks are applied. Every day\n", "the model executes the following steps:\n", "\n", "1. **Labour adjustment** -- firms hire or fire workers depending on\n", " whether their workforce was insufficient or redundant.\n", "2. **Demand** -- households decide consumption; industries place\n", " intermediate-goods orders.\n", "3. **Production** -- industries produce subject to labour capacity,\n", " input availability, and demand constraints.\n", "4. **Rationing** -- if output < demand, production is distributed\n", " pro rata across customers.\n", "5. **Inventories & accounting** -- inventory levels are updated;\n", " profits and savings are computed." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Key Equations\n", "\n", "The output identity decomposes sector $i$'s gross output into\n", "intermediate use by all sectors, household consumption, and other\n", "final demand:\n", "\n", "$$\n", "x_{i,t} = \\sum_{j=1}^{N} Z_{ij,t} + c_{i,t} + f_{i,t}\n", "$$\n", "\n", "Sector $i$ produces the minimum of its labour capacity, its\n", "input-availability capacity, and realised demand:\n", "\n", "$$\n", "x_{i,t} = \\min\\{x^{\\text{cap}}_{i,t},\\; x^{\\text{inp}}_{i,t},\\; d_{i,t}\\}\n", "$$\n", "\n", "Labour adjusts toward the required workforce with asymmetric hiring\n", "and firing speeds:\n", "\n", "$$\n", "l_{i,t} = l_{i,t-1} + \\gamma\\,\\frac{l_{i,0}}{x_{i,0}}\n", " \\left[\\min\\{x^{\\text{inp}}_{i,t},\\, d_{i,t}\\} - x^{\\text{cap}}_{i,t}\\right]\n", "$$\n", "\n", "See the [Equations](equations.rst) page for the complete behavioral\n", "system." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Simplified 3-sector example\n", "\n", "This section runs the model out of the box with its illustrative\n", "three-sector default (sectors A, B, C). The model code is identical\n", "to the 55-sector case; only the parameter source differs.\n", "\n", "### Essential-input structure\n", "\n", "Production in this model uses the *Partially Binding Leontief* (PBL)\n", "specification. Each inter-sector flow $A_{ij}$ is flagged in the\n", "*critical-input matrix* $A^{\\text{ess}}$ as either critical (no\n", "substitution possible -- production fails if the input is missing) or\n", "non-critical (some substitution allowed). The default $A^{\\text{ess}}$\n", "encodes a serial supply chain\n", "\n", "$$\n", "A \\xrightarrow{\\text{essential}} B \\xrightarrow{\\text{essential}} C\n", "$$\n", "\n", "i.e. sector $B$ critically depends on sector $A$'s output, and sector\n", "$C$ critically depends on sector $B$'s output. Sector $C$ produces a\n", "final good and has no critical downstream. All other inter-sector\n", "flows are non-critical and can be partially substituted.\n", "\n", "Combined with the inventory-buffer dynamics, this asymmetry means a\n", "shock to upstream sector $A$ propagates downstream with a delay set\n", "by the size of sectors $B$ and $C$'s buffers, but in steady state the\n", "chain $A \\to B \\to C$ is the only path through which an upstream\n", "shock can reduce $C$'s output." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "execution": { "iopub.execute_input": "2026-05-28T11:36:41.027947Z", "iopub.status.busy": "2026-05-28T11:36:41.027849Z", "iopub.status.idle": "2026-05-28T11:36:42.150295Z", "shell.execute_reply": "2026-05-28T11:36:42.149795Z" } }, "outputs": [], "source": [ "%load_ext autoreload\n", "%autoreload 2\n", "import importlib\n", "import logging\n", "import os\n", "import sys\n", "from pathlib import Path\n", "\n", "import matplotlib.pyplot as plt\n", "import torch\n", "\n", "from macrostat.models.PichlerEtAl2022DIO import (\n", " ParametersPichlerEtAl2022DIO,\n", " PichlerEtAl2022DIO,\n", " ScenariosPichlerEtAl2022DIO,\n", ")\n", "\n", "plt.style.use(\"../../macrostat.mplstyle\")\n", "importlib.reload(logging)\n", "logging.basicConfig(stream=sys.stdout, level=logging.INFO)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Instantiate with the zero-config default and simulate the baseline\n", "182-day trajectory. No shock is applied, so the economy stays at\n", "its initial steady state." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "execution": { "iopub.execute_input": "2026-05-28T11:36:42.151667Z", "iopub.status.busy": "2026-05-28T11:36:42.151506Z", "iopub.status.idle": "2026-05-28T11:36:42.328230Z", "shell.execute_reply": "2026-05-28T11:36:42.327811Z" } }, "outputs": [], "source": [ "model = PichlerEtAl2022DIO()\n", "model.simulate()\n", "baseline = model.variables.to_pandas()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Baseline sectoral output -- the system is initialised at a closed\n", "input-output equilibrium, so $x_t = x_0$ for all $t$." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "execution": { "iopub.execute_input": "2026-05-28T11:36:42.329730Z", "iopub.status.busy": "2026-05-28T11:36:42.329607Z", "iopub.status.idle": "2026-05-28T11:36:42.661688Z", "shell.execute_reply": "2026-05-28T11:36:42.661333Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxYAAAEhCAYAAADiXjabAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAANbNJREFUeJzt3XtYlHX+//EXBxFNDgIKKyBrKFq79NU1jFzWw9pmmlt5IG1dPH1bN71qY9c1D2sbWXhIS7NdO7hZXMWK39a2vqlrZRugImqHzSTFE0pIgJggmA6HuX9/9GO+ojPIMMMM4vNxXV1x35+Zz+c9n7mv2/s99+HtYRiGIQAAAABwgKe7AwAAAABw7SOxAAAAAOAwEgsAAAAADiOxAAAAAOAwEgsAAAAADiOxAAAAAOAwEgsAAAAADiOxAAAAAOAwEgsAAAAADiOxAAAAAOAwEgsAAAAADiOxAACgmbKzs7Vjxw53hwEAbRKJBYDrWmVlpT777DN98MEH7g7FJWbMmKE77rhD69atc3co15wjR47ovffe089+9jO3xVBeXq5PPvlE2dnZbh9j3rx5qq6ubrU4AFx7SCwAuMXmzZs1atQoeXt7y8/PT0lJSZo2bZqmTp2q4cOHa9asWSotLW31OPLz87Vo0SKNHDnSsm7BggXq27evLl682Orju9ratWt18eJFnTp1ymVjtpf5XLhwoRYtWuTWGD799FP97ne/05QpU9w+xsMPP6zf//73rRYHgGuPt7sDAHB9GjNmjMaMGaMhQ4bI399fb7zxhqWttrZWd999txISEvTFF1+oc+fOrRbHoEGD9MILL6h3796WdR06dFCHDh1abUx38vX1bfRZnSk5OVmrV6++Yn17mM+cnBx169ZNAQEBbo1j5MiR8vb21n//93+7fYzIyEj16dNH//znPzV27NhWiwfAtYMzFgDcytPzyt1Qhw4dNGvWLB09elQffvhhq8fg5eXVaHnx4sU6cOCAfH19W33s9sTWvQftYT7Xrl2rpKQkd4ch6crt1Z1jzJw5U6tWrWrlaABcK0gsALRJZWVlkqTQ0FA3R4Krqa6u1tKlS/XZZ5+5O5RWs3PnTg0cONDdYbQ5gYGBCggI0P79+90dCoA2gEuhALQ5R44cUWpqqv74xz8qPj5ekvTZZ5/p3Xffla+vr7788ksNHjxYDz/8sOU9dXV1WrJkiX7wgx+opqZGBw8eVHh4uBYsWKDz589r7ty5CgwM1MWLFxUYGKjHH39cHh4eV4z98ccfa8GCBfr6668t9yGkp6frqaeeUn19vTIyMvT+++/r3LlzOnDggNLT0y2Xx9gzjiS9+eabWrJkicrLy7Vq1Srl5+fr7NmzKiws1Jo1axQVFaX09HQtXrxYISEheuSRR/TBBx/o66+/1gcffCAPDw/V1dVp8eLFqq2tVefOnVVYWKj58+crOjpaklRfX68lS5bo22+/VXBwsDp06KDvvvvOEsMrr7yixx9/XGVlZTIMQ5I0btw4vfvuu0pKStLrr79ueW1tba2eeOIJnT17ViEhIbp48aKmTZumXbt2KSsrS5I0bdo0SdKsWbN02223WZ3PpmJu7lzbUltbq+eee04eHh769NNPlZqaqrS0NFVXV+vWW2/V5MmTm3y/NUeOHFFISIh8fHws65ob59W+H2ua2pYvtXPnTmVlZamqqkoHDx7UG2+8IX9//2aNa+u7/NGPfmR1Tnv16qVvvvlGw4cP11tvvaWuXbta2gcPHqx//etfuuWWW+yeWwDtjAEAbjR06FCjX79+xtKlS42lS5caCxcuNPr3728sWLDAqKmpsbzutttuMx5++GHDMAzj3LlzRo8ePYwNGzZY2tPS0oznnnvOspybm2s88cQThmEYxujRo42VK1da2saOHWusW7fOslxQUGBcujvcu3evcfnu8Z///KcRFBRkPPvss5Z1w4cPN5YtW2ZZvto41mzdutWQZGzbts2ybvXq1caNN95oVFdXW8aOiIgwXn/9dWP37t1GbGysUVtbaxiGYfz2t781li9fbnlvYWGh8cMf/tAoKyszDMMwkpKSjN///veW9qqqKqN3796WuTEMw9iyZcsVnzcxMdGYOnVqo3VJSUmW76Dh8ycmJhqGYRgff/zxFX00uHw+rxZzc+ballWrVhnHjh0zDMMw5s6da9x4443G+fPnjcGDB1titdfHH39sjBo16or1zYnzap/Vmqa25YZ4goKCjLVr11rWDRs2zK5xm/ouG8aIiooyDMMw6urqjPvvv9/IycmxGu+WLVuMSZMm2fw8AK4fnLEA4HbR0dGaP3++ZXnx4sUaO3asEhIS9OGHH8rf31+JiYmWy6L8/Pz0s5/9TB999JEmTZokSfr222/1j3/8Q3feead+9KMf6dZbb1V1dbVyc3O1detWvfnmm5b+x48fr/Xr1+vBBx+0Gk+3bt2uWBcYGKhvv/1WiYmJlnURERE6cuSIJLVoHEnq1KmTJDV6KtXMmTM1b948vfbaa3r44YcVGBiooqIijRs3Tn5+fpbLTg4cOKB169apvLzc8t7IyEjdcsstWr58uX71q1/pjTfe0FdffWVp79Kli/7rv/6rUQzWbo6/fN0XX3yhN954QwcOHLCse+SRRxQUFGTzszW4dD6vFvPKlSuvOtdN8fb21o033ijp+8em/vKXv1Tnzp21du1a9ejR46rvt+b06dNWz5RcLc7mfFZrbG3Llzp79myjez4iIyObPW5SUlKzv8v6+nr98Y9/1JNPPql+/fpZjTcoKEjHjh2z2gbg+kJiAaDN8fLy0tq1a9WzZ0/96U9/0gsvvKA5c+YoLy9PS5YskSQdP35cN998s+U906ZNU0ZGhn784x8rNDRUv/rVr/T000/rpZdeUocOHZSWlmZ57ZkzZxQTE9Oi2CIjIy1/e3p6qq6uTtL3Tw1y1jidOnVSnz59lJOTY7ncq1u3bvLz82v0uu3bt6tjx46NLkuRpB49eujf//63wsPD5enp2eRlN8318ccfy8PDQ3369LGsa8mTgK4W86VszXVTLr08LicnR08//bQkXZFMSdKwYcOUmZl51T7NZnOT7bbitOezXsrWtnypoKAgdenSpUXjRkRENOu7rK+v1+zZs7Vx40Y99thjNuPt2rWrKisrbbYDuH6QWABokyIiIhQaGmo5APvDH/6g3bt364033lDv3r11+PDhRq/38fHR7t27lZOTo+zsbP3lL3/RyZMnlZCQoLq6Oj388MPy9m69XV7D/Q7OGsfLy6vRE7OsnVWor6+XyWRSfX19o6f4XLhwwXKQ6eXl1ejegJYym83y8PCw3IdxNdnZ2RoyZEiLYnaGsrIy5efnKyEhwWr7oUOHFBIS0qy+QkJCVFFRYXcMLf2strblTZs2OWXc5n6X1dXVmjNnjs6ePavf/e53euutt2yO54xtDMC1j6dCAWiTzp07pzNnzqhnz57auXOnVq1apTfffNNSg6HhwCwrK0unT5/WihUrVFhYqJ/+9KdasGCB9u/fbzm4NQyj0eVA0ve/ZjuTM8c5d+6cDh8+bPXA/FIJCQkym8365ptvGq0vKCjQT3/6UyUkJKi2tlbFxcVN9mPt0aKnT59utPzTn/5UZrP5ioTuk08+adRHfX29JNk8E3C1mB1RW1trSUR37NihH/7whwoLC5Mkbdu2TQcPHrT8PW/ePAUGBurtt9++ar8/+MEPdObMGbvjaelntbUtO2vcq32XDcLDwxUTE6M1a9Zo+/bt2rx5s9Xxzp49a/XyQQDXHxILAG5l61fTefPmycPDQ4sWLdK5c+ck/d/9CBUVFfrPf/4jk8mkQ4cOyWw2yzAM/fWvf7W8v2PHjurfv78GDhyoiRMn6qWXXrK0nTx5Ujt37rwiBlv/b2pdw3JzxmnKpQe4q1atUu/evTV16lTLONYux7ntttt0//33NyouePToUeXn52vhwoWKi4vT+PHjG9UZKC0t1e7duxsdKEdHR8vT01PffvutJKm4uFhffvmlZblhrPHjxze6L6CiokJbt26VJPXu3VteXl46evSoqqurG12vf+ncXS3my19/aR9X+4X9b3/7m0aNGqXvvvtO//rXvywHuzU1Nfroo4900003SZLuuusueXh4aP78+Ro3blyTfUpSv379VFpaesVZhqvF2ZzPao2tbdnaGC0Z92rf5eX9hYWFKSUlRbNnz7Z65qa8vLzF968AaF88jOae1wYAJ9q8ebNefPFFffDBB+rcubPGjBmjDh06yDAMHT58WDfccIOefvppxcfHyzAMLVmyRHv37tXgwYNVX1+vESNGaOrUqZo2bZrmz5+v5cuXq76+XjU1NerUqZOKi4s1e/Zs9e3bV7W1tfrzn/+s8vJyBQcHy9/fX4899pi8vb314YcfatGiRdq7d6+GDx+uO+64Q++++6727t2rESNG6OWXX1Zubq6WLl2qvLw8DR8+XM8//7zWrFljuTRk3LhxWr9+fZPj2JKZmanhw4frtdde06lTp1RRUaHy8nKtXLlSwcHBSk9Pt4w9bNgwTZ8+XVOmTLG8v7a2Vk899ZQqKyvl6emp6upqzZ0713Jvh8lk0sKFC2U2mxUWFqaAgAD9+9//Vk5OjiZPnqzly5dL+v6xs3v27FGfPn10ww036MiRI9q4caPuvPNOywFqTU2NFi1apMLCQkVHR8vb21uPPfaYbrjhBknS888/r+3bt6t3795avHix/Pz8tHXrVj355JON5rNnz542Y7708zY119Z8+eWXeuqpp9S3b1+NHz9er7zyioKCgmQYhh55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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(8, 3))\n", "for name in [\"A\", \"B\", \"C\"]:\n", " ax.plot(baseline.index, baseline[\"GrossOutput\", name], label=rf\"Sector ${name}$\")\n", "ax.set_title(r\"Baseline production $x_t$ (no shock)\")\n", "ax.legend()\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Apply a 50% supply shock to sector A for 30 days starting on day 10\n", "and re-simulate. Sector A's output drops directly; sectors B and C\n", "fall through the essential-input chain $A \\to B \\to C$." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "execution": { "iopub.execute_input": "2026-05-28T11:36:42.680977Z", "iopub.status.busy": "2026-05-28T11:36:42.680780Z", "iopub.status.idle": "2026-05-28T11:36:42.841857Z", "shell.execute_reply": "2026-05-28T11:36:42.841213Z" } }, "outputs": [], "source": [ "shock = {\"SupplyShock\": torch.zeros(model.parameters.hyper[\"timesteps\"], 3)}\n", "shock[\"SupplyShock\"][10:40, 0] = 0.5\n", "model.scenarios.add_vector_scenario(shock, name=\"UpstreamShock\")\n", "model.simulate(scenario=1)\n", "shocked = model.variables.to_pandas()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Side-by-side comparison: baseline (grey) vs upstream shock (red).\n", "Sector $A$ absorbs the shock immediately; sectors $B$ and $C$ drop\n", "only modestly during the shock window because their inventories of\n", "upstream inputs cushion the supply restriction.\n", "\n", "The deeper trough in sector $B$ around $t=43$, three days *after*\n", "the shock ends, is the model's characteristic feature. Three\n", "coupled mechanisms drive it.\n", "\n", "1. **A's labour was fired during the shock.** When $A$'s\n", " productive capacity collapsed to 50, the asymmetric labour rule\n", " (Eq. 19-20) fired workers down from 60 to 30 to match.\n", "2. **A's recovery is slow.** The default hiring rate is\n", " $\\gamma_H = 1/30$ per day. Once the shock ends at $t=40$, $A$'s\n", " capacity rebuilds linearly at about seven units per day (50, 57,\n", " 64, 71, ...) and only returns to 100 around $t=50$.\n", "3. **B exhausts its $A$-input inventory before $A$ can resupply.**\n", " During the shock $B$ kept ordering at near-steady-state level\n", " while $A$ delivered only 50. $B$'s on-hand inventory of $A$'s\n", " output drained to a thin buffer by $t=40$. In the days after,\n", " $A$ still produces well below $B$'s orders, $B$'s input capacity\n", " falls from $\\approx 460$ to $\\approx 250$, and at $t=43$ $B$'s\n", " output is *input-bound* at 252, a 16% drop below steady state.\n", " The input shortage then triggers $B$'s own labour adjustment:\n", " asymmetric firing ($\\gamma_F = 2/30$) cuts $B$'s capacity, so\n", " even after $A$ recovers around $t=50$, $B$'s production is\n", " capped by its reduced workforce until the slower hiring loop\n", " rebuilds it." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "execution": { "iopub.execute_input": "2026-05-28T11:36:42.843558Z", "iopub.status.busy": "2026-05-28T11:36:42.843348Z", "iopub.status.idle": "2026-05-28T11:36:43.249005Z", "shell.execute_reply": "2026-05-28T11:36:43.248545Z" }, "jupyter": { "source_hidden": true } }, "outputs": [ { "data": { "image/png": "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35pz/Otrv6ioCEDllD6g8nju27cPBoMBR48elfZrNpvx9ddfIycnB/n5+XZtN6WN+l6bhl7zxj4zNfXv3x/jx4/H8uXLpW0XLlzArl27cOnSpWYft7CwMAwbNgwnTpxAeHg42rRpgyFDhiA1NVVaFbRaXX8jbD9vjT2X+o5Pfa99Q8etKa9HY/2t7zkRERE5iyByBCIiIifLzs7GihUrcMstt2DFihXS2f3w8HAsWbIEer1euu+KFSuQnp6OuLg4+Pv748SJE/jyyy9xyy234PPPP8e2bdswYsQIrF69GmfPnkVBQQHy8vKwbNkytG3bFgCadJ8ff/wRL7zwAvbs2YMRI0bgjTfesPsx+eCDD0o1hBqyZMkSWCwWGI1G+Pr64ty5c3j00UfRo0cPJCcnY9GiRTh06BBuvfVWvP3221iwYAE2bNgAQRBw1113YdWqVTCZTJg/fz4KCwuh0WhQUlKCxMREqY4MABiNRrzwwgvIyspCt27doNPp8Mwzz2DDhg1YtGgRjh49ittuuw2rVq3Co48+inXr1iE2NhZLlizBXXfdVW//33rrLWzduhWxsbF49dVXpRo3TelTc46FyWTCP//5T+Tl5aFt27YICgrCM888I01Rqu/5+fv7t7iftsd/+PDhmDZtGu6///56+5+eno7ExETs2LEDCQkJWL9+PeLj4wEAGzduxOuvv46UlBRERkbi5ptvRlJSUq3AVbXG3oON9a2x499Y+6IoYuHChdizZw8GDx4Mi8WCv/zlL5gyZQqmTp2K5557zq6dal5eXhg0aBA++ugjxMfHN6mNhl6bul7z119/vd73SX0MBgPmzZsHq9WKyMhIBAcH4+eff8bOnTtx3333YcmSJU06btU++eQTmM1mPPzwwwCATz/9FAaDQboOwO41GjFiBN566y28/fbb0tTYu+66Cz169Gj0udQ8Pt99912jr31dx02r1Tb4enTs2LHB/k6cOBFPPPEEnnzySfzyyy+45ppr8Nxzz+G+++6r97gTERHJjUEpIiJya9U/ohsazppyn5rKy8tRVFSEiIgI7N69G7m5uRgzZowcXSYP1JL3oLPbT0tLw4svvog1a9YgKioKFosFFy9exJdffolvvvmm0almRERERM3F6XtEROTWmvIjvCU/1F988UVMnDgRAPD999/jjjvuaHYbRNUcfQ5QjvZPnDiB0NBQafqsVqtFZGQkbrrppkaLihMRERG1BFffIyIit1U9nQYA/vKXv+DNN99Ez549m32fuowbNw6FhYX45z//icmTJzda4JyoPi19Dzq7/alTp0Kn0+Hhhx9Gx44dodVqUVZWBrPZjLVr18rWXyIiIqJqnL5HREREREREREROx9O+RERERERERETkdAxKERERERERERGR0zEoRURERERERERETsegFBEREREREREROR2DUkRERERERERE5HQMShERERERERERkdMxKEVERERERERERE7HoBQRERERERERETkdg1JEREREREREROR0DEoREREREREREZHTMShFREREREREREROx6AUERERERERERE5HYNSRERERERERETkdAxKERERERERERGR0zEoRURERERERERETsegFBEREREREREROR2DUkRERERERERE5HQMShERERERERERkdMxKEVERERERERERE7HoBQRERERERERETkdg1JEREREREREROR0DEoREREREREREZHTMShFREREREREREROx6AUERERERERERE5HYNSRERERERERETkdAxKERERERERERGR0zEoRURERERERERETsegFBEREREREZGHMRqNSneBCDqlO0DUGJPJhFdeeQVnz56FTqeDVqvFP/7xD7z66qv47LPPlO6eLJKSkrBv3z4sX75c6a4QEbk9tY0bX3/9NVatWoVNmzahZ8+e6NWrF4DK53n8+HFMnjwZTz/9tMK9JCJyb2obO6p9//33+PTTT2GxWBAYGAhfX188+eSTEEURa9aswaJFi5TuInk4BqXI5T399NPo2LEj/vWvfwEASkpKMGXKFPz222+y7WP27Nl48803ZWuvOQoKCpCYmIhhw4Ypsn8iIrVR27gxfvx49O3bF127dsWHH36IwYMHS7ft2LEDQ4cOhb+/Px5++GGn9IeISI3UNnbk5eXhb3/7G7y9vfHuu++iS5cuAACLxYLZs2fj+++/x5IlS5zSF6KGCKIoikp3gqg+5eXlCAkJQX5+Pvz8/KTtZ8+exbBhw5CRkSHLfvr27SvrgNMcCxYswKZNm6DRaLBjxw5F+kBEpBZqHTfWrFmDhx9+GAUFBfDy8pK2l5SUIDAwEI888gjef/99p/WHiEhN1DZ2XLhwAUOGDMENN9yA1atXQxAEu9tPnjyJ2NhY5OTkICIiwuH9IWoIa0qRSysvL4fRaMTBgwfttnfo0AE33HBDq9svKSnBokWL8Pvvv7e6rZY4cOAAevTogYSEBOTk5CjSByIiNVHruLFjxw4MHjzYLiAFABs3boRWq8U999zj1P4QEamJmsYOURQxYcIEeHl5YcWKFbUCUgDQrVs39OnThwEpcgmcvkcuLTQ0FH369MHdd9+NhQsX4uabb0Z4eDgA4LHHHpPuV1paisTERISEhKCiogIhISF48cUXIQgCTCYTXnrpJeTn5yMsLAwVFRWYOnUqrr76anzxxRdISUkBAEydOhUA8Mgjj2DgwIEwm8149dVXYTKZ4Ofnh6ysLDz33HPo1q0bkpOT8eqrryIsLAyPP/44fvjhB2RnZ+OHH36o8w9/ff773/9i7ty52L9/f6uCUiaTCW+88QYEQcBvv/2GBQsWICkpCSUlJejXrx/uu+++FrdNRORO1DpupKam4t5777XbtnnzZsydOxefffYZhg4d2qzjxHGDiOgKNY0dX3zxBVJTU/H111/D29u73uc8efLkZh0jjhvkMCKRi9u/f7/Yvn17EYAIQExISBDffvtt0Wq1Sve57bbbxGXLlknXx40bJ65cuVIURVGcPHmyOGvWLOm2ESNGiBMnTpSu//LLL2JdH4WHH35YXLJkiXQ9KytL7NKli5ibmyuKoih+8803YnR0tPjpp5+Ku3btEnv27CmaTKYmP69vvvlGPHXqlCiKovjee++JAMTi4uImP97W8uXLxZMnT4qiKIqJiYliTEyMWFpaKg4ePNjuuRIReQK1jRuXLl0SBUEQZ86cKS5atEhctGiR+MADD4h9+/YV9+/f34wjcwXHDSIie2oZO4YMGSKGhYU163dJU3DcIEdhUIrcQllZmfjFF1+IDz74oNi5c2cRgPjss8+KoiiKu3btEgGIly9flu6/Zs0a8aabbhL37dsnAhD/97//SbetX79e3LZtm3S9rgHi4MGDokajsWtTFEVxzJgx4pw5c+weV1RU1OznU1xcLK5Zs8auTwDEEydONLstURTFd955R7o8bdo08cknnxRFURT37dsnDWhERJ5ETePGd999J/r4+IgGg8Fu+7p168TAwEC7vjYVxw0iotrcfewwGo2iRqMR77rrruY/+UZw3CBH4fQ9cmmlpaX4888/cdVVV+Hee+/FvffeC4vFgn/84x9Yvnw5nnvuOezcuRNeXl5ISkqSHnfp0iV0794dv/zyCwRBQFxcnHTbuHHjGt3v1q1b4ePjgzZt2thtj4qKws8//yxdb9euHQIDA5v9vN555x0cOnQIP/74IwDg4sWLAICcnBzExsY2u71Zs2ZJl3fu3CmtGtK7d+9a9x0+fDi2bdvW7H0QEbkDNY4bO3bsQL9+/WpNwxg/fjymT5+OpUuX4tNPP21Wmxw3iIiuUMvYcenSJVitVsTExDR4v23btmH48OGNtmeL4wY5CoNS5NIuXryI//znP3j55ZelbVqtFosXL8b777+PEydOQBAEmM1mzJo1Czqd/Vu6et6z2IxFJrdv3w6LxQKDwQCLxQKtVivdVl5eDrPZLF23XZ2jqY4dO4aEhATMnTtX2paZmYlNmza1uth5bm4ujh07Vm9BxqNHjyIsLKxV+yAicmVqHDdSU1Pr/LtutVphMplQWlra7DarcdwgIlLP2BEWFlZrQYyacnNzsW/fvmYHpWwfz3GD5MTV98jlbd68GVar1W6bl5cXAgICEB0djaFDh0IURRw+fNjuPjt37sSQIUNgtVpx/Phxu9t+/fVX6XL1AGCxWABUnjm44YYbYLVacf78ebvHnTp1CkOGDGnV8/nss89w55132m1r164dALQoKGUymaQzKTt27ECXLl0QGRkJANiyZQuOHDkiXX722WcREhKC9evXt+YpEBG5NDWNGxUVFfjtt98wePDgWrd99dVXKC8vx/jx45vVJscNIqLa1DB26HQ6jB07FqmpqXXebrVasXTpUsyYMaNZ7XLcIEdiUIpc3r59+/Dcc8+hoqJC2vb2229j1KhRaN++Pfr27YtJkybhww8/lG7/888/kZqaioEDB2L8+PFYtmyZdFtBQQE2bdokXY+NjYVWq0VGRgZKSkoQGhqKgQMH4u6778bnn38u3S8jIwPHjh3DvHnzAFQut1pz4GrMihUrcM0119RaLSMwMBDe3t61glKfffYZunbtiry8vHrb/PjjjzFq1CiUlZVh8+bNUoDLaDTip59+QkJCAgDgr3/9KwRBwHPPPYe77rqrWf0mInInaho30tPTYTQaawWl0tPT8dhjj+Hhhx/GpEmTpO0cN4iIWkYtY8cbb7yBP//8E4sXL7bbfuHCBSQmJuKRRx6xy7ziuEFKE8Tm5BgSOVl2djZWrFiBW265BStWrJDSWMPDw7FkyRLo9XoAldH7f/7zn8jLy0Pbtm0RFBSEZ555BjqdDkajES+88AKysrLQrVs36HQ6PPPMM/D395f289Zbb2Hr1q2IjY3Fq6++isDAQJhMJsyfPx+FhYXQaDQoKSlBYmIiunfvjuTkZCxatAiHDh3C8OHDMW3aNNx///31Po/09HQkJiZix44dSEhIwPr16xEfHw8A2LhxI15//XWkpKQgMjISN998M5KSkiAIAlatWoVnnnkGSUlJuP322+ts++DBg5g/fz569OiB8ePHY8WKFQgNDYUoinj88celsxhWqxXXXnstDhw4IMtrQ0TkitQybmRmZmLevHn47bffcPLkSYwfP146y15QUICysjI8/vjjmDhxot3jOG4QETWfWsaOajk5OXj55Zdx/PhxdOzYEUFBQYiKisLjjz+OgIAAu/ty3CClMShF5OIKCwvx008/tfpswx9//IE33ngDSUlJ+L//+z+MGjVKph4SEZEr4bhBRETNwXGDlMTpe0Qubtu2bejbt2+r22nbti30ej2Sk5MxdOhQGXpGRESuiOMGERE1B8cNUhIzpYhcmMFgwNKlS/HCCy8o3RUiInIDHDeIiKg5OG6Q0hiUInJhf/75JwICAtC2bVulu0JERG6A4wYRETUHxw1SGoNSRERERERERETkdKwpRURERERERERETsegFBEREREREREROZ1O6Q7Ux2q14ty5cwgMDIQgCEp3h4hINURRRHFxMaKioqDRqOvcBMcOIiL5cdwgIqLmaurY4bJBqXPnzqFjx45Kd4OISLWys7MRHR2tdDdkxbGDiMhxOG4QEVFzNTZ2uGxQKjAwEEDlEwgKCmpRG5MmTcKXX37Z4j6IJhPuHj8ea957H4JW2+J27nv0ESS//0GLHy9HG6LFgr8/9ij+8/XXELy8WtWX1h5XtuGYNlypL2zDdfsyadIkrFy5Eh07dpT+zqpJ9XMaOXIkdDodJkyYgIkTJzb58XIcY44dtbnK+9+V+sI2XLcvbOOKdevW4auvvsLevXtx6dIlVY8b/M0hXxtqGzvU1IYr9YVtuG5fnP2bw2WDUtXpsw899BC8vLxw77334t57721WG15eXi0eXIDKAcJLp0NwSAgEXcsPlZeXF4LbtGnx4+VoQzSb4aXTISgoqNVBqdYeV7bhmDZcqS9swzX7snbtWvzxxx94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ERERERERETkdg1JEREREREREROR0DEoREREREREREZHTMShFREREREREREROx6AUERERERERERE5HYNSRERERERERETkdAxKERERERERERGR0zEoRURERERERERETsegFBEREREREREROR2DUkRERERERERE5HQMShERERERERERkdP9PzvxeA6yj/sDAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, axs = plt.subplots(ncols=3, figsize=(12, 3))\n", "for ax, name in zip(axs, [\"A\", \"B\", \"C\"]):\n", " ax.plot(\n", " baseline.index,\n", " baseline[\"GrossOutput\", name],\n", " color=\"grey\",\n", " linewidth=1,\n", " label=\"Baseline\",\n", " )\n", " ax.plot(\n", " shocked.index,\n", " shocked[\"GrossOutput\", name],\n", " color=\"tab:red\",\n", " linewidth=2,\n", " label=\"Shocked\",\n", " )\n", " ax.axvspan(10, 40, color=\"tab:red\", alpha=0.1)\n", " ax.set_title(rf\"Sector ${name}$, $x_t$\")\n", " ax.legend()\n", "fig.suptitle(r\"Supply shock to sector $A$ propagates downstream\")\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Replicating the paper's results using data\n", "\n", "The Pichler et al. (2022) calibration uses the WIOD UK 2014 55-sector\n", "input-output table, the IHS Markit critical-input matrix, and ONS\n", "inventory-target ratios. Neither WIOD nor IHS Markit can be\n", "redistributed inside this package; users must obtain them under their\n", "own licence terms.\n", "\n", "**The cells below execute only when the `PICHLER2022_DATA_DIR`\n", "environment variable points to a replication directory; otherwise\n", "they no-op and the rendered public docs show no output for this\n", "section.** Set the variable to the parent of `data/` and re-run." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Data sources\n", "\n", "Layout expected by `from_wiod_uk`:\n", "\n", "```\n", "$PICHLER2022_DATA_DIR/\n", "└── data/\n", " ├── io_data_detail/\n", " │ ├── GBR_A.csv # WIOD 55-sector A matrix\n", " │ ├── GBR_Z.csv # intermediate consumption Z\n", " │ ├── GBR_x.csv # initial gross output\n", " │ ├── GBR_lab.csv # labour compensation\n", " │ ├── GBR_cap.csv # capital / profits\n", " │ ├── GBR_f.csv # final demand\n", " │ ├── GBR_f_imported.csv # imported final demand\n", " │ ├── GBR_consumer_taxes.csv\n", " │ ├── GBR_firm_taxes.csv\n", " │ ├── GBR_other_expenses.csv\n", " │ └── GBR_Z_imports.csv\n", " ├── IHS_matrices_processed/\n", " │ └── A.essential2.csv # IHS Markit critical-input mask\n", " ├── ons_table_ratio_inv_go.csv # ONS inventory-target days\n", " └── shocks/\n", " └── shock_scenarios.csv # pandemic supply-shock series\n", "```\n", "\n", "- **WIOD 2016 release (2014 reference year)**: as of 2026 the canonical\n", " project page redirects intermittently; the FIGARO release from\n", " Eurostat is a successor product with comparable structure.\n", "- **IHS Markit critical-input matrix**: published as supplementary\n", " material with Pichler et al. (2022); check the journal's\n", " replication archive on Zenodo.\n", "- **ONS inventory ratios**: ONS public release." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "execution": { "iopub.execute_input": "2026-05-28T11:36:43.250088Z", "iopub.status.busy": "2026-05-28T11:36:43.249988Z", "iopub.status.idle": "2026-05-28T11:36:43.260674Z", "shell.execute_reply": "2026-05-28T11:36:43.260180Z" } }, "outputs": [], "source": [ "DATA_ROOT = os.environ.get(\"PICHLER2022_DATA_DIR\")\n", "HAS_DATA = DATA_ROOT is not None and Path(DATA_ROOT).is_dir()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Construct the 55-sector calibration from CSV and attach the paper's\n", "pandemic shock scenario. Skipped when `PICHLER2022_DATA_DIR` is\n", "unset." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "execution": { "iopub.execute_input": "2026-05-28T11:36:43.262379Z", "iopub.status.busy": "2026-05-28T11:36:43.262189Z", "iopub.status.idle": "2026-05-28T11:36:44.894532Z", "shell.execute_reply": "2026-05-28T11:36:44.894108Z" } }, "outputs": [], "source": [ "if HAS_DATA:\n", " data_dir = Path(DATA_ROOT) / \"data\" / \"io_data_detail\"\n", " ihs_dir = Path(DATA_ROOT) / \"data\" / \"IHS_matrices_processed\"\n", " inv_file = Path(DATA_ROOT) / \"data\" / \"ons_table_ratio_inv_go.csv\"\n", " shock_csv = Path(DATA_ROOT) / \"data\" / \"shocks\" / \"shock_scenarios.csv\"\n", " fd_csv = data_dir / \"GBR_f.csv\"\n", "\n", " params = ParametersPichlerEtAl2022DIO.from_wiod_uk(\n", " data_dir=data_dir, ihs_dir=ihs_dir, inv_file=inv_file\n", " )\n", " scenarios = ScenariosPichlerEtAl2022DIO.from_shocks_csv(\n", " parameters=params, shock_csv=shock_csv, final_demand_csv=fd_csv\n", " )\n", " full_model = PichlerEtAl2022DIO(parameters=params, scenarios=scenarios)\n", " full_model.simulate(scenario=0)\n", " baseline_full = full_model.variables.to_pandas()\n", " full_model.simulate(scenario=1)\n", " shocked_full = full_model.variables.to_pandas()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Aggregate gross output, baseline vs pandemic shock, normalised to\n", "pre-shock levels. Reproduces the qualitative shape of Pichler et al.\n", "(2022) Figure 4." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "execution": { "iopub.execute_input": "2026-05-28T11:36:44.895681Z", "iopub.status.busy": "2026-05-28T11:36:44.895587Z", "iopub.status.idle": "2026-05-28T11:36:45.040626Z", "shell.execute_reply": "2026-05-28T11:36:45.040221Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxUAAAEhCAYAAAAJaY2YAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAAW3tJREFUeJzt3XlcVFX/B/DPZWbYlEUWUUQRc8HUXBIl/aVZai6ZW4Zmbj1pZe5maj6p5YO5V7ZpPi6kRDyVppaZueEKUm6Ju6KCCIiyI8vMnN8fONcZ2QYYGGA+79eLl8yZy7nfexkv851zzvdKQggBIiIiIiKiMrIydwBERERERFS9MakgIiIiIqJyYVJBRERERETlwqSCiIiIiIjKhUkFERERERGVC5MKIiIiIiIqFyYVRERERERULkwqiIiIiIioXJhUEBERERFRuSjNHQAREQF5eXm4ePEikpKS8NRTT8HV1bVM/SQlJeHGjRvIyspCt27dTBxl1XTz5k3ExcWhdu3aaNOmjbnDISKySBypIDKD48eP4+WXXzZ3GFSFJCcn46uvvsLzzz+Pf/75p8z9/P3335gyZQpGjx5t0C6EwMKFC/HBBx+gc+fOCA8PL2/IBubOnYsWLVogOzu7xG1//fVXuLm54fTp0ybZ92+//YZXX30VK1euLHa7ZcuWoXPnzpAkCU2aNMHYsWMxZswYDBo0CL169cJvv/1mEGPfvn2hVCrh4OCAUaNGydv36NED77zzDhISEuTtN27ciOeffx6SJMHW1hZ9+/bFokWLynxMkZGR6N27t9zf0KFDkZiYiFu3bmHQoEFQqVRQKBQYMGAAoqKiAABhYWFo2bIlJElC9+7dcfPmTYwYMQI+Pj7yMY8YMQI5OTkG+9qyZQuGDx+OWbNm4b333sPIkSPxxx9/GGyTmpqKgIAA1K9fH5IkoXfv3hg7dixGjx6NF198Ef369TP6NTVmzBg88cQTkCQJTzzxBMaMGSM/t2HDBrRp0waSJMHf3x+7du0y+F0olUr069cPv/76q/wzy5cvhyRJcHJywqBBg0rc/88//4wpU6Zg2LBh6Nq1a4FjTUtLw/jx47Fo0SJMmjQJCxcuhBDCYBshBPbt24fu3buXuL8tW7Zg8eLFJW5HVO0JIqp0EydOFEqlUty9e9fcoVSYqVOnmjuEAiojpvLuw8vLSxw4cKBcfezdu1d4e3sbtH377beid+/eQgghxo8fL/bv31+ufTzuww8/FK1atRIPHjwwaC/sfOzatUvUr19fnD592mT7//e//y3GjBlT4nYajUYAEMuWLTNoP336tFCpVGLdunUG7c8++6zo37+/QVtubq7o1auXaNq0qcjMzDR4rmHDhmLUqFFlO4hC9OjRQzRt2rRA+5tvvilq164tsrOzDdpzcnIK7H/fvn0CQIHfeV5ennj11VfFiBEjDH5vycnJomfPnmLmzJkF9rt+/XoBQCQmJhq0Hz58WLi5uYmQkBCjjmv//v2FxqSL64UXXijQ/uyzz4pu3boVaL9z547o1auXUdfT/fv3i/Xr18uPN2/eLKysrAz+z73yyiti8eLF8uPevXuLVatWyY9DQ0PFmDFjxNChQwv8P3vc3bt3hZubm1iwYEGJsRFVdxypIKpkGo0Gd+/ehVqtxk8//WTucCpEUlISLly4YO4wDFRGTKbYh0KhKHcchfURHh6Ozp07AwC+/fZb9OjRo9z70ffxxx/j3LlzsLW1lduKOh99+/ZFXFwc2rZta7L9G3verKzy/+xJkmTQ3rZtWzz77LN4//33odVqC2yvT6VS4Z133sHVq1fx559/Fui/sJ8pqyFDhuDq1avyaIROhw4dkJGRgb179xq0R0ZGYsSIEQViAgoe80cffYQTJ05g06ZNBr83Z2dnhISE4Ouvv8a3335rVF//93//hy+//BJvvPEGrl27VuJx6X7+8X4AQKlUwsvLq0C7lZVVge3v3r2LwMBA/PLLL3Bzcytxvxs2bMDq1avlEbXXX38d9erVw/LlywEA165dw08//WQw0jd69GisXLlSHq149dVXsWnTJrz00ksl7u+LL76Aj49PidsR1QRMKogq2f79+zFhwgR07doVoaGh5g7H5OLj4/HWW28VmGJhTpURU1U8bn0ajcakb3ZLUtXPR2E8PDyQnJyMe/fulbhtYmKi/DMVafDgwZAkCVu3bjVov3XrFpydnQu079+/Hy+88EKJ/SYkJGDFihWYOHEirK2tCzzv5uaGUaNG4cMPPzRqShsADBs2DLVq1cLSpUuN2r68kpKSsGjRIixduhT29vZG/Yy7uzvS0tIMEsdGjRrJidC+ffvg5OSEBg0ayM+3atUKt2/fxuXLl0sV359//omuXbsaHRtRdceF2kSV7MiRI1iw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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "if HAS_DATA:\n", " agg_baseline = baseline_full[\"GrossOutput\"].sum(axis=1)\n", " agg_shocked = shocked_full[\"GrossOutput\"].sum(axis=1)\n", " norm = agg_baseline.iloc[0]\n", " fig, ax = plt.subplots(figsize=(8, 3))\n", " ax.plot(\n", " agg_baseline.index,\n", " agg_baseline / norm,\n", " color=\"grey\",\n", " linewidth=1,\n", " label=\"Baseline\",\n", " )\n", " ax.plot(\n", " agg_shocked.index,\n", " agg_shocked / norm,\n", " color=\"tab:red\",\n", " linewidth=2,\n", " label=\"Pandemic shock\",\n", " )\n", " ax.set_title(r\"Aggregate output, half-critical PBL, WIOD UK 2014\")\n", " ax.legend()\n", " plt.tight_layout()\n", " plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Source\n", "\n", "Pichler, A., Pangallo, M., del Rio-Chanona, R.M., Lafond, F. & Farmer,\n", "J.D. (2022). Forecasting the propagation of pandemic shocks with a\n", "dynamic input-output model. *Journal of Economic Dynamics and\n", "Control*, 144, 104527.\n", "[https://doi.org/10.1016/j.jedc.2022.104527](https://doi.org/10.1016/j.jedc.2022.104527)" ] } ], "metadata": { "jupytext": { "formats": "ipynb,py:percent" }, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.13.5" } }, "nbformat": 4, "nbformat_minor": 4 }