Skip to content

Annual allowance taper ignores the s. 228ZA threshold-income test and employer contributions in adjusted income #2244

Open

Description

@MaxGhenis

What happens

pension_annual_allowance tapers the allowance when adjusted_net_income exceeds annual_allowance.taper: max(minimum, default − 0.5 × max(0, ANI − taper)). The parameters date the taper from 2015-04-01 at £240,000 with a £4,000 minimum, then £260,000 and £10,000 from 2023-04-06.

The law (FA 2004 s. 228ZA, current text)

  • The taper applies only to a "high-income individual": adjusted income above £260,000 and threshold income above £260,000 minus the s. 228 allowance, so £200,000 (s. 228ZA(3)).
  • Adjusted income is net income plus net-pay and claimed pension relief, plus the total pension input amount less the individual's own contributions, so employer contributions and defined-benefit accrual count (s. 228ZA(4)).
  • Threshold income adds back salary sacrificed for pension provision after 9 July 2015, and deducts relief-at-source contributions (s. 228ZA(5)).
  • The reduction is rounded down to a whole pound (s. 228ZA(2)).

The taper was introduced for 2016-17. The earlier thresholds should be checked against the amending Finance Acts when fixing: as I understand them, adjusted income £150,000, threshold income £110,000 and a £10,000 minimum for 2016-17 to 2019-20, then £240,000, £200,000 and £4,000 for 2020-21 to 2022-23. The model has no taper before 2016-17 in law but applies one from 2015.

Fix

Model adjusted income and threshold income as the statute defines them, add the threshold-income condition, round the reduction down to £1, and date the parameters to the amending Acts. Property tests: the allowance is never below the minimum, never above the s. 228 amount, non-increasing in adjusted income, and untapered whenever threshold income is at or below the limit.

Found while fixing #2237 (#2240). The fiscal-event replay (PolicyEngine/policyengine-scorecard#157) reverses Spring Budget 2023's taper change, so this affects that leg.

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