PolicyEngine / PolicyEngine/macro

OG-UK follow-ups gated on Scorecard comparisons (oguk re-pin, one-process dynamic scoring deferred)

Open
#181 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
HTML
Stars
3
Forks
0
Avg merge
3m
Merged PRs (30d)
13

Description

Re-scoping the OG-UK follow-ups per Max's steer (2026-08-16): PE model development centers on the Scorecard — compute counterparts to OBR's published scores first, add machinery only when a comparison needs it.

State

  • PSLmodels/OG-UK#69 merged 8/3 (e0ff741): pin lifted to policyengine-uk>=2.89.2, and the pre-existing MTR bugs fixed (household-normalisation clipping had ~80% of mid-band earners at a 0.000 marginal rate; every OG-UK tax function to date — including the tax functions behind this repo's OG numbers and the #82 overlay factors — was fit on those). No oguk release yet (master still 0.3.2; not on PyPI). PSLmodels/OG-UK#70 lifts the now-stale ogcore<0.18 cap.
  • integration/tests/test_og.py still describes the old world ("oguk 0.3.0 pins policyengine-uk==2.88.0") and skips the real solve whenever installed PE ≠ 2.88 — that skip is now stale.

Deferred (deliberately)

  • Re-pinning oguk to e0ff741 and collapsing the two-environment og_payload pipeline into one-process dynamic scoring.
  • Re-baselining quoted OG numbers.

These get built when PolicyEngine/policyengine-scorecard#55 has an OBR-published claim that an OG-UK counterpart is needed for (labour-supply/FTE effects of NICs cuts etc.), with PE-UK's static LSR answer sitting next to it. Until then the OG arm's correctness fix lives upstream and this repo carries no new OG machinery. Static OBR costings vs PE-UK is PolicyEngine/policyengine-scorecard#54.

Not deferred

  • Any OG number currently quoted on the site or in papers that came from pre-#69 tax functions should be marked as such (fit on zeroed MTRs) or removed — a correctness note, not machinery.

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.

Research direction

Start with integration/tests/test_og.py and the State, Deferred, and Not deferred sections of the issue. Check the stale PolicyEngine version assumptions and the pre-#69 OG numbers; completion depends on the Scorecard comparison need, with affected numbers marked or removed and any required OG machinery defined afterward.

Written by the indexing model from the issue text.

Assessment

Domain
testing
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.