Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

UK: data fixes for the Budget 2026 household measures

オープン
#1,418 コメント 6 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

@juaristi22 がすでに取り組んでいます。

2026年10月29日 から。

  • #1421 @juaristi22 による — オープン
  • #1428 @juaristi22 による — オープン

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
12/100
issue の種類
機能追加
明瞭さ
説明が足りない
活発さ
活発
技術スタック
python

調査の方向性

This issue combines several unresolved data changes and decisions across pension, savings, energy, trading-income, travel and geographic inputs. Start by reading the relevant numbered item and linked issue or pull request, then trace the named input or calibration source in Microcosm and compare it with the cited official tables. Completion depends on resolving each item's stated decision and validating the resulting population estimates; the issue does not identify specific Microcosm files or tests.

索引モデルが issue の本文から書いたものです。

説明

Summary

The Budget on 28 October 2026 confirmed a set of household measures, in Table 6.1 of the Budget document, the Overview of tax legislation and rates and the policy costings. policyengine-uk is porting them; the first drafts are PolicyEngine/policyengine-uk#2712, PolicyEngine/policyengine-uk#2713 and PolicyEngine/policyengine-uk#2714.

This issue lists what Microcosm needs for population runs to score those measures accurately, checked against:

  • the next cut (#1411);
  • policyengine-uk main (2.162.20).

It keeps to static fixes from data we hold or from published tables. The rest stays out, and the dashboard cites the official costing for it.

The measured gaps below come from a run of the dashboard's measure code (PolicyEngine/uk-autumn-budget-dashboard-2026#290 at b87156bb) on a6299504 with policyengine-uk 2.151.0 and the October 2026 forecast: static figures, by tax year, in £m. The comparison with Table 6.1 is in that PR's comment.

Versions

  • The dashboard today: build a6299504 (code at 67ee2ddf, 25 October) with policyengine-uk 2.151.0.
  • The next cut: #1411 (head daaf5430), built on policyengine-uk b71ce793, which is 2.162.12 plus PolicyEngine/policyengine-uk#2695. The target engine is 2.162.14 (PolicyEngine/uk-autumn-budget-dashboard-2026#262).
  • Already in #1411: #1381 (gambling, alcohol and tobacco duty bases), #1404, #1373, #1205 and #1396.

Fixes

  1. #1414 in the next cut. Pension Tax Allowance (row 52).
    • #1414 binds HMRC's Income Tax payers of State Pension age by area, and re-indexes the SPI State Pension bands. It merged after #1411's head, so #1411 doesn't carry it.

    • The allowance turns on total income near the full new State Pension and is withdrawn at £1 for every £3 above it, so this is the data it rests on.

    • Measured on a6299504:

      2027-28 2028-29 2029-30
      People who benefit 0.67m 1.06m 1.36m
      People taken out of tax 0.41m 0.50m 0.88m
      Cost (£m) −42 −113 −193
      Table 6.1 (£m) −45 −90 −150

      The Treasury's explainer gives about 500,000 who benefit and 290,000 who pay no tax in 2027-28, and "around 1 million" by the end of the Parliament. So the counts are about a third high and the cost about a quarter high from 2028-29.

    • The SPI £12,570 to £15,000 band and the State Pension amount bands are bound, but nothing resolves the band of about £750 above the personal allowance where the allowance works. The data place too many pensioners in it.

    • Check on the next cut: the explainer's counts as a diagnostic, after #1414. If they stay high, look at the full new State Pension mass point and pensioners' small private pension and savings income near the threshold.

    • Decision owed: merge main into #1411 before the build, or take it in the following cut.

  2. Carer's Allowance earnings taper (row 7): the pool is now too large.
    • #1319's draw (4f361e5ad) is already in a6299504's build code (67ee2ddf3): carers the earnings limit keeps out claim at the take-up contract's 0.6. So the undershoot in #1319's title no longer holds for this cut.
    • Measured on a6299504: about 82,000 carers gain. Gross Carer's Allowance spending rises £75m in 2030-31 (half year) and £152m in 2031-32. The Treasury expects about 48,000 carers, at −40 and −80. Its costing also nets off Universal Credit and a labour-supply response, so part of the gap is basis.
    • Fix: the pool. The 35-hour limb reads reported FRS care hours with no check that the person cared for gets a qualifying benefit (#882), so too many carers sit above the limit. Restrict it where the FRS identifies the person cared for (in the household: their disability benefits).
    • Then check the 0.6 rate (sensitivity 0.45 to 0.75) against the Treasury's 48,000.
  3. #1360. Savings income rates of 24%, 44% and 49% (row 62), and the Pension Tax Allowance.
    • Under the legacy gross ISA contract, projected interest outside ISAs is slightly overstated.
    • A saver whose only interest is ISA interest shows a small positive taxable amount. For a pensioner near the allowance's threshold, that starts the taper when it shouldn't.
  4. #1415. ISA measures (rows 11, 38 and 39).
    • Export the inputs under the names in PolicyEngine/policyengine-uk#2712: cash_isa_subscriptions, stocks_and_shares_isa_subscriptions, cash_isa_balance and stocks_and_shares_isa_balance.
    • Also export lifetime_isa_payments.
    • Scope as in that issue's comment of 28 October.
  5. New: Machine Games Duty on stakes over £1 (row 56).
    • #1381 writes machine_games_{lower,standard,higher}_rate_net_takings.
    • From April 2027 the standard class pays 25% instead of 20% on stakes over £1, so its takings need splitting at a £1 stake.
    • Source: the Gambling Commission's industry statistics, gross gambling yield by machine category, where category C has a £1 maximum stake.
    • The engine needs the new class as well, in the port.
  6. New: Rural Fuel Duty Relief areas (row 3).
    • in_rural_fuel_duty_relief_area defaults to false and Microcosm doesn't write it, so the relief never applies.
    • The eligible areas are a published list of postcodes (islands, the Isles of Scilly and remote areas of the Highlands and Cumbria). Set the flag from the household's local authority or postcode area.
  7. #1385 and #1386. The £2 bus fare cap (row 4).
    • Row 4: single bus fares capped at £2 in England outside London for one year from 1 January 2027, funded by reprioritising DESNZ budgets.
    • The cap reaches only fare-paying journeys, so it rests on how the bus stage splits journeys between fare-paying and concessionary, and on how many people travel at all:
      • #1385: outside London, the stage makes only older people's eligibility and under-5s free, but its yield removes every concessionary journey.
      • #1386: the lowest frequency band gives about half the population trips, so the counts of who is affected are too high.
    • The engine side of #1385 was fixed in policyengine-uk 2.158.3 (PolicyEngine/policyengine-uk#2641, closing PolicyEngine/policyengine-uk#2640), which the 2.162.14 target carries.
    • #1385 is still open. Check whether that fix settles it, or whether the stage's eligibility still needs a change.
  8. #1276 and #1288. The SPI top tail (rows 61 and 62). The rate rises fall most on higher- and additional-rate savers and landlords, so the SPI residuals matter more.
  9. #1326. Property income rates (row 61). The new property rates apply in England, Wales and Northern Ireland. Scottish taxpayers' property income is the related check.
    • Measured on a6299504: +396, +410 and +441 in 2027-28, 2028-29 and 2030-31, against Table 6.1's mature years of +435 to +455. That is in line.
    • Neither Scotland's share (5.6% of property income in the data) nor landlords' finance costs (£12.8bn in 2027-28) is a target.
  10. Parental Allowance (row 6, from April 2029). Wait for the eligibility criteria.
  • The FRS has what an imputation would need: children aged 0, self-employment, earnings, and months in the current job (CURRJOBM, for Statutory Paternity Pay's 26-week test).
  • Adoption isn't identified.
  • The group is small, so the disclosure floors apply to any breakdown.
  1. New: the savings interest level (row 62).
  • Measured on a6299504: the savings rate rise yields +269, +286 and +322 in 2027-28, 2028-29 and 2030-31. Table 6.1's mature years are +520 to +590, so ours is a little over half, and further below a static costing, since Table 6.1 nets off behaviour. Property is in line (item 9), so the shortfall is in savings.
  • The data hold £25.0bn of taxable interest in 2027-28, plus £8.0bn of ISA interest.
  • Calibration binds interest to SPI 2023-24 Table 3.7 interest by total-income band, uprated to 2025, within 0.2% on amounts. The ONS D.41 row is a diagnostic. That anchor looks well below the base HMRC costed.
  • Fix: reconcile the SPI anchor with HMRC's own savings base, and find what's missing. Candidates: interest of people below £12,570 or outside the SPI, and the SPI's coverage of bank-reported interest.
  • The direction is opposite to item 3 (#1360), which makes interest outside ISAs slightly high.
  • Engine: policyengine-uk projects savings_interest_income with ons.household_interest_income, whose forecast years are the OBR's non-labour income growth, not interest rates.
  1. New: domestic electricity spending (row 2).
  • Measured on a6299504: the zero rate gives −840 in 2026-27, against −755. That puts spending about 11% above the base Table 6.1 implies, and Table 6.1 includes a behavioural response.
  • The level is DESNZ Energy Trends volume at QEP 2024 prices, under the D1 ruling of #1113. ONS 04.5.1 is 12% lower and stays a diagnostic.
  • policyengine-uk then projects electricity_consumption with CPI. That carries no price cap path, including April 2026's removal of policy costs.
  • Decision owed: revisit the D1 level against the Treasury's base, or move the engine's projection to an electricity price index (the OBR's economy Table 1.20). The 2027-28 day weighting is the dashboard's, noted on #290.
  1. New: small trading incomes (row 15).
  • Measured on a6299504: −112 and −120 in 2027-28 and 2028-29, against Table 6.1's mature years of −165 to −180.
  • Besides the missing receipts (accepted below), the SPI self-employment targets start at £12,570 of total income, so the count of small traders and their profits up to £3,000 aren't bound.
  • Fix, if a source exists: bind HMRC's counts of small self-employment profits.
  • Engine: the allowance doesn't reach miscellaneous income (PolicyEngine/uk-autumn-budget-dashboard-2026#290, Max's note).
  1. New: area coverage for the area maps.
  • The local cut binds the following at local-authority or constituency level:
    • council tax bands;
    • domestic electricity and gas;
    • employment and self-employment income;
    • Universal Credit, age, tenure and rents.
  • It binds savings, property and pension income, road fuel and carers at region level at most. So the area maps for these measures follow correlates:
    • the Pension Tax Allowance;
    • the savings and property rates;
    • fuel duty;
    • the Carer's Allowance taper.
  • #1414 adds pensioner taxpayers by area.
  • Next: pension income by area from the same HMRC tables as the employment and self-employment rows, if they publish it.

Checked: no data change needed

  • Household Energy Payment (row 1): council tax bands are calibrated to MHCLG's council tax stock, nationally and by area. Northern Ireland has domestic rates, not council tax, so its handling belongs in the engine or the dashboard.
    • Measured: 19.7m households in England in bands A to D (Budget: up to 20m), so −1,969 against row 1's −2,625. The difference is the Barnett funding that row 1 includes.
  • Fuel duty (row 3): litres are spending over price, and road fuel spending is bound to ONS.
    • Measured: −301 and −521 against −575 and −780 (52% and 67%). The gap is scope: business fuel is outside the household frame, as the held-out OBR cars row records.
  • VAT on domestic electricity (row 2): see item 12 for the measured gap.
    • Energy spending is measured, not bound, under the ruling on #1113 (D1).
    • VAT grossing is re-derived on the next cut (PolicyEngine/policyengine-uk#2634).

Out of scope: accepted limitations

  • Trading Allowance (row 15):
    • Neither the FRS nor the SPI tape records trading turnover, so self_employment_gross_receipts stays unsupplied.
    • The engine assumes a profit within the allowance comes from receipts within it, and that a larger profit already reflects the better of expenses and the allowance.
  • Behaviour:
    • fuel use responding to prices;
    • savings moving into ISAs;
    • landlords incorporating;
    • carers' labour supply;
    • First Time Buyer ISA take-up.
  • Amounts that build up over years: ISA balances, and BADR's lifetime limit (row 60).
  • House purchases: the First Time Buyer ISA (row 38) and the Lifetime ISA charge above the price cap (row 39).
  • Not in the data or the engine:
    • business mileage (row 5);
    • company cars (row 86);
    • Universal Credit's surplus earnings rule (row 8), which needs monthly earnings;
    • Plan 2 and Plan 3 student loan interest (row 83), which changes balances only;
    • the triple lock change, which has no effect within the forecast.
  • Gas standing charges: gas spending is in the data, with spending above zero standing in for a mains-gas connection. Rebalancing the bills is modifier work.

Engine versions

  • The Carer's Allowance Weekly Earnings Limit: set at 16 hours at the National Living Wage from 2.162.17 (PolicyEngine/policyengine-uk#2699), after the 2.162.14 target. The taper needs 2.162.17 or later.
  • The cut-to-engine pairing: the ports land after 2.162.20, so the pairing in PolicyEngine/uk-autumn-budget-dashboard-2026#262 needs checking again when they're released.

Related: #1095, #1415, PolicyEngine/uk-autumn-budget-dashboard-2026#287.

主要言語
Python
スター
0
フォーク
6
平均マージ
1日 23時間
マージ済み PR(30日)
134

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

PolicyEngine/microcosm のほかの issue

PolicyEngine/microcosm の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。