Repository navigation
Add blog post: the Pension Tax Allowance in the Autumn Budget 2026 - #1457
Conversation
A household-level explainer of the Budget 2026 Pension Tax Allowance: the rules from HM Treasury's explainer, the five worked examples reproduced in PolicyEngine UK, three charts (income tax, the allowance by tax year, marginal rates) and the Pension Credit interaction. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
New posts draw charts as ```chart blocks (chart-standards.md), and the website had no line type, so this adds one: BlogLineChart.tsx draws series against a numeric x axis, with optional step series and labelled vertical markers, using ui-kit's axis, grid, tooltip and legend styles and the chart color tokens. blogChartUtils gains a thousands separator, a niceTicks option that leaves zero out of the range, and validFormat for the x axis format. The post's three charts become line blocks built from the PTA rules and checked against PolicyEngine UK at every £2 of income. The text follows the review of the dashboard's modifier (#290 at 1df76b8d): 2028-29's State Pension is rounded down to 5p a week (£13,361.40), tax starts at £13,037.75, the uprating reading is stated, and Scottish taxpayers, the full costing and the adjusted triple lock rule are added. The cover is a new title card. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Pension Credit section gets a line chart of the change in household net income in 2027-28 for a pensioner who claims Pension Credit and one who does not. Its breakpoints come from the PTA rules and PolicyEngine UK's £12,660.62 minimum guarantee, and agree with PolicyEngine UK to within £0.01 at every £2 of income. "The PTA in each tax year" now comes before "Income tax by total income". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Official parliamentary portrait of John Healey by Richard Townshend (UK Parliament, CC BY 3.0, via Wikimedia Commons), cropped to 16:9 and credited in imageCredit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Pension Credit section's chart now plots household net income for a claimant with and without the PTA, like the income tax and marginal rate charts. Line charts gain "yIncludesZero": false, which fits the y axis to levels far from zero. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Pension Credit: use the 2027-28 minimum guarantee uprated by earnings (£247.30 a week; the April 2027 State Pension rise of 3.9% is earnings growth, above September 2026 CPI of 3.5%), not the model's CPI projection. - Worked examples: add a net income table that shows how the PTA passes through to Pension Credit, Housing Benefit and Council Tax Reduction. - Charts: a point every £100 for the tooltip; the net income chart starts at £0; the marginal rate chart shows the effective rate from household net income, as marginal_tax_rate does, not the income tax rate. - Text: who gets the PTA, the 500,000 and 290,000 counts, the Scottish rule from the explainer, non-transferability, the costing's signs and its no-behaviour assumption, qualified "pays no income tax", the 52-week and rounding assumptions, the 6 October State Pension age test, and the simplified worked examples. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A tax letter showing £0.00, pound coins, a teacup and reading glasses in the PolicyEngine teal palette, drawn as SVG and rendered to WebP. It replaces the portrait, so the photo credit goes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Marker labels move to a strip above the plot area, one row per marker, so they no longer cross the data lines. The income tax chart now spans £12,400 to £13,500, like the net income and marginal rate charts. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@PavelMakarchuk Max wants the Budget posts merged today so the dashboard's Policies tab can link them. Is it OK to merge this at 26feaea, after #1462? Nothing from my review is open at 26feaea. Two checks remain. First, I'm running the PTA microsimulation on #290 at 9b98370e, the head the final regeneration runs from, to compare with the post's −£42m, −£113m and −£193m and its counts. Second, once #1462 merges and this PR retargets to main, CI has to pass again. If both hold, I'll mark it ready, approve and squash at 26feaea. 🤖 Generated with Claude Code |
The guarantee rises with earnings (SSAA 1992 s. 150A), so every run, household and population, uprates £238 a week by the May-July earnings growth on the October forecast: £247.30, £254.80, £260.35. The total cost becomes −£30m, −£82m, −£143m; 529,000, 855,000 and 1.07m households gain. Losers (7,400 and 6,600) all leave Pension Credit and so lose its passport to maximum Housing Benefit and Council Tax Reduction and, at 75 or over, the free TV licence; the appendix flags the model's Winter Fuel Payment losses. The OBR coincidence note goes, as the totals now differ. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…1462) * Add a line chart type for blog posts, and valueLabels for bar charts BlogLineChart.tsx draws series against a numeric x axis, with step series, markers labelled in a strip above the plot, an x axis format, a y axis fitted to the data on request, and a y axis width that follows the tick labels. blogChartUtils gains a thousands separator, a niceTicks option that leaves zero out, and validFormat. Bar charts take "valueLabels": false when several series make the labels overlap. chart-standards.md documents both. Used by the Budget 2026 posts (#1457, #1459). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Keep line chart axis labels, axis title and legend apart The first x tick label no longer touches the lowest y tick label at the plot's corner, and the legend sits clear of the x axis title. Checked on every chart in the PTA post at 1280 and 375 pixels wide. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
The population run at 45a700b used an earnings-uprated Pension Credit guarantee, so its total cost (−£82m/−£143m), households gaining, losers and decile charts no longer matched the Autumn Budget dashboard (#290: −£30m/−£83m/−£144m). This restores the 26feaea population figures, appendix paragraph and OBR coincidence note, all on the model's own guarantee, as the dashboard uses. The household examples keep the earnings-uprated £247 guarantee, and the assumptions bullet keeps the section 150A citation. The Winter Fuel Payment household income note goes with the earnings-basis run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@PavelMakarchuk: I pushed bf81eaa on top of your 45a700b. It puts the population section back on the dashboard's basis, as the coordinator ruled under Max's "fix figures". Why. The 45a700b rerun used the earnings-uprated Pension Credit guarantee (£247/£255/£260). The Autumn Budget dashboard (#290) uses PolicyEngine UK's own guarantee (£245 in 2027-28). Its PTA run gives a total cost of −£30m, −£83m and −£144m, the figures this post had at 26feaea. The post's population figures need to match the dashboard. Your household examples keep the earnings-uprated £247 guarantee, as they did before. What changed (each back to its 26feaea value):
Winter Fuel Payment note: removed. It came with the earnings-basis run, and it also misstates the model. In Please hold further pushes to #1457 until it's merged. The coordinator is merging #1462 and then this PR so the post is live for Q&A. If something needs changing, comment here and I'll fold it in. 🤖 Generated with Claude Code |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… 0.00% At 2 decimals, 18 of the 30 bars read 0.00%; at 3, 5 still read 0.000%. The data are to 4 decimals, so 4 shows every bar's value. Axis ticks keep their own decimals. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Revision 20's artifact (state_pension_income_tax_protection/db74e63711506e84) gives the decile charts and the Gini change; a run of #290 at 9b98370e on the dashboard's builders, whose gov_balance change equals that artifact's budgetary impact to 12 digits, gives the rest. Income tax 2028-29 is -£112.49m, so -£112m; households gaining 857,000 and 1.09 million at £97 and £132; losers about 1,400, 5,400 and 7,200 (2, 8 and 9 sample households), some losing a free TV licence from 2028-29; Gini falls by about 0.0001 in 2029-30. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@PavelMakarchuk: one more commit, 38cdd4a, and c9a4f38 for the losers line. It puts the remaining population figures on the dashboard's own run, so every number in the population section can be traced to it. Sources
Changes
Notes on the changes
Unchanged, and they match:
All six chart blocks parse. The PR is still a draft, so it needs marking ready before the coordinator approves it. 🤖 Generated with Claude Code |
The sample is too small to estimate the number of losing households precisely. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis
left a comment
There was a problem hiding this comment.
Approving at c9a4f38 on Max's go, so Pavel can walk through the post in today's webinar Q&A. It's the first of the full explainers for each Budget measure.
- Review. The PTA review seat reviewed the post and found no must-fix items. I reviewed the last three commits' diffs myself.
- Figures match the dashboard.
- Total cost is −£30m, −£83m and −£144m. That is revision 20's artifact for state_pension_income_tax_protection, and the seat's own run at #290's head reproduces the dashboard's budgetary impact to 12 digits.
- The decile charts, poverty and Gini come from the same artifact.
- The household counts come from that same simulation.
- Population basis. The section uses the model's Pension Credit guarantee, as the dashboard does. The household examples keep the earnings-uprated guarantee.
- Losers. The sentence gives no figures from small sample cells.
- Diff. Only the post, its cover image and one posts.json entry. The chart support merged in #1462.
🤖 Generated with Claude Code
Links state_pension_income_tax_protection's card to https://www.policyengine.org/uk/research/pension-tax-allowance, titled "The Pension Tax Allowance in the Autumn Budget 2026" as in app-v2's posts.json (PolicyEngine/policyengine-app-v2#1457, merged 16:42Z). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Resolves the posts.json conflict with the Pension Tax Allowance post (#1457) by keeping both entries, newest first. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…1459) * Add blog post: the Pension Tax Allowance, step by step A household-level explainer of the Budget 2026 Pension Tax Allowance: the rules from HM Treasury's explainer, the five worked examples reproduced in PolicyEngine UK, three charts (income tax, the allowance by tax year, marginal rates) and the Pension Credit interaction. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Draw the Pension Tax Allowance post's charts as line chart blocks New posts draw charts as ```chart blocks (chart-standards.md), and the website had no line type, so this adds one: BlogLineChart.tsx draws series against a numeric x axis, with optional step series and labelled vertical markers, using ui-kit's axis, grid, tooltip and legend styles and the chart color tokens. blogChartUtils gains a thousands separator, a niceTicks option that leaves zero out of the range, and validFormat for the x axis format. The post's three charts become line blocks built from the PTA rules and checked against PolicyEngine UK at every £2 of income. The text follows the review of the dashboard's modifier (#290 at 1df76b8d): 2028-29's State Pension is rounded down to 5p a week (£13,361.40), tax starts at £13,037.75, the uprating reading is stated, and Scottish taxpayers, the full costing and the adjusted triple lock rule are added. The cover is a new title card. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Add a net income change chart and put the PTA by tax year first The Pension Credit section gets a line chart of the change in household net income in 2027-28 for a pensioner who claims Pension Credit and one who does not. Its breakpoints come from the PTA rules and PolicyEngine UK's £12,660.62 minimum guarantee, and agree with PolicyEngine UK to within £0.01 at every £2 of income. "The PTA in each tax year" now comes before "Income tax by total income". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Describe the worked examples by income, without the explainer's names Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Use the Chancellor's official portrait as the post's cover Official parliamentary portrait of John Healey by Richard Townshend (UK Parliament, CC BY 3.0, via Wikimedia Commons), cropped to 16:9 and credited in imageCredit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Show net income with and without the PTA, not the change The Pension Credit section's chart now plots household net income for a claimant with and without the PTA, like the income tax and marginal rate charts. Line charts gain "yIncludesZero": false, which fits the y axis to levels far from zero. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Size the line chart's y axis to its longest tick label Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Move the net income chart between income tax and marginal rates Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Add blog post: the fuel duty cut extension, step by step Explains the Budget 2026 fuel duty measure at household level: the 5p cut kept to 1 July 2027 and the RPI rise deferred to the same date. Charts are chart blocks (a bar chart of the rate by period and a line chart of the saving by litres), checked against PolicyEngine UK. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Use a Geograph photo of petrol pumps as the fuel duty post's cover David Howard, "Petrol pumps at Tesco, Brent Cross", CC BY-SA 2.0, via Wikimedia Commons; cropped to 16:9, metadata removed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Add net income and benefit interactions, and a title-card cover The post now shows full household net income for three example households, with Universal Credit, Pension Credit, Housing Benefit and Council Tax Reduction unchanged, and says that marginal rates do not change. The cover is a PolicyEngine title card of the rate path, so it needs no photo credit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Revise the PTA post after a full review of the model and method - Pension Credit: use the 2027-28 minimum guarantee uprated by earnings (£247.30 a week; the April 2027 State Pension rise of 3.9% is earnings growth, above September 2026 CPI of 3.5%), not the model's CPI projection. - Worked examples: add a net income table that shows how the PTA passes through to Pension Credit, Housing Benefit and Council Tax Reduction. - Charts: a point every £100 for the tooltip; the net income chart starts at £0; the marginal rate chart shows the effective rate from household net income, as marginal_tax_rate does, not the income tax rate. - Text: who gets the PTA, the 500,000 and 290,000 counts, the Scottish rule from the explainer, non-transferability, the costing's signs and its no-behaviour assumption, qualified "pays no income tax", the 52-week and rounding assumptions, the 6 October State Pension age test, and the simplified worked examples. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Shorten the wording on the £94 full allowance Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Use an original vector illustration as the PTA post's cover A tax letter showing £0.00, pound coins, a teacup and reading glasses in the PolicyEngine teal palette, drawn as SVG and rendered to WebP. It replaces the portrait, so the photo credit goes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Rename the PTA cover so caches load the new illustration Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Show the net income chart around the PTA range again, not from £0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Put line chart marker labels above the plot; align the PTA chart ranges Marker labels move to a strip above the plot area, one row per marker, so they no longer cross the data lines. The income tax chart now spans £12,400 to £13,500, like the net income and marginal rate charts. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Revise the fuel duty post after an audit and the PTA review standards State that the pre-Budget April 2027 rate of 60.59p is an assumption and give the result on PolicyEngine UK's own 59.75p; note the tax-year and fiscal-year difference; put source quotes in our own words and drop the spelled-out arithmetic; plot the saving every 100 litres, checked against PolicyEngine UK at each point; state the example households' rent, council tax and State Pension inputs; merge the latest line chart fixes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Add Universal Credit to the PTA benefits table; trim the chart sources A mixed-age couple claims Universal Credit, which counts pension income before income tax (UC Regs 2013 reg. 66), so the PTA leaves it unchanged and the couple keeps the full PTA. The post notes the Marriage Allowance case and the earnings case the model does not capture. The chart source lines no longer repeat the Pension Credit estimate. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Split the benefits paragraph so Universal Credit has its own Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Show real couple cases for Universal Credit and the PTA Married couples keep the Marriage Allowance, which already removes the older partner's tax, so the PTA gives nothing. Unmarried couples keep the full PTA on pension income; on earnings, Universal Credit now takes back 55p of each £1, because the model passes the PTA into the tax that UC deducts from earnings. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Explain why the fuel duty measure does not reach other programmes Run the net income table on the OBR October 2026 forecast, as the dashboard does (2027-28 values are the same on the March forecast), and say why no benefit, uprating or marginal rate changes; note business fuel use for the self-employed as out of scope. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Run the PTA post on the OBR October 2026 forecast, as the dashboard does Max's review: the 2028-29 and 2029-30 maximums came from policyengine-uk 2.151.0's March 2026 forecast (£159, £226). Every calculation now applies the dashboard's obr_october_2026.json growth rates before data load, with the reform added to that scenario, so the triple lock gives 3.4% in April 2028: the full PTA is £182 and £250, the withdrawal ends at £14,024.40 and £14,566.40, and the Methodology names the forecast. 2027-28 results do not change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Address Max's second review of the PTA post - Pension Credit claimants aged 75 or over can lose up to £180: leaving Pension Credit ends the free TV licence. New aged-76 row and a TV licence column in the benefits table; the net income text says so. - "Pays no income tax" needs income taxed at 20%: property income at 22% leaves £8.61 on £13,036.40 (was £102.61). - Name the dashboard's own Pension Credit guarantee on the October forecast (£245.38) beside the post's earnings-based £247.30. - Drop the High Income Child Benefit Charge example; note that no other Budget measure is included. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Add the dashboard's provisional population results for fuel duty Cost by year beside Table 6.1, the scope, timing, behaviour and VAT differences, the average gain and share of income by decile, the share of people affected, and why poverty does not change. From the preview run of fuel_duty_rise_deferral (dashboard 0d9dccb2), hash-checked. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Round the PTA post's figures to whole pounds outside the worked tables Max's rule for the Budget posts: prose, key figures and summary tables give whole pounds; pence stay only in the two worked-example tables. The ends of the withdrawal range round up, as the explainer's £13,319 does: £13,319, £14,025 and £14,567. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Number and simplify the benefits table; qualify the over-75 loss Short numbered household labels with the incomes in the text above, a dash for no change and net income in bold. The over-75 paragraph now says the loss assumes the household needs a TV licence, and that leaving Pension Credit can also end help the model leaves out, such as the Warm Home Discount. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Keep signs with their numbers in the PTA post's tables Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Apply Max's review: whole pounds, a weekly table, the Treasury gap Round prose, headline and summary figures to whole pounds and keep pence in the worked per-litre figures; add the saving by litres a week; explain the gap to Table 6.1 as mainly scope, with behaviour and timing working the other way; use the 2027-28 full new State Pension for the pensioner; link the dashboard and Table 6.1; drop process wording. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Add the dashboard calculator's commuter as a worked example Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Add population results to the PTA post A static microsimulation set up as the Autumn Budget dashboard sets up its runs (pe.uk.managed_microsimulation on policyengine 6.11.1's certified Microcosm UK dataset, policyengine-uk 2.151.0, the OBR's October 2026 forecast). Income tax falls by £42m, £113m and £193m in 2027-28 to 2029-30 (Treasury: £45m, £90m, £150m); net income rises by less, as means-tested benefits fall; 528,000 households gain in 2027-28, rising to 1.07 million. Two decile charts. Marked provisional until the dashboard publishes its own run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Use two decimals on the decile share chart's labels Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Add the measure's reach and link the dashboard's final URL Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Group the PTA post into household and population impacts The rules, then "Household impacts" (worked examples, net income and other benefits, the PTA by year, income tax, net income, marginal tax rates), then "Population impacts" (budgetary impact with the Treasury costing beside ours, who gains, distributional impact, poverty and inequality), then assumptions and methodology. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Drop the provisional label from the population results Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Say that we reproduced the population results in our own run Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Let bar charts hide value labels; drop "provisional" from the PTA post Bar chart blocks take "valueLabels": false, for charts with several series where the labels above each bar overlap; the tooltip still gives each value. The PTA post's two decile charts use it, and the population section no longer calls its figures provisional. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Finish Max's review: reach as households, whole-pound State Pension Replace the people-affected shares with the 74% of households that buy petrol or diesel, round the State Pension to the pound. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Add a line chart type for blog posts, and valueLabels for bar charts BlogLineChart.tsx draws series against a numeric x axis, with step series, markers labelled in a strip above the plot, an x axis format, a y axis fitted to the data on request, and a y axis width that follows the tick labels. blogChartUtils gains a thousands separator, a niceTicks option that leaves zero out, and validFormat. Bar charts take "valueLabels": false when several series make the labels overlap. chart-standards.md documents both. Used by the Budget 2026 posts (#1457, #1459). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Give the household fuel duty base in the Treasury gap text PolicyEngine's household petrol and diesel carry £13.4bn of duty in 2026-27 (local run on the certified data and October forecast), against the OBR's £24bn of receipts. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Keep line chart axis labels, axis title and legend apart The first x tick label no longer touches the lowest y tick label at the plot's corner, and the legend sits clear of the x axis title. Checked on every chart in the PTA post at 1280 and 375 pixels wide. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Show the measure on its own in the net income table, per Max Rename the columns to without and with the measure, note that the Pension Tax Allowance would remove the pensioner's £93 of income tax, describe the population source as a run of the dashboard's measure (the dashboard has not published it yet), and keep the Budget's reach wording (35 million motorists, as well as businesses). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Round the PTA post's worked tables to whole pounds Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Add a footnote under the PTA budgetary table: both estimates are static Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Show the PTA's total cost to government in the budgetary table Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Split the cost table into duty, VAT and total, with a basis footnote Add 'Total cost: PolicyEngine' with costs negative, as the Treasury shows them, and an italic footnote on what the total includes, that PolicyEngine is static while the Treasury's costing has a demand response (policy costings, page 13), and the tax-year versus fiscal-year timing, as in the PTA post. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Say that the Treasury's PTA figure covers income tax only Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Neutral wording and absolute poverty in the PTA post Comparisons with the Treasury and the explainer become context, not judgements ("close to", "within £3 million", "slightly", "largest"); the decile pattern is given in numbers; the poverty result names the HBAI absolute measure before housing costs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Language review: state figures, give the Treasury as context Lead the key figure with PolicyEngine's estimate and give the Treasury's for context; replace the share-of-Treasury comparison and the reasons for the gap with the method differences only; drop unchecked causes and comparative phrasing ('the same per litre', 'does not compare', 'agree to within'). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Apply the PTA post's standards: rounding notes, poverty measure, labels Whole pounds in the weekly table, 'Figures may not sum because of rounding' under tables whose rows do not add, the absolute poverty rate before housing costs named and defined, and valueLabels off on the multi-series bar charts (merged with the PTA branch for the chart changes from #1462). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Add the dashboard calculator's pensioner and Max's smaller fixes Household 9 is the calculator's "pensioner on the full State Pension" (68, full new State Pension and £150, Band D council tax), with a link to the calculator. The methodology says the reform also passes into Universal Credit's tax on earnings, and "to the penny" replaces a rounding slip; the State Pension age limitation fits every example; the Pension Credit note gives the size of the calculator difference. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Shorten bar chart labels so every label shows at 375px Decile numbers 1 to 10 (1 = lowest) and month ranges with the years in the subtitle; drop the October-December bar, where both rates are 52.95p and the table above shows it. No text overlaps at 1280px or 375px. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Population results: people counts, benefit split and the OBR figures Max's review: compare people with the explainer's pensioner count (668,000 in 2027-28, 1.36 million by 2029-30); split the £12 million that comes back in 2027-28 (Pension Credit £8m, Housing Benefit £4m, Council Tax Reduction under £1m; no lost licences until 2028-29); say each household that loses (2,700 and 2,800) loses a free TV licence, and that the 2027-28 loss band is empty in the sample; describe the Treasury's later years in its own terms (National Accounts basis, unexplained); add the OBR's policy table figures, which also count income tax only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * State that the Treasury figure covers fuel duty receipts only The OBR's policy table (EFO October 2026, detailed forecast tables, Table 1.1) scores row 3 as 'Receipts | Fuel Duty', -573.8 and -781.8, with no VAT line, so the footnote and key figure say so. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Note the calculator's unrounded State Pension for household 9 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Shorten the budgetary table footnote to the static point Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Shorten the cost table footnote to the static-dynamic line Move the total cost definition, the fuel-duty-only coverage, the base and the timing basis into the paragraph after the table. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Say that the OBR's income tax figures and PolicyEngine's total cost match by coincidence Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Show the rounding up in the PTA value step: £93.28 to £94 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Say which households the average gains in 2028-29 and 2029-30 cover Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Audit fixes: Gini basis, £230 note, assumptions wording, OBR link Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Move explainers and technical detail into an appendix The main text keeps the rules, the household results, the charts and the population results, with one-line pointers. The appendix holds the household and tax-year definitions, projections and coverage, the effective marginal rate, poverty and deciles, the population run, the comparison with the Treasury and the OBR, assumptions and methodology. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Move the PTA post's technical detail into an appendix The main text keeps the rules, the household results and the population results, with short introductions. The appendix holds the projections and uprating reading, household definitions, income taxed above 20%, chart definitions, the population run setup, the comparison with the Treasury and the OBR, assumptions and methodology. No figure changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Retitle the PTA post: The Pension Tax Allowance in the Autumn Budget 2026 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Final audit fixes: October net income, Gini, uprating, sources - Net income table on the October scenario (the March path kept the Pension Credit guarantee at £243.47): pensioner HB £7,682, CTR £1,564, net income £20,002 -> £20,024; region, ages, Winter Fuel Payment stated - Gini change given as a relative change (0.01%, 0.02%) - Uprating reason simplified; decile basis is HBAI income - Rate table ends the 60.59p row on 31 March 2028; RPI from April 2028 - Table 6.1 links to the Budget document; HMRC May 2026 note cited - £230 baseline from footnote 98; OBR VAT wording; other fuels 'where practical'; VAT-registered businesses save the duty only - Key figure notes the April 2027 assumption Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Title the post 'The fuel duty cut extension in the Autumn Budget 2026' Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Say that the pensioner gets no Pension Credit Their income after tax (£12,943) is above the October guarantee (£12,761), so the table lists Housing Benefit and Council Tax Reduction only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Decile charts: values from the dashboard's calculators at #290's 9b98370e The two decile charts held the 0d9dccb2 preview's values, from before the October detailed-table inputs. These are the dashboard's own DistributionalImpactCalculator and WinnersLosersCalculator on fuel_duty_rise_deferral at 9b98370e, the bundle's certified data and the October forecast. They are stored to 3 dp (pounds) and 5 dp (shares), so the charts' toFixed rounds once. Shown values that change: decile 2, 2026-27, £7 to £8; decile 7, 2027-28, £20 to £19; decile 10's 2027-28 share, 0.015% to 0.014%, as the text says. Every other bar, and every figure in the text, is unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Max Ghenis <mghenis@gmail.com>
* Draft Autumn Budget 2026 savings/property and trading explainers * Add provisional dashboard population results to draft explainers * Clarify income bands and prepare draft review handoff * Add a line chart type for blog posts, and valueLabels for bar charts BlogLineChart.tsx draws series against a numeric x axis, with step series, markers labelled in a strip above the plot, an x axis format, a y axis fitted to the data on request, and a y axis width that follows the tick labels. blogChartUtils gains a thousands separator, a niceTicks option that leaves zero out, and validFormat. Bar charts take "valueLabels": false when several series make the labels overlap. chart-standards.md documents both. Used by the Budget 2026 posts (#1457, #1459). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Keep savings/property post and shared analysis in base draft * Keep line chart axis labels, axis title and legend apart The first x tick label no longer touches the lowest y tick label at the plot's corner, and the legend sits clear of the x axis title. Checked on every chart in the PTA post at 1280 and 375 pixels wide. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Pin Budget paragraph citations and record latest review decisions * Round savings/property worked table to whole pounds * Flag pending replacement of regenerated national results * Align budget explainers with PTA forecast and chart methodology * Add illustrated savings and property cover * Clarify cover image provenance * Split property income tax explainer from savings draft * Clarify property sources and shared household methodology * docs: clarify budget household generator scope * docs: add property microsimulation to Budget explainer * docs: address property microsimulation review feedback Clarify the timing comparison and landlord residence. Remove internal review notes and uncleared reach, poverty and inequality outputs while retaining verified national revenue and decile results. * docs: remove withdrawn microsimulation previews Drop the old combined savings/property and trading preview aggregates, their verifier and public references. Keep the approved property-only revenue and decile microsimulation unchanged. * docs: remove internal review-status wording * docs: compare property estimate with the OBR's income tax line Max's rule (28 Oct): cite primary sources. Compare PolicyEngine with the income tax line of measure 61 in the OBR's detailed policy table (Table 1.1, policy.xlsx sha256 cdcc2a06): 0, 0, 539, 394, 403, 412 £m. Table 6.1's total (the lines rounded to the nearest £5m) stays as context, and the other lines are named by the table's own labels. From 2029-30 the estimate is 9%, 10% and 11% above that line (unrounded figures). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs: say the OBR income tax line is the closest comparison, not the same scope Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs: broaden property explainer key figures heading * docs: say 'exceeds' rather than 'is above' (style) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs: dashboard line covers the Budget measures we model Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: PavelMakarchuk <pavel.ma99@gmail.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Max Ghenis <mghenis@gmail.com>
Summary
Adds a UK blog post that explains the Budget 2026 Pension Tax Allowance (PTA) step by step. It walks through the rules, worked examples and household charts behind the PTA figures that the Autumn Budget dashboard publishes (£94, £182 and £250 full allowances), then the population results.
Depends on #1462 (the
linechart type and bar chartvalueLabels), which this PR is based on, so the diff here is the post only: the article, itsposts.jsonentry and the cover.Structure
Method
pe.uk.calculate_householdon publishedpolicyengine[uk]==6.11.1(policyengine-uk 2.151.0, policyengine-core 3.33.3), on the OBR's October 2026 forecast as the dashboard'swith_forecastapplies it (uk-autumn-budget-dashboard-2026 at 64042657), with the PTA added to that scenario.income_tax, capped at the tax due, and also the tax Universal Credit deducts from earnings (uc_income_tax_on_earnings), which policyengine-uk computes separately (see the comment on uk-autumn-budget-dashboard-2026#290). Rules and values matchbudget_measures/pension_tax_allowance.pyin Create Donate page #290.pe.uk.managed_microsimulation, as the dashboard'sbuild_microsimulationdoes, on the certified Microcosm UK dataset the 6.11.1 bundle pins (microcosm-uk-2024-25-national-20261025T091414Z-a6299504). Static, no behavioural response.Checks
To review
🤖 Generated with Claude Code