model 02 — Bank of England structural VAR · boe-svar · UK · hosted
Explain UK growth and inflation.
Decompose UK GDP and inflation into six structural shocks, forecast with credible bands, and explain revisions between quarters.
The Bank's own empirical lens, replicated in the open.
In July 2025 the Bank of England published Macro Technical Paper No. 3 — A structural VAR model for the UK economy — with no replication package. This project re-implements the full pipeline in Python: data assembly from public sources, Bayesian estimation, identification, and every output figure, validated against the paper's published results.
Within the suite it is the empirical, time-series member — and the baseline/conditioning member. It imposes just enough structure to name the shocks hitting the economy and to say how uncertain the baseline is, before you simulate changing it with the structural members.
papers/boe-svar/figures/current_forecast.json.Eight variables, six named shocks.
A VAR in eight quarterly variables — three global, five UK — estimated over the inflation-targeting era — 1992Q1–2025Q1 in both the paper replication and the hosted adapter. The hosted forecast conditions on observations through 2026Q1, but does not re-estimate its coefficients on those later observations. It is estimated in levels, with p = 4 lags and Covid dummies for 2020Q1–2021Q2.
| block | variables |
|---|---|
| Global | World GDP · World CPI (both UK-trade-weighted) · real oil price in sterling |
| UK | Bank Rate · sterling exchange-rate index · CPI · CPI energy · real GDP |
Estimation is Bayesian with a Minnesota (normal-inverse-Wishart) prior plus sum-of-coefficients and dummy-initial-observation priors. Identification follows Arias–Rubio-Ramírez–Waggoner (2018): zero restrictions make the UK a small open economy (UK shocks cannot move world variables on impact) and impact sign restrictions name six structural shocks — world demand, world energy, world supply, UK demand, UK supply, and UK monetary policy. Two unidentified shocks absorb residual volatility. Importance weights correct the sampler's non-uniformity and the Chan–Matthes–Yu (2025) permutation search cuts rejections.
This is accept/reject sampling. The production run drew 10,000 posterior (Π, Σ) draws, of which 751 passed the sign restrictions (7.5%), for an importance-weighted effective sample size of 355.9 — so medians and bands are correct but noisier than the paper's. The hosted forecast conditions on the current vintage — data through 2026Q1 — with a 2,000-draw default (135 accepted, ESS 65.3), while retaining the 2025Q1 coefficient-estimation endpoint.
Estimate, identify, decompose.
The package installs straight from GitHub with the prepared quarterly
dataset inside, so boe_var.data.load_data() works
immediately with no credentials. Every input series is public: ONS
(CPI, CPI energy, real GDP), Bank of England (Bank Rate, sterling
ERI), and FRED (oil, exchange rates, world components).
pip install git+https://github.com/PolicyEngine/boe-var-modelThe runner scripts are for development — clone the repository to rebuild the dataset or regenerate the paper outputs:
python scripts/download_data.py # reassemble the public data
# the paper's core outputs: IRFs, FEVDs, shocks, historical decompositions
python scripts/run_replication.py
# the forecasting toolkit: fan charts, latest-quarter shock distributions,
# composite IRFs, and the forecast-revision decomposition
python scripts/run_forecast_revision.py
outputs land in results/ — the replication figures
(fig2–fig6) plus the forecast figures (fig1, fig7–fig9) and two
summary reports. runtime scales with draw count; the importance
weights are the expensive part, since each needs a numerical Jacobian
per accepted draw.
What's happening now, and why.
Four tools, all posterior distributions rather than point estimates:
| tool | what it tells you |
|---|---|
| IRFs & FEVDs | How each named shock propagates through the UK economy, and how much of GDP and inflation variance each explains at every horizon. |
| Historical decompositions | Which shocks drove each episode — how much of the 2022 inflation surge was world energy versus UK demand. |
| Fan-chart forecasts | Unconditional forecasts with 68% and 90% credible bands, plus the probability that each shock hitting the latest quarter was positive or negative. |
| Forecast-revision decomposition | The paper's Section 5 exercise: why did the forecast change since last quarter? Splits the revision into news (new shocks) and reassessment via composite impulse responses. |
In the current 2026Q1 round the tool reads the latest quarter as most likely hit by negative world-demand (probability 0.71) and world-energy (0.90) shocks, against positive UK demand (0.81) and expansionary monetary policy (0.84); the composite effect revises the year-on-year path by +0.27pp on GDP growth at impact and +0.22pp on CPI inflation at its peak three quarters out.
Replicates the paper; beat by outturn on its own frozen forecast.
Two independent checks. First, against the published paper: Figures 2–6 replicate and the headline variance decompositions land on the paper's benchmarks. Second — and rarer — the 2024Q2-frozen forecast study can be scored against ONS outturns that have arrived since, a genuine out-of-sample test that only exists because the data edge is frozen.
| check | this replication | the paper |
|---|---|---|
| Global shocks' share of UK GDP variance (1 year) | 42.1% | ~40% |
| Global shocks' share of UK CPI variance (1 year) | 49.5% | ~50% |
| IRFs, FEVDs, shocks, historical decompositions | Figures 2–6 replicate | qualitative match |
| Out-of-sample forecast error, 2024Q3–2026Q1 | 0.32pp RMSE for both GDP growth and CPI inflation | no published counterpart |
| 68% band coverage over the same seven quarters | 14 of 14 outturns inside | — |
| Forecast-revision adding-up identity | exact per draw (max abs error 5.23e-12) | holds by construction |
The honest reading of the forecast score: the model was right that the 2025 inflation hump would mean-revert and wrong about its peak, by up to 0.6 points — outturns of 3.5 and 3.8% against medians of 3.2%, inside the 68% band but on its upper half. It never saw the Ofgem cap increases, food inflation, or the April 2025 administered price rises. Charts and source data in validation; full quarterly scorecard in the working paper.
This is an independent replication built from Bank of England Macro Technical Paper No. 3 and public data. It is not produced, maintained, or endorsed by the Bank of England, and its results should not be presented as Bank of England estimates.
Where this departs from the Bank's model.
| limit | detail |
|---|---|
| Frozen data edge | Coefficient estimation to 2025Q1; conditioning data to 2026Q1 (refreshed July 2026). Results shift with data revisions. The replication claims are scored on the extended 1992Q1–2025Q1 sample, not the paper's original 1992Q1–2023Q2 window. |
| Proxied world aggregates | The Bank's internal UK-trade-weighted world GDP and CPI are unpublished, so they are rebuilt as chain-weighted US + euro-area + Japan + China aggregates with time-varying UK trade weights. |
| One ranking does not replicate | The paper ranks UK monetary policy as the largest domestic contributor to CPI variance; here UK supply (13.5%) exceeds monetary policy (10.1%). Attributed to the proxy world aggregates and the smaller accepted sample, and documented rather than tuned away. |
| Assumed lag length and simplified pandemic prior | p = 4 is assumed, not selected; the pandemic treatment is simplified to exogenous Covid dummies. |
| Sign-restriction critiques apply | Pointwise medians mix structural models (Fry–Pagan); the Haar prior over rotations is informative about impulse responses (Baumeister–Hamilton). These apply to the Bank's own outputs identically. |
every deviation is enumerated in the repository's
docs/methodology.md.
The paper, the code, the method.
| what | where |
|---|---|
| The source paper | Macro Technical Paper No. 3 — Brignone & Piffer, Bank of England, July 2025. |
| Companion paper | Brignone & Piffer, structural forecast analysis — the Section 5 forecast-revision method, later BoE Staff Working Paper No. 1,165 (January 2026). |
| Our working paper | papers/boe-svar — the full replication write-up, quarterly forecast scorecard, and enumerated deviations. |
| This replication | github.com/PolicyEngine/boe-var-model — code, prepared data, figures, and the annotated RESOURCES.md. |
| Method papers | Arias, Rubio-Ramírez & Waggoner (2018) — zero/sign identification · Chan, Matthes & Yu (2025) — permutation-search speedup · Giannone, Lenza & Primiceri (2015) — the prior framework. |
| Reference toolboxes | bsvarSIGNs (R, the exact Arias et al. machinery) · ECB BEAR · Cesa-Bianchi VAR-Toolbox — used in the independent econometrics review, which caught and fixed a genuine bias in the zero-restriction importance weights. |