PolicyEngine / PolicyEngine/policyengine-scorecard

OBR published economic + behavioural effects of policy: the Scorecard entry point for PolicyEngine Macro members

Open
#55 4 comments 0 reactions 1 assignee View on GitHub

@vahid-ahmadi is already working on this.

Since Aug 17, 2026.

Dominant language
Python
Stars
0
Forks
0
Avg merge
6d 12h
Merged PRs (30d)
32

Description

Companion to the OBR policy-costings issue (linked below). Max's steer (2026-08-16): model development centers on the Scorecard — OBR published scores first, machinery second.

Why this issue exists

PolicyEngine Macro's members (the OBR emulator, OG-UK, BoE SVAR, FRB/US on the US side) validate against baselines today (the emulator's anchored==EFO gate) but have no Scorecard rows for what they are for: the effect of policy. Meanwhile machinery has been accumulating around them (two-environment og_payload pipeline, one-process dynamic scoring, oguk re-pins) that no comparison has asked for. This issue is the entry point that decides which of that machinery gets built.

The population: OBR's published economic and behavioural effects of policy

Not yet harvested. Each fiscal event's EFO carries:

  • Policy package effects on the economy (Chapter 2 boxes/tables): GDP level, employment, inflation, interest rates, by year — the fiscal shock inputs are the same PMD costings the companion issue uses.
  • Supply-side / behavioural scorings of individual measures: labour-supply effects in FTE and hours (NICs cuts, childcare, pension measures, welfare reforms), and the behavioural component of costings where HMRC/OBR publish static vs post-behavioural separately.
  • Indirect effects on the forecast (receipts/spending feedback from the package).

Counterparts (each is a Scorecard row for a Macro member)

  • OBR emulator ← package effects on GDP/employment/inflation, with the shock path built from the measure costings (this IS PolicyEngine/macro#9's micro→macro bridge — built because a comparison needs it).
  • PE-UK labour-supply responses (static LSR) and OG-UK ← the labour-supply/FTE claims. Two PE-side answers to the same OBR claim, side by side, descriptively. This is where OG-UK's dynamic layer earns (or doesn't earn) its plumbing.
  • Later: OG-USA / FRB/US ← CBO/JCT dynamic scores (US mirror; PolicyEngine/macro#77).

Steps

  • Harvest: EFO chapter-2 policy-effect tables/boxes + supply-side boxes for AS2023 → AB2025 (Wayback originals, no bypasses; same recipe as uk_obr/NOTES.md); stage claims with metric ∈ {gdp_level_effect, employment_effect, labour_supply_fte, …} and full conditions (fiscal_event, horizon FY, basis).
  • Register the macro members as PE-side engines in the results vocabulary (engine = obr_emulator@sha / oguk@sha / policyengine-uk LSR), so rows are attributable.
  • Emulator counterparts for the package-effect claims; LSR + OG-UK counterparts for the FTE claims.
  • Only then: decide the OG-UK machinery (re-pin to merged OG-UK master e0ff741 — MTR fixes — and single-process dynamic scoring) on the basis of what the comparisons need.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.