Summary
MacroMod has a strong transparent-model foundation, but it is not yet one coherent modelling platform. It currently exposes five distinct models through a partially shared CLI/MCP layer, while parts of the website and README imply stronger reform support, comparability, accessibility, and validation than the implementations support.
The recommended direction is:
Question in, appropriate model out — with evidence, assumptions and limitations attached.
Before adding another large structural model, fix four foundations:
- A single capability and provenance registry.
- Truthful model-specific access and status labels.
- A result schema that distinguishes genuinely comparable quantities.
- End-to-end benchmark tests that run the actual models.
This issue consolidates the full repository, implementation, comparison, website, validation, additional-model, and UK-HANK audit performed on 20 July 2026.
P0: correctness and trust
SVAR estimation window
Evidence:
svar/index.html:108-112, 142-148, 337-338
integration/src/policyengine_macro/core.py:643-650 fixes estimation through 2023Q2.
integration/src/policyengine_macro/mcp_server.py:231-238 already describes the hosted behaviour more accurately.
FRB-US installation
Evidence:
integration/pyproject.toml:22-33
integration/src/policyengine_macro/core.py:310-333
- Modal succeeds only because it clones and editable-installs the repository in
integration/modal_app.py.
Product positioning
Suggested replacement:
Each model answers a different class of economic question. MacroMod provides a common way to discover, run and interpret them while preserving each model's assumptions, evidence and outputs.
Relevant files:
README.md:16-24
models/index.html:54-57
docs/index.html:88-109
integration/src/policyengine_macro/core.py:1857-2001, 2225-2229
Mobile website
Evidence:
style.css:166, 300, 322
- Homepage and validation fail at a 390px audit viewport.
Model-by-model status
PolicyEngine microsimulation
Best for deterministic household tax-benefit calculations and population distributional scoring.
Current gaps:
Recommended status: Production-ready for selected household applications.
OBR macro model
Best for selected UK fiscal and macroeconomic scenarios over several years.
Current gaps:
Recommended status: Validated for selected scenarios.
Bank of England structural VAR
Best for empirical shocks, forecasts, forecast revisions, and posterior uncertainty.
Current gaps:
Recommended status: Validated replication for selected outputs.
FRB-US
Best current software-replication evidence and useful for US impulse-response analysis.
Current gaps:
Recommended status: Validated replication with important scope limits.
OG-UK / PSL OLG
Best for long-run behavioural and general-equilibrium mechanisms.
Current gaps:
Recommended status: Research prototype / experimental.
OG-to-microsimulation overlay
Evidence:
integration/src/policyengine_macro/assumptions.py:60-80, 101-118, 169-179
integration/src/policyengine_macro/core.py:2033-2139
Build a capability registry
The website, CLI, MCP service, and documentation should read from one registry.
For every model store:
model_id
display_name
model_class
geography
supported_question_types
supported_inputs
supported_outputs
unsupported_questions
time_horizon
data_vintage
estimation_sample
runtime
access_method
uncertainty_method
validation_status
limitations
package_version
source_commit
Common result and comparison contract
Current ScoreResult lacks enough metadata to support trustworthy comparison.
Add:
analysis_type
model_id
model_version
package_version
country
baseline
baseline_vintage
data_vintage
estimation_sample
run_at
scenario
horizon
validation_status
warnings
provenance
Every quantity should include:
name
value
units
price_basis
time_basis
geography
baseline_definition
uncertainty
comparability_status
Use three comparability states:
Suggested comparison note:
These results describe different horizons and mechanisms. They should be interpreted together, not averaged or ranked.
Website and information architecture
Navigation and routes
Models
Validation
Papers
Accessibility verification
Existing strengths include skip links, visible focus styling, semantic captions, and scoped table headers.
Still required:
Testing and reproducibility
Audit result:
- Plain
pytest could not collect because the integration package and MCP dependency were not installed in the audit environment.
- With
PYTHONPATH=src, the executable subset returned 87 passed, 39 skipped, and two environment-related failures.
- PR CI skips real model solves.
- The nightly contract suite does not run a complete benchmark for every model.
Actions:
Minimum benchmark matrix:
| Model |
Required benchmark |
| PolicyEngine |
Selected household statute cases plus population aggregate reconciliation |
| OBR |
Anchored forecast, free-running result, and one scenario for each supported closure |
| SVAR |
Fixed-vintage estimation, forecast bands, and shock-identification benchmark |
| FRB-US |
Clean wheel installation and selected pyfrbus impulse-response comparison |
| OG-UK |
Achieved calibration targets, solver residuals, and one published external reform benchmark |
Recommended models to add
1. BoE SC-MIDAS nowcaster
Priority: first.
Why:
- Fills the within-quarter UK GDP nowcasting gap.
- Fast enough for hosted use.
- Interpretable release-cycle weighting.
- Supports meaningful pseudo-real-time validation.
Source: https://www.bankofengland.co.uk/macro-technical-paper/2025/nowcasting-gdp-at-the-bank-of-england-a-staggered-combination-midas-approach
Implementation:
2. ONS input-output model
Priority: second.
Why:
- Adds sector, supply-chain, GVA, imports, and public-investment analysis.
- Official source tables.
- Transparent matrix implementation.
- Fast hosted execution.
Source: https://www.ons.gov.uk/economy/nationalaccounts/supplyandusetables/methodologies/inputoutputanalysistooluserguide
3. BoE estimated UK DSGE
Priority: investigate after the two smaller additions.
Source: https://www.bankofengland.co.uk/-/media/boe/files/macro-technical-paper/2025/decompositions-forecasts-and-scenarios-from-an-estimated-dsge-model-for-the-uk-economy.pdf
Why:
4. UK-HANK
Priority: strategic research programme, not a quick model addition.
The Bank of England published A UK-HANK model, Macro Technical Paper No. 7, on 27 March 2026. It is not an OBR model.
Source: https://www.bankofengland.co.uk/macro-technical-paper/2026/a-uk-hank-model
Why:
- Monetary transmission by renters, mortgagors, and outright owners.
- Distributional effects of interest rates and house prices.
- Household balance-sheet channels.
- Fiscal-monetary interactions.
- Better macro/distribution integration than the current wage overlay.
5. SimPaths
Source: https://github.com/centreformicrosimulation/SimPaths
Why:
- Dynamic life-course employment, household formation, health, and wealth.
- Useful for demographic and intergenerational questions.
Constraint: Java/Stata stack and restricted inputs. Start with local/asynchronous or precomputed scenarios.
Deprioritise NiGEM
Source: https://niesr.ac.uk/access-nigem
NiGEM is useful for global spillovers but commercially licensed. It does not fit an open hosted platform without a commercial agreement.
UK-HANK data feasibility
UK panel data exist, but the main calibration microdata cannot be redistributed openly.
The Bank paper uses:
- ASHE 1993–2016 for the earnings-risk process; ASHE is described as a stable 1% employee panel.
- Wealth and Assets Survey for income and wealth distribution comparisons.
- ONS national accounts, effects-of-taxes-and-benefits data, input-output tables, CPIH, and English Housing Survey aggregates.
Sources:
Practical design:
UK-HANK implementation plan
Phase 0: access and licence gate, 2–4 weeks
Phase 1: reproducibility shell
Phase 2: household block
Phase 3: aggregate blocks
Phase 4: validation
Phase 5: product integration
Delivery sequence
Sprint 1: trust and correctness
Sprint 2: one platform contract
Sprint 3: real validation
Sprint 4: useful expansion
Definition of done
A visitor or API client can determine, before running anything:
- What question each model can answer.
- What it cannot answer.
- Whether the relevant capability is hosted, local, package-only, or experimental.
- The data and estimation vintages.
- The baseline and scenario definitions.
- The model/package/source versions.
- The runtime.
- The uncertainty method.
- The validation evidence for that specific use.
- Whether results from two models are genuinely comparable.
A clean installation can execute the documented examples, and every deployed model has at least one real, version-pinned benchmark running automatically.
Summary
MacroMod has a strong transparent-model foundation, but it is not yet one coherent modelling platform. It currently exposes five distinct models through a partially shared CLI/MCP layer, while parts of the website and README imply stronger reform support, comparability, accessibility, and validation than the implementations support.
The recommended direction is:
Before adding another large structural model, fix four foundations:
This issue consolidates the full repository, implementation, comparison, website, validation, additional-model, and UK-HANK audit performed on 20 July 2026.
P0: correctness and trust
SVAR estimation window
estimation_start,estimation_end,data_edge, andforecast_originto every SVAR result.Evidence:
svar/index.html:108-112, 142-148, 337-338integration/src/policyengine_macro/core.py:643-650fixes estimation through 2023Q2.integration/src/policyengine_macro/mcp_server.py:231-238already describes the hosted behaviour more accurately.FRB-US installation
policyengine-macro[models]installation produce a usable FRB-US model.model.xmlandLONGBASE.TXTas runtime package data, or remove FRB-US from the generic extra and document a separate supported installation.Evidence:
integration/pyproject.toml:22-33integration/src/policyengine_macro/core.py:310-333integration/modal_app.py.Product positioning
Suggested replacement:
Relevant files:
README.md:16-24models/index.html:54-57docs/index.html:88-109integration/src/policyengine_macro/core.py:1857-2001, 2225-2229Mobile website
body { overflow-x: hidden; }as a way to conceal broken reflow.Evidence:
style.css:166, 300, 322Model-by-model status
PolicyEngine microsimulation
Best for deterministic household tax-benefit calculations and population distributional scoring.
Current gaps:
Recommended status: Production-ready for selected household applications.
OBR macro model
Best for selected UK fiscal and macroeconomic scenarios over several years.
Current gaps:
CGG,TCPRO, andCGIPS.Recommended status: Validated for selected scenarios.
Bank of England structural VAR
Best for empirical shocks, forecasts, forecast revisions, and posterior uncertainty.
Current gaps:
Recommended status: Validated replication for selected outputs.
FRB-US
Best current software-replication evidence and useful for US impulse-response analysis.
Current gaps:
pyfrbusproves implementation agreement, not forecasting or causal accuracy.Recommended status: Validated replication with important scope limits.
OG-UK / PSL OLG
Best for long-run behavioural and general-equilibrium mechanisms.
Current gaps:
Recommended status: Research prototype / experimental.
OG-to-microsimulation overlay
Evidence:
integration/src/policyengine_macro/assumptions.py:60-80, 101-118, 169-179integration/src/policyengine_macro/core.py:2033-2139Build a capability registry
The website, CLI, MCP service, and documentation should read from one registry.
For every model store:
recommend_model,get_model_status, andlist_example_questions.Common result and comparison contract
Current
ScoreResultlacks enough metadata to support trustworthy comparison.Add:
Every quantity should include:
Use three comparability states:
Comparable
Related but not like-for-like
Not comparable
Do not put annual microsimulation revenue, cumulative OBR GDP, and OG steady-state GDP into one undifferentiated numerical table.
Refuse invalid comparisons.
For related results, explain differences in horizon, baseline, mechanism, units, and uncertainty.
Never average or rank structurally different model answers.
Suggested comparison note:
Website and information architecture
Navigation and routes
/compare/route, or consistently call/docs/Documentation.Models
Validation
Papers
Accessibility verification
Existing strengths include skip links, visible focus styling, semantic captions, and scoped table headers.
Still required:
Testing and reproducibility
Audit result:
pytestcould not collect because the integration package and MCP dependency were not installed in the audit environment.PYTHONPATH=src, the executable subset returned 87 passed, 39 skipped, and two environment-related failures.Actions:
pytestcollect.Minimum benchmark matrix:
pyfrbusimpulse-response comparisonRecommended models to add
1. BoE SC-MIDAS nowcaster
Priority: first.
Why:
Source: https://www.bankofengland.co.uk/macro-technical-paper/2025/nowcasting-gdp-at-the-bank-of-england-a-staggered-combination-midas-approach
Implementation:
2. ONS input-output model
Priority: second.
Why:
Source: https://www.ons.gov.uk/economy/nationalaccounts/supplyandusetables/methodologies/inputoutputanalysistooluserguide
3. BoE estimated UK DSGE
Priority: investigate after the two smaller additions.
Source: https://www.bankofengland.co.uk/-/media/boe/files/macro-technical-paper/2025/decompositions-forecasts-and-scenarios-from-an-estimated-dsge-model-for-the-uk-economy.pdf
Why:
Medium-term monetary and energy scenarios.
Structural decompositions.
Natural comparator for the SVAR and UK-HANK.
Ask the authors for code, calibration, estimation data, environment, licence, and benchmark outputs.
Choose official-code wrapper versus clearly independent implementation.
Do not claim exact replication without code and benchmark agreement.
4. UK-HANK
Priority: strategic research programme, not a quick model addition.
The Bank of England published A UK-HANK model, Macro Technical Paper No. 7, on 27 March 2026. It is not an OBR model.
Source: https://www.bankofengland.co.uk/macro-technical-paper/2026/a-uk-hank-model
Why:
5. SimPaths
Source: https://github.com/centreformicrosimulation/SimPaths
Why:
Constraint: Java/Stata stack and restricted inputs. Start with local/asynchronous or precomputed scenarios.
Deprioritise NiGEM
Source: https://niesr.ac.uk/access-nigem
NiGEM is useful for global spillovers but commercially licensed. It does not fit an open hosted platform without a commercial agreement.
UK-HANK data feasibility
UK panel data exist, but the main calibration microdata cannot be redistributed openly.
The Bank paper uses:
Sources:
Practical design:
UK-HANK implementation plan
Phase 0: access and licence gate, 2–4 weeks
Phase 1: reproducibility shell
Phase 2: household block
Phase 3: aggregate blocks
Phase 4: validation
Phase 5: product integration
Delivery sequence
Sprint 1: trust and correctness
Sprint 2: one platform contract
Sprint 3: real validation
Sprint 4: useful expansion
Definition of done
A visitor or API client can determine, before running anything:
A clean installation can execute the documented examples, and every deployed model has at least one real, version-pinned benchmark running automatically.