OBR anchoring is one EFO behind: October 2026 EFO (28 Oct) not yet incorporated
Los mantenedores suelen responder en 9 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 18/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- html, python
Línea de trabajo
Start by checking the status of obr-macroeconomic-model#53 and the #218 pin bump, since the issue makes those prerequisites for switching the adapter vintage. Then review integration/src/policyengine_macro/core.py and the listed site pages; done means October 2026 is the adapter default, while the track record keeps March for rounds before 28 October and selects the comparator per round. The issue also specifies a dated interim note for the OBR pages until the vintage updates.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
The OBR published the October 2026 EFO on 28 October 2026 (https://obr.uk/efo/economic-and-fiscal-outlook-october-2026/). The site and the hosted OBR adapter still anchor to the March 2026 EFO, so they are now one EFO behind. The OBR model code and variables listing is unchanged (15 Oct 2025), so only the data anchor is out of date. The model plan is in PolicyEngine/obr-macroeconomic-model#53.
Keep March 2026 here (do not update)
The forecast track record must keep March 2026 as its comparator: forecasts/score.py, forecasts/index.html and forecasts/scorecard.json, including the "OBR March 2026 EFO error 0.66pp" figure and the boe-svar vs EFO fan charts.
Every archived round predates 28 Oct. The official benchmark should be the official forecast available at that round's data edge. Switching those rounds to October would give the OBR comparator hindsight. Rounds archived after 28 Oct should use October. The comparator therefore needs a per-round field rather than the single OFFICIAL_LABEL constant (forecasts/score.py:280).
Out of date (will change once the vintage updates)
| Where | What |
|---|---|
integration/src/policyengine_macro/core.py ~293, ~3026–3069 |
data_vintage="March 2026 EFO", baseline="March 2026 EFO anchored baseline", CPI reference path (~3688–3768) |
integration/src/policyengine_macro/capabilities.py, mcp_server.py, cli.py |
vintage strings |
index.html:277 |
"Tracks the March 2026 EFO to 0.30% GDP MAPE … free-running 4.32%" |
assets/make_current_outlooks.py:34,37 |
"March 2026 OBR outlook" chart |
economy/topics/public-finances/index.html:119,125 |
baseline wording |
obr/index.html, obr/methodology/, obr/code/, obr/validation/, models/index.html |
vintage wording and scorecard figures |
papers/obr-macro/ |
describes the March 2026 paper; leave as dated unless re-run |
integration/tests/test_site_contract.py, test_adapter_contract.py |
pinned vintage strings |
What moves when it updates
- Every hosted OBR number: baseline levels, scored reforms, the 0.30% anchored MAPE and the 4.32% cold-run gap.
- The 4.32% is a closure artefact (GDPM is exogenous in the OBR's published model), not OBR forecast error. It will move with the vintage.
- Conditioning assumptions (from the EFO page's Table 2.1, to be confirmed from the workbook): oil about $63 → $82 a barrel, Bank Rate 3.4% → 4.0%, 10-year gilt 4.6% → 5.0%. This changes the baseline that every reform deviation is measured from.
- The FYCPR and CB rows depend on the obr-macroeconomic-model#42/#52 decision.
Order
- obr-macroeconomic-model#53 lands, opt-in, with March as the default.
- #218 pin bump. Every hosted OBR number already moves at this step.
- Switch the adapter default to October and update the strings above in one PR.
- Give the track record a per-round comparator vintage.
Until then, the honest interim fix is a dated note on the OBR pages: "Anchored to the March 2026 EFO; the October 2026 EFO (28 Oct) is not yet incorporated."
- Lenguaje dominante
- HTML
- Estrellas
- 3
- Forks
- 0
- Merge medio
- 8 d 15 h
- PR fusionados (30 d)
- 1
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de PolicyEngine/macro
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
PolicyEngine/macro#225 · 2 comentarios ·
Los mantenedores suelen responder en 9 días
-
question
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
PolicyEngine/macro#214 ·
Los mantenedores suelen responder en 9 días
-
bug documentation
Dificultad 1/5 1-3 horas Aptitud para principiantes 76/100
PolicyEngine/macro#211 · 1 comentario ·
Los mantenedores suelen responder en 9 días
-
question
Dificultad 5/5 Más de una semana Aptitud para principiantes 22/100
PolicyEngine/macro#227 · 4 comentarios ·
Los mantenedores suelen responder en 9 días
-
Nowcast can't archive a new round: the hosted forecast_uk is pinned to boe-var data ending 2026Q1Abiertodata question
Dificultad 4/5 3-5 días Aptitud para principiantes 34/100
PolicyEngine/macro#224 · 3 comentarios ·
Los mantenedores suelen responder en 9 días
Todos los issues de PolicyEngine/macro
Issues similares
-
Runner API: GET /api/jobs/<id> returns branch: null; the branch only appears under input.branchAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
radiancelux/prgenie#204 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
WalletConnect/walletconnect-monorepo#7392 · 1 comentario ·
-
Calendar sync: recurring events land a day late when the local start falls on a different UTC dateAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
area: app type: bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
qutip/qutip#3088 · 1 comentario ·
Los mantenedores suelen responder en 2 días