Skip to content

Scottish top rate (48%) starts at £116,760: threshold stored as £112,570 instead of £125,140 #2130

Description

@MaxGhenis

Problem

Since #1488 (merged 2026-01-21), the Scottish top rate (48%) threshold in policyengine_uk/parameters/gov/hmrc/income_tax/rates/scotland/rates.yaml is £112,570 of taxable income for 2024-25, 2025-26 and 2026-27. The law puts it at £125,140, so PolicyEngine charges 48% on income that should be taxed at the 45% advanced rate.

#1488 reasoned that thresholds are stored above the personal allowance, so £125,140 − £12,570 = £112,570. That subtraction is right for the lower bands, but not for this one: the personal allowance is fully withdrawn at £125,140 of adjusted net income. At that point taxable income equals total income, so the taxable-income threshold is £125,140. This is the same value PolicyEngine already stores, correctly, for the rUK additional rate (rates/uk.yaml, £125,140).

GOV.UK, Scottish Income Tax (https://www.gov.uk/scottish-income-tax): "Advanced rate £75,001 to £125,140 45%", "Top rate over £125,140 48%", and "You do not get a Personal Allowance if you earn over £125,140."

Effect (policyengine-uk 2.93.0, 2025, Scottish taxpayer, employment income only)

Under the personal allowance taper, taxable income is 1.5 × income − £62,570. It reaches £112,570 at £116,760 of income, so the 48% rate starts there instead of at £125,140.

Employment income PolicyEngine income tax Hand calculation (2025-26 Scottish bands, top rate above £125,140 taxable) Overcharge
£110,000 £37,513.80 £37,513.80 £0
£116,760 £42,076.80 £42,076.80 £0
£120,000 £44,409.60 £44,263.80 £145.80
£125,140 £48,110.40 £47,733.30 £377.10
£130,000 £50,443.20 £50,066.10 £377.10

Every Scottish taxpayer with income above £125,140 pays £377.10 too much (3% × £12,570), and those between £116,760 and £125,140 pay part of that.

Fix

  • Set the top-rate threshold to 125_140 for 2024-04-06, 2025-04-06 and 2026-04-06, and correct the comment.
  • Update policyengine_uk/tests/policy/baseline/finance/tax/income_tax/scottish_rates.yaml so its expectations come from the bands above.
  • Add a test at £120,000 and one at £130,000 (expected values in the table).
  • Do the Axiom parity check for the Scottish rate resolution in rulespec-uk.

Found while reviewing PolicyEngine/policyengine-uk-data#533, whose salary sacrifice relief targets classify Scottish relief by bracket. That PR reads the thresholds from the parameters, so this fix changes only which bracket some Scottish relief falls in.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions