Repository navigation
Certify the Microcosm UK national from microcosm#1428 on policyengine-uk 2.164.2 (0a4c8e2c; local area 6528c865 or c9df4b86) - #731
juaristi22 wants to merge 2 commits into
Conversation
…e2c national, 6528c865 local area) One certify-data run: the national microcosm-uk-2024-25-national-20261031T181401Z-0a4c8e2c certifies on its own build (policyengine-uk 2.164.2); the local-area cut microcosm-uk-2024-25-dense-20261027T154955Z-6528c865 routes on the accepted model mismatch, with its input surface re-audited for 2.164.2 (no dropped column; five inputs added after 2.162.12 take their defaults). 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>
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>
|
Property income rates +2pp: what moved, and where the gap to the costing comes from The table splits the measure's 2029-30 yield into its two parts:
Measures and setup are as in the body's table: the dashboard's measure, policyengine-uk 2.162.14, change in income tax in £bn.
What moved: the relief part.
Where the gap to the costing comes from: partnerships.
Bringing it in.
🤖 Generated with Claude Code |
MaxGhenis
left a comment
There was a problem hiding this comment.
Thanks María. You've added gross receipts to the national data, and we now estimate a £148m trading allowance cost in 2028-29.
Could we compare the savings and property estimates with the OBR's income tax lines before publishing them? Since 28 October, we've compared each estimate with the OBR line that covers what we model. We keep Table 6.1 totals as context, as we do in Tables 6 and 7 of the briefing. You use Table 6.1 totals in the Official column.
| Measure | Year | This cut | OBR line | This cut against that line | Table 6.1 total |
|---|---|---|---|---|---|
| Savings income rates | 2029-30 | +582 | +443 | exceeds by 31% | +520 |
| 2030-31 | +611 | +475 | exceeds by 29% | +555 | |
| 2031-32 | +636 | +510 | exceeds by 25% | +590 | |
| Property income rates | 2029-30 | +402 | +394 | exceeds by 2% | +435 |
| 2030-31 | +417 | +403 | exceeds by 3% | +445 | |
| 2031-32 | +429 | +412 | exceeds by 4% | +455 | |
| Trading allowance | 2028-29 | −148 | −221 | trails by 33% | −225 |
| 2029-30 | −149 | −165 | trails by 10% | −165 | |
| 2030-31 | −148 | −171 | trails by 14% | −175 | |
| 2031-32 | −147 | −178 | trails by 17% | −180 |
Figures in £ million. We compare savings and property with income tax (measures 62 and 61), and the trading allowance with income tax plus NICs (measure 15).
For savings in 2029-30, the OBR reports £443m of income tax and £78m of onshore corporation tax, £521m in all, and the Treasury rounds that to £520m. You report a scaled £521m, which matches that total and exceeds the income tax line by £78m, or 18%.
In EFO paragraph 3.17, the OBR estimates that savers reduce the yield by around £0.2bn a year, mainly by using tax-advantaged assets such as ISAs. Could you drop "leaves little room for the costing's ISA shifting" and "ISA shifting then looks small"? If we add all £0.2bn to 2029-30 income tax, our £582m would trail the roughly £640m static estimate by about 10%. But the OBR gives no split of the reduction by tax or year, so we can't derive a static income tax line.
We need a verified reason for the 2029-30 and 2030-31 savings gaps before publishing, since both exceed our 25% bar. Our 2031-32 estimate exceeds the income tax line by 24.7%. Could you revise "Why savings sits above the costing" and #1428's savings lines against the income tax lines?
For property in 2029-30, the OBR reports £394m of income tax and £39m across onshore corporation tax and two Scottish lines. The Treasury rounds the £433m total to £435m. You report a rescaled £434m, which exceeds the income tax line by 10%; our published £429m exceeds it by 9%. The OBR estimates that landlords reduce the yield by £0.1bn a year through incorporation and non-compliance. We can use your PRIS bounds to investigate missing partnership income, but we can't quantify any omission from the rescale.
@MaxGhenis, for the UK hub: this certifies the national from PolicyEngine/microcosm#1428 on policyengine-uk 2.164.2 and supersedes #728. It needs the same decision from you as #728: which local-area cut it keeps, (a) or (b) below. That call carries over from #728, and this PR stays a draft until you make it.
The national
microcosm-uk-2024-25-national-20261031T181401Z-0a4c8e2c(microcosm_uk_2024_25):a8e25870cwith policyengine-uk 2.164.2, so it certifies on its own build (built_with_model_package). The core stays 3.33.3, withcore_binding: bundle_pinas on main.f8543876415f47819f56094c71ca4dab4cad6dcb2ba3a13b97f6982e38444c9e.--no-latest, tag only) on 1 Nov at 11:09 UTC; not promoted.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 the fixes in PolicyEngine/microcosm#1419, PolicyEngine/microcosm#1420 or PolicyEngine/microcosm#1428, 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.(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, along with the five inputs (a) defaults, 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
other_investment_incomein market and HBAI income. On this pin, household net income carries the tax on that income without the income itself. Costings read tax and benefits, so the table below is unaffected.Budget measures on this national
Scored with #728's method: the PolicyEngine/uk-autumn-budget-dashboard-2026 measures (
57095fd) and their October 2026 forecast. Each figure is the weighted change ingov_balance, in £bn. They were scored on policyengine-uk 2.162.14, as #728's table was; the bundle pins 2.164.2, and a rescore there can follow.Columns:
0a4c8e2c, from SPI donor savings rebased to SPI's 2023-24 bands (savings follow-up to #1418) microcosm#1428.4374e0bf.a6299504with 2.151.0.(1) The dashboard's State Pension template wraps
income_tax, which on policyengine-uk 2.162.x adds the Winter Fuel Payment charge, so the template refuses. The port is the dashboard's to do; the data play no part (#728, note 1).What moved against #728's national:
0c2f5314f, under the same scoring engine. It is being investigated, and the cause will follow in a comment.Why savings sits above the costing
This corrects #728's reading, which put the excess down to ISA shifting.
Impact
Commits
59662673: 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.6b2d0b9f: the household calculator snapshots, regenerated on 2.164.2 (PE_UPDATE_SNAPSHOTS=1). The UK households and the model surface move with the model; the US snapshots don't change.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 119 s and peaked at 8.2 GB.
Both
bundle.py checkruns pass, the second with--include-tros --strict-tros.Locally, 435 tests pass on the release manifests, UK regions, models, household snapshots, UC floor, bundle, TRO, certification, regional-evidence, pin and release-lock paths. 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