documentation
Three models. One economy, read three ways.
MacroMod scores a policy reform for its effect on the whole economy. It does so with more than one model, because different questions call for different machinery. This is the reference: what each model is, how they differ, and when to reach for which.
Each model has its own reference page.
The OLG and OBR models take the same kind of input — a policy change — and report the same kind of output — its effect on macroeconomic aggregates. The structural VAR is the empirical member: it reads the current state of the economy and forecasts it, rather than scoring reforms. Start with the model that matches your question, or read on for the comparison.
Overlapping generations
A structural general-equilibrium model of 80 age cohorts. Best for long-run, behaviour-driven questions: how a tax change reshapes work, saving, and the capital stock over decades.
read the OG-UK reference → obrOBR macroeconometric model
A Python emulator of the OBR's own 372-equation forecasting model. Best for near-term fiscal multipliers scored the way the official forecaster scores them, quarter by quarter.
read the OBR reference → svarUK structural VAR
A Python replication of the Bank of England's 8-variable Bayesian SVAR. Best for reading the current state of the economy in structural-shock terms, short-run fan-chart forecasts, and forecast-revision narratives.
read the SVAR reference →Three model classes, side by side.
The models are complementary, not competing. One derives behaviour from first principles and answers where the economy settles in the long run; one reproduces the official forecaster's empirical system and answers what happens over the next few years; one imposes minimal theory and answers what is driving the economy right now.
| Overlapping generations (OG-UK) | OBR macroeconometric | UK structural VAR | |
|---|---|---|---|
| Model class | Dynamic general equilibrium (OLG) | Structural macroeconometric (simultaneous equations) | Bayesian structural VAR (time series) |
| Behaviour comes from | Optimising households and firms | Estimated empirical relationships | The data, with zero + sign restrictions naming the shocks |
| Solved by | Steady-state root-find and transition-path iteration | Gauss–Seidel over ~370 equations per quarter | Posterior sampling + Arias–Rubio-Ramírez–Waggoner identification |
| Horizon | Decades — long-run steady state + 60-year path | Quarters to a few years | The recent past and the next few years |
| Best for | Long-run incentives: labour supply, saving, the capital stock | Near-term fiscal multipliers and Budget-style scoring | What's happening now and why; short-run forecasts with credible bands |
| Reform enters as | A PolicyEngine policy → estimated tax functions | A shock to an exogenous model variable | — (no reform scoring yet; planned) |
| Anchored to | ONS, OBR, Bank of England national accounts | The OBR Economic and Fiscal Outlook | Public ONS, Bank of England, and FRED series, 1992Q1–2023Q2 |
| Runtime | ~5–15 min (steady state); ~1–1.5 h (transition path) | Seconds to minutes per scenario | Minutes per full estimation + identification run |
Match the model to the question.
- "How does this tax change affect growth and the deficit over the next 3–5 years?" — the OBR model. It's built for near-term fiscal scoring and speaks the same language as the official forecast.
- "What does this reform do to work incentives, saving, and the long-run size of the economy?" — the OLG model. It captures how households of every age re-optimise over their lifetimes.
- "What's driving GDP and inflation right now — and why did the forecast change since last quarter?" — the structural VAR. It decomposes the current data into named structural shocks, forecasts with credible bands, and splits a forecast revision into news and reassessment.
- "I want both the transition and the destination." — run both scoring models. They report comparable real-world aggregates, so you can read the near-term multiplier against the long-run equilibrium.
What the models have in common.
For the scoring engines, the shape of the work is the same: build a reform, solve baseline and reform, read the difference in real-world quantities — GDP, consumption, investment, revenue. The OLG model expresses the reform as PolicyEngine statute translated into tax functions; the OBR model expresses it as a shock to an exogenous variable. Both report the deviation from a baseline anchored to official data, so a result is always "relative to current forecast", never a raw level to be misread. The structural VAR sits upstream of that loop: it establishes the empirical starting point — which shocks the economy is currently absorbing — from the same public official data.
OG-UK reference · OBR model reference · SVAR reference · Run a model →