OBR anchoring is one EFO behind: October 2026 EFO (28 Oct) not yet incorporated
Maintainer antworten meist innerhalb von 5 Tagen
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 18/100
- Issue-Typ
- Feature
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- html, python
- Bereich
- backend-api-design, documentation
Rechercherichtung
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.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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."
- Vorherrschende Sprache
- HTML
- Sterne
- 3
- Forks
- 0
- Ø Merge
- 4 T. 6 Std.
- Gemergte PRs (30 T.)
- 15
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus PolicyEngine/macro
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
PolicyEngine/macro#225 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 5 Tagen
-
question
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 67/100
PolicyEngine/macro#214 ·
Maintainer antworten meist innerhalb von 5 Tagen
-
bug documentation
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 76/100
PolicyEngine/macro#211 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 5 Tagen
-
question
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 22/100
PolicyEngine/macro#227 · 4 Kommentare ·
Maintainer antworten meist innerhalb von 5 Tagen
-
Nowcast can't archive a new round: the hosted forecast_uk is pinned to boe-var data ending 2026Q1Offendata question
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 34/100
PolicyEngine/macro#224 · 4 Kommentare ·
Maintainer antworten meist innerhalb von 5 Tagen
Alle Issues in PolicyEngine/macro
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
langchain4j/langchain4j#7068 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug help wanted
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 86/100
-
agent-self
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
yologdev/yoyo-evolve#1175 ·
-
Per line discountOffenenhancement good first issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 67/100
ruyd/agentic-sdlc-lab#4 · 2 Kommentare ·
-
Community
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
kedro-org/kedro-plugins#1575 ·
Maintainer antworten meist innerhalb von 1 Tag