Repository navigation
Certify the Microcosm UK national from microcosm#1419 on policyengine-uk 2.162.14 (4374e0bf; local area 6528c865 or c9df4b86) - #728
juaristi22 wants to merge 2 commits into
Conversation
…e0bf national, 6528c865 local area) One certify-data run: the national microcosm-uk-2024-25-national-20261028T214959Z-4374e0bf certifies on its own build (policyengine-uk 2.162.14); the local-area cut microcosm-uk-2024-25-dense-20261027T154955Z-6528c865 routes on the accepted model mismatch with the input-surface audit made for #725. Also the relock, the release lock, the TROs, the certified test constants and the changelog fragment. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…2.14 PE_UPDATE_SNAPSHOTS=1. The UK households and the model surface move with the model; the US snapshots are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Dashboard OBR scoring on national 4374e0bf (PolicyEngine/microcosm#1419, PR A of PolicyEngine/microcosm#1418) How it was scored.
Notes
Reading against the costings
Diagnostics on this cut
Support: every figure above rests on ≥10 source households. The check counts either the measure's gainers or a set of households the measure is certain to change. Known gap: carry this with the table. The national cut meets ITL Table 2.6's savings tax mostly through
🤖 Generated with Claude Code |
|
Same engine, before and after PR A: 3c0d11b6 against 4374e0bf (PolicyEngine/microcosm#1419) Both cuts are scored with the dashboard's measure code (PolicyEngine/uk-autumn-budget-dashboard-2026 main,
The State Pension income tax protection is not scored on either cut: the dashboard's template can't wrap Reading
Support: every figure rests on ≥10 source households on both cuts. The check counts either the measure's gainers or a set of households the measure is certain to change. Known gap: the savings known gap and the distributional caveat from the 4374e0bf table apply to the 4374e0bf column. 🤖 Generated with Claude Code |
@MaxGhenis, for the UK hub: this certifies the Budget-fixes national from PolicyEngine/microcosm#1419 on policyengine-uk 2.162.14. It needs one decision from you: which local-area cut it keeps, (a) or (b) below. It stays a draft until you choose.
This national supersedes
3c0d11b6, the national in #725. What happens to #725 is your call.The national
microcosm-uk-2024-25-national-20261028T214959Z-4374e0bf(microcosm_uk_2024_25):7757add7a(Budget 2026 quick data fixes, PR A of #1418: savings base, Carer's Allowance pool, bus microcosm#1419, PR A of UK: data fixes for the Budget 2026 household measures microcosm#1418) with policyengine-uk 2.162.14, so it certifies on its own build (built_with_model_package).core_binding: bundle_pinas on main.a912a7044836866a8a021def65c43265c0cba2e3e7a371fc74bf919d10b5dd3d.--no-latest --tag-only) on 29 Oct at 00:45 UTC; not promoted.What it adds over 3c0d11b6 (details in #1419):
Fits:
The local area: your call
Constituency and local-authority regions route to the local-area cut (
regional_release_kind: local_area). Neither cut below carries #1419's fixes, so area runs don't see them; the next rebuilt pair will.(a) #725's
microcosm-uk-2024-25-dense-20261027T154955Z-6528c865. This draft's default.b71ce793, the head of Settle property allowance elections without the charge where it cannot change them policyengine-uk#2695, labelled 2.162.12. 2.162.14 releases that package code unchanged.(b) main's
microcosm-uk-2024-25-dense-20261026T105309Z-c9df4b86, the local-area data the dashboard reads today.--audited-by juaristi22) and a limitation saying the cut was built on 2.151.0. Its H5 is on hand and matches the manifest pin, and the audit takes about a minute.is_apprentice. Area runs on it would read them as zero, so they would carry no alcohol, tobacco or gambling duty.If you choose (b), I'll run the audit, re-certify and push it here.
Before the dashboard moves to this bundle
The SPI other-income gap
HMRC's Income Tax on savings at each rate (ITL Table 2.6) is met mostly through
other_investment_income, the one savings column no target binds.other_investment_incomeis £9.5bn in 2024, against £3.5bn on 3c0d11b6. SPI 2023-24 Table 3.7 publishes £5.85bn of "other income".other_investment_income.gross_taxable_inputs.household_market_incomeleaves the column out, so household net income carries the tax on it without the income.The Pension Tax Allowance and
income_taxThe dashboard's Pension Tax Allowance measure ("State Pension income tax protection") can't run on policyengine-uk 2.162.x:
income_tax;income_taxadds the tax before the Winter Fuel Payment charge to the charge itself;_replace_formularefuses a variable built from adds or subtracts ("income_tax is built from adds or subtracts; a template cannot wrap it").The data play no part. The row needs one of two things before the dashboard moves to this bundle:
pension_tax_allowance, once released.Electricity
Electricity stays a diagnostic in this cut: the zero rate scores −£0.84bn against Table 6.1's −£0.755bn. The costing's base is ONS household spending, and this cut's electricity spending at the dataset year is £29.9bn, 6.3% above ONS 04.5.1's £28.13bn for 2024. PolicyEngine/microcosm#1420 moves it to the ONS level.
The dashboard's Budget measures on this national, against Table 6.1
From PR A's post-build check. Two comments go with it:
How it was scored.
57095fd), with its October 2026 forecast (with_forecast).gov_balance, in £bn, positive when the Exchequer gains.official_costings.json, from Table 6.1 and the costings note, after behaviour. The savings figures come from the costings note's savings income measure.Notes
income_tax" above. The data play no part.Bus, 2027-28, on this cut:
Support: every figure above rests on ≥10 source households. The check counts either the measure's gainers or a set of households the measure is certain to change.
Impact
Commits
cf0401b5: the national and the local area, certified by onecertify-datarun. It also has the lock, the release lock, the TROs, the certified test constants and the changelog fragment.1c421c16: the household calculator snapshots, regenerated on 2.162.14 (PE_UPDATE_SNAPSHOTS=1). The UK households and the model surface move with the model; the US snapshots don't change.The lock,
pyproject.tomland the snapshots are byte-identical to #725's. The manifest differs from #725's only in the national's identity and hashes.How it was made
uk_qualification.rewrite_certified_constantsrewrote the certified constants intests/test_models.py,tests/test_release_manifests.pyandtests/test_uk_regions.py.Evidence run on this head
The UC floor passed (
check_uk_uc_floor.py, Great Britain, 2025, within 10%). The receipt holds weighted national totals only:It took 205 s and peaked at 18.6 GB.
Both
bundle.py checkruns pass, the second with--include-tros --strict-tros.Locally, these tests pass; the full suite runs in CI:
Disclosure
Aggregates only: weighted national totals over many records, and published HMRC, ONS, DWP, OBR and Treasury figures.
🤖 Generated with Claude Code