Skip to content

Commit f98c2b3

Browse files
vahid-ahmadiclaude
andauthored
Fix Scottish top rate threshold to use correct above-PA value (#1488)
* Fix Scottish top rate threshold to use correct above-PA value 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> * Add changelog entry Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * Add SFC reference, unit tests, and fix changelog formatting - 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> --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
1 parent bb38bbc commit f98c2b3

3 files changed

Lines changed: 40 additions & 3 deletions

File tree

changelog_entry.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
- bump: patch
2+
changes:
3+
fixed:
4+
- Scottish top rate (48%) threshold corrected from 125,140 to 112,570 (above
5+
personal allowance). The threshold was incorrectly stored as the total income
6+
value instead of the amount above PA, causing the top rate to effectively start
7+
at 137,710 instead of 125,140.

policyengine_uk/parameters/gov/hmrc/income_tax/rates/scotland/rates.yaml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,10 +71,12 @@ brackets:
7171
- threshold:
7272
values:
7373
2017-04-06: null
74-
2024-04-06: 125_140
75-
2025-04-06: 125_140
74+
# Top rate threshold: £125,140 total income = £112,570 above PA
75+
# (£125,140 - £12,570 personal allowance)
76+
2024-04-06: 112_570
77+
2025-04-06: 112_570
7678
# Scottish Budget 2025-26 announced freeze through 2026-27
77-
2026-04-06: 125_140
79+
2026-04-06: 112_570
7880
metadata:
7981
uprating: gov.economic_assumptions.indices.obr.consumer_price_index
8082
rate:
@@ -89,3 +91,5 @@ metadata:
8991
href: https://www.gov.uk/government/publications/rates-and-allowances-income-tax/income-tax-rates-and-allowances-current-and-past
9092
- title: Scottish Budget 2025-26 - Higher rate threshold freeze
9193
href: https://www.gov.scot/publications/scottish-budget-2025-26/
94+
- title: Scottish Fiscal Commission - Scotland's Economic and Fiscal Forecasts January 2026
95+
href: https://fiscalcommission.scot/wp-content/uploads/2026/01/Scotlands-Economic-and-Fiscal-Forecasts-January-2026-revised-13-01-2026.pdf

policyengine_uk/tests/policy/baseline/finance/tax/income_tax/scottish_rates.yaml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,29 @@
66
region: SCOTLAND
77
output:
88
tax_band: STARTER
9+
10+
- name: Scottish top rate applies at 125140 total income
11+
period: 2025
12+
absolute_error_margin: 0
13+
input:
14+
# Top rate (48%) starts at 125,140 total income (112,570 above PA)
15+
# At this income, PA is fully tapered, so taxable income = 125,140
16+
# This exceeds the top rate threshold of 112,570
17+
adjusted_net_income: 125140
18+
region: SCOTLAND
19+
output:
20+
# TaxBand enum uses ADDITIONAL for both Advanced (45%) and Top (48%) rates
21+
tax_band: ADDITIONAL
22+
23+
- name: Scottish income above advanced threshold
24+
period: 2025
25+
absolute_error_margin: 0
26+
input:
27+
# 100,000 income is above advanced rate threshold (62,430 above PA)
28+
# but below top rate threshold (112,570 above PA)
29+
# PA at 100,000 is 12,570 (not yet tapered), taxable = 87,430
30+
adjusted_net_income: 100000
31+
region: SCOTLAND
32+
output:
33+
# TaxBand enum uses ADDITIONAL for both Advanced (45%) and Top (48%) rates
34+
tax_band: ADDITIONAL

0 commit comments

Comments
 (0)