Repository navigation
OBR EFO March 2026: drop the years the October 2026 vintage also publishes (PolicyEngine/microcosm#1095) #397
Copy link
Copy link
Closed
Description
Summary
- The rule (María, 30 October 2026): when two vintages of the same package publish a number for the same line and year, Chronicle keeps the later vintage's number and drops the earlier one's, so Microcosm never has two to choose between.
- The March 2026 EFO packages (
obr-efo-{receipts,expenditure,economy,aggregates}-march-2026) and the October 2026 ones (OBR October 2026 EFO: archive the receipts and expenditure detailed forecast tables as a new vintage (PolicyEngine/microcosm#1095) #393, Add SPI 2023-24 Table 3.10 and the OBR October 2026 EFO vintage (PolicyEngine/microcosm#1418) #394) both publish 2025-26 to 2030-31; for the economy lines, calendar 2025 to 2029. Of the March packages' 500 facts:- 363 share a semantic key with an October fact. These are the projections both vintages make for 2026-27 to 2030-31, and they are the bundle's 363 duplicate keys from Add SPI 2023-24 Table 3.10 and the OBR October 2026 EFO vintage (PolicyEngine/microcosm#1418) #394.
- 63 more are March's 2025-26 forecasts beside October's 2025-26 outturn: the same line and year, with a different assertion.
- UK facts for chronicle#395: Northern Ireland domestic rates, Welsh bus journeys, the Childcare Offer for Wales, VED by payer and CPI gas weights #396 applies the rule to the line it adds: March's vehicle excise duties line carries only its 2024-25 outturn. This issue covers the rest.
Requested
- In each March package, drop the record sets for every line and year that the October package publishes: 426 facts (receipts 238, expenditure 141, economy 30, aggregates 17).
- March keeps the 74 facts that October lacks (75 with UK facts for chronicle#395: Northern Ireland domestic rates, Welsh bus journeys, the Childcare Offer for Wales, VED by payer and CPI gas weights #396's VED line):
- every line's 2024-25 outturn (calendar 2024 for the economy lines);
- the 2025-26 forecasts of the lines that October starts in 2026-27: sheet 3.10's betting and gaming duties and the seven duties it breaks them into (October's table 4.10), and the aggregates' public sector current receipts, total managed expenditure and net borrowing.
- Every March line keeps its line id and concept. The October build (
scripts/build_obr_efo_october_2026.py) reads its March lines from the March packages, so each line has to stay findable.- One line has nothing left under the rule. The expenditure package's
council_tax_high_value_surchargehas no 2024-25 value, and October publishes every year it has. The build needs to keep finding that line, or its October facts change line id and concept.
- One line has nothing left under the rule. The expenditure package's
- The March receipts package is written partly by hand and partly by
scripts/build_uk_excise_packages.pyandscripts/build_uk_1095_port_packages.py; the drop has to go through those scripts. - Update:
- the bundle pins: semantic duplicate keys 2,687 → 2,324, and the counts by source, period and entity;
- the March packages' headers;
docs/data-sources/uk-obr-efo-october-2026.md, which says both vintages stay in the bundle.
Timing and consumer
- Microcosm binds or holds the March lines at the calendar-2025 window: three twelfths of 2024-25 and nine twelfths of 2025-26 (OBR October 2026 EFO: archive the receipts and expenditure detailed forecast tables as a new vintage (PolicyEngine/microcosm#1095) #393). The 2024-25 part stays in March. Once this lands, 2025-26 exists only in October, as outturn, apart from the lines above that October starts later.
- So land this with or after the Microcosm re-pin that pairs the October facts with the engine lock carrying Update the economic assumptions to the October 2026 EFO policyengine-uk#2717 (UK: every open data item: uk-data parity, engine locks, the local surface, consumption and high-value homes microcosm#1095). A re-pin of a bundle with this change, made earlier, would lose March's 2025-26 rows.
🤖 Generated with Claude Code
Metadata
Metadata
Assignees
Labels
No labels
Activity
Keep one OBR EFO number per line and year