Skip to content

Conversation

@vahid-ahmadi
Copy link
Collaborator

Summary

  • Fixes Scottish top rate (48%) threshold from £125,140 to £112,570 (above personal allowance)
  • The threshold was incorrectly stored as the total income value instead of the amount above PA

Details

PolicyEngine stores income tax thresholds as amounts above the personal allowance (£12,570), not as total income. The Scottish top rate threshold was incorrectly set to:

Before After
Stored value £125,140 £112,570
Effective total threshold £137,710 ❌ £125,140 ✓

The correct calculation:

  • Total income threshold: £125,140
  • Above PA: £125,140 - £12,570 = £112,570

Impact

This bug caused:

  1. Top rate to effectively start at £137,710 total income instead of £125,140
  2. Significant underestimation of top rate taxpayers in Scotland
  3. Revenue from threshold freezes was overestimated by ~4-6x (PE showed £11-17m vs SFC's £1-3m)

Test plan

  • Verified parameter loads correctly with new value
  • Confirmed bracket 5 now shows £112,570 above PA (= £125,140 total)
  • Run full test suite

🤖 Generated with Claude Code

vahid-ahmadi and others added 3 commits January 21, 2026 11:40
The Scottish top rate (48%) threshold was incorrectly stored as £125,140
(the total income threshold) instead of £112,570 (the amount above
personal allowance).

PolicyEngine stores income tax thresholds as amounts ABOVE the personal
allowance (£12,570), not as total income. The correct calculation is:
- Total income threshold: £125,140
- Above PA: £125,140 - £12,570 = £112,570

This bug caused the top rate to effectively start at £137,710 total
income instead of £125,140, significantly underestimating the number
of top rate taxpayers and the revenue from threshold freezes.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add Scottish Fiscal Commission January 2026 reference to rates.yaml
- Add two unit tests for Scottish top rate threshold verification
- Remove currency symbols from changelog entry for consistency

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@vahid-ahmadi vahid-ahmadi merged commit f98c2b3 into main Jan 21, 2026
2 checks passed
@vahid-ahmadi vahid-ahmadi deleted the fix/scottish-top-rate-threshold branch January 21, 2026 11:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants