Skip to content

Add blog post analyzing income tax and National Insurance reforms#2811

Merged
vahid-ahmadi merged 31 commits intomasterfrom
change-income-tax
Nov 20, 2025
Merged

Add blog post analyzing income tax and National Insurance reforms#2811
vahid-ahmadi merged 31 commits intomasterfrom
change-income-tax

Conversation

@vahid-ahmadi
Copy link
Collaborator

@vahid-ahmadi vahid-ahmadi commented Nov 14, 2025

Chart Creation Methodology

Figure 1: Budgetary Impact (Stacked Bar Chart): Figure 1 uses a stacking methodology where each reform is applied sequentially on top of the previous ones
to capture interaction effects:

  1. Threshold freeze extension (baseline): https://legacy.policyengine.org/uk/policy?focus=policyOutput.policyBreakdown&reform=94934&region=uk&timePeriod=2029&baseline=1
  2. NI reduction applied on top of freeze: https://legacy.policyengine.org/uk/policy?focus=policyOutput.policyBreakdown&reform=94938&region=uk&timePeriod=2029&baseline=83092
  3. Income tax increase applied on top of freeze + NI: https://legacy.policyengine.org/uk/policy?focus=policyOutput.policyBreakdown&reform=94911&region=uk&timePeriod=2029&baseline=94938

This stacking approach ensures the individual components add to the combined total and captures how reforms
interact with each other.

Distributional and Winners/Losers Analysis

These figures show each reform independently against baseline to isolate their distinct effects:

Data Processing

For each reform and year (2026-2029):

  1. Downloaded CSV data files from PolicyEngine webapp using the links above
  2. Generated Plotly chart specifications using Claude Code
  3. Embedded the Plotly JSON directly in the markdown file

@vahid-ahmadi vahid-ahmadi self-assigned this Nov 14, 2025
Copilot AI review requested due to automatic review settings November 14, 2025 13:02
@vercel
Copy link

vercel bot commented Nov 14, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
policyengine-app Ready Ready Preview Comment Nov 20, 2025 8:22am

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds a comprehensive blog post analyzing three UK tax reforms: increasing the basic income tax rate from 20% to 22%, reducing National Insurance contributions from 8% to 6%, and extending the income tax threshold freeze to 2029-30. The analysis uses PolicyEngine's microsimulation model to assess budgetary impacts, distributional effects, and poverty implications.

Key changes:

  • New blog post with detailed policy analysis including budgetary projections totaling £37.7 billion over five years
  • Six interactive Plotly visualizations showing distributional impacts and population effects across income deciles
  • Quantitative poverty and inequality impact assessments for each reform

Reviewed Changes

Copilot reviewed 3 out of 4 changed files in this pull request and generated 3 comments.

File Description
src/posts/posts.json Adds metadata entry for the new blog post with title, description, date, tags, filename, image reference, and author
src/posts/articles/uk-income-tax-ni-reforms-2025.md Creates comprehensive 711-line blog post analyzing three tax reforms with budgetary tables, distributional charts, winner/loser analysis, and poverty/inequality impacts
changelog_entry.yaml Updates changelog description to reflect the new blog post addition

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

- Replace "shift the tax burden" with factual description of who pays
- Correct "fiscal drag" misuse - describe threshold freeze mechanism accurately
- Change "could have" to "would have" for precision
- Remove implied policy intent ("designed to address" → "submitted amid")
- Add specific percentage ranges in winners/losers sections
- Use neutral language throughout ("shows distribution" vs "would see")

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Reverts previous incorrect removal of "fiscal drag" term. This is the
standard term used across UK policy institutions (IFS, OBR, Treasury)
to describe revenue from threshold freezes during inflation.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Attribute to The Times for initial report (Nov 6 OBR submission)
- Attribute to Financial Times for subsequent report (Nov 13 exclusion)
- Use active voice throughout
- Describe net effect of combined reforms for workers
- Remove redundancy in describing the three options
- Add specific details (2pp rates, £6.9B net revenue)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Replace Times article link with primary FT source for the report
that Reeves excluded the income tax/NI changes from her November 13
OBR submission. Always cite primary sources when available.

FT URL: https://www.ft.com/content/6cbb46b1-c075-453b-a9f9-7eb1e9120d9b

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Specify this was an "expected" OBR downgrade (not yet published)
- Define the £30 billion as a "shortfall in fiscal headroom"
- Explain what fiscal headroom means (meeting fiscal rules with
  adequate buffers)
- Maintain proper attribution to The Times reporting

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Create notebook following PolicyEngine UK pattern to generate:
- Combined reform distributional impact charts
- Animation by year (2026-2029) using animation_frame
- Decile-level analysis with policyengine_uk Microsimulation

Notebook includes template code for:
- Reform definitions (NI reduction, income tax increase)
- Baseline and reformed microsimulations
- Multi-year decile impact calculations
- Animated Plotly charts with format_fig styling

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
MaxGhenis and others added 2 commits November 17, 2025 15:24
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Specify "absolute before-housing-costs poverty rate"
- Add + signs to positive poverty changes in table (+1.7%, +0.3%)
- Update conclusion to use full poverty metric name

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@vahid-ahmadi vahid-ahmadi merged commit 6a32ffd into master Nov 20, 2025
4 checks passed
@github-project-automation github-project-automation bot moved this from Todo to Done in policyengine-app Nov 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants