Functional Weave
Code in Python

invest.pension-annual-allowance@1.0.0

README.md

5,359 bytes · view raw

# invest.pension-annual-allowance

**Status: needs review by a tax professional before it is published.**

The UK pension annual allowance for a tax year, after the taper and the money
purchase annual allowance (MPAA), the unused allowance carried forward from
the three previous tax years, and the amount subject to the annual allowance
charge. The charge itself is income tax at the member's marginal rate on that
excess, which is left to an income tax calculation.

## How it is worked out

- **Allowance.** The standard annual allowance for the year. If threshold
  income is over its limit *and* adjusted income is over its limit, it is
  reduced by £1 for every £2 of adjusted income over the limit, the reduction
  rounded down to a whole pound, but not below the minimum tapered allowance
  (PTM057100). Both tests are "more than", so exactly £200,000 of threshold
  income is not tapered.
- **Carry-forward.** Unused allowance of each of the three previous tax years
  can be carried forward, if the member belonged to a registered pension
  scheme at some time in that year. The current year's allowance is used
  first, then the earliest previous year's unused allowance (PTM055100).
- **Earlier excesses.** An excess in one of the previous years will already
  have used unused allowance from the years before it, earliest first
  (PTM055200). So the previous years are replayed oldest first. Pass more
  than three years, oldest first, to replay further back; the oldest year you
  pass is assumed to have had nothing of its own to carry forward.
- **MPAA.** When the MPAA applies and money purchase input (from the trigger
  on) is over it, the rest of the inputs are tested against the alternative
  annual allowance, the (tapered) allowance less the MPAA. Carry-forward can
  top up the alternative allowance but never the MPAA. The amount charged is
  the greater of the alternative chargeable amount (money purchase over the
  MPAA plus other inputs over the alternative allowance) and the default one
  (all inputs over the allowance) (PTM056510, PTM056540). A year like that
  carries forward the alternative allowance less its other inputs
  (PTM055100).

`moneyPurchaseInput` is the money purchase input tested against the MPAA:
all of it in a year after the trigger, only the part after the trigger event
in the year it happens. Everything else (defined benefit and cash balance
inputs, and money purchase input before the trigger) is `otherInput`. When the
MPAA does not apply the split does not matter.

## Rules data

`data/annual-allowance.json`, from 2016/17 (the first year of the taper), so
the year tested must be 2019/20 or later to have three earlier years.

| Tax years | Allowance | Taper: threshold / adjusted income | Minimum | MPAA |
|---|---|---|---|---|
| 2016/17 | £40,000 | £110,000 / £150,000 | £10,000 | £10,000 |
| 2017/18 to 2019/20 | £40,000 | £110,000 / £150,000 | £10,000 | £4,000 |
| 2020/21 to 2022/23 | £40,000 | £200,000 / £240,000 | £4,000 | £4,000 |
| 2023/24 on | £60,000 | £200,000 / £260,000 | £10,000 | £10,000 |

## Out of scope

Working out pension input amounts (defined benefit growth, the opening value
revaluation, deferred members), threshold and adjusted income themselves, the
2015/16 transitional rules, scheme pays, the lifetime allowance, and
individuals who are in more than one MPAA-related circumstance in a year
beyond the split described above.

## Sources

Read on 2026-09-23:

- GOV.UK, "Tax on your private pension contributions: Annual allowance"
  (£60,000; taper over £200,000 threshold and £260,000 adjusted income;
  carry-forward from the previous 3 tax years):
  https://www.gov.uk/tax-on-your-private-pension/annual-allowance
- HMRC Pensions Tax Manual PTM051100, "Annual allowance: essential principles"
  (£40,000 from 2014/15, £60,000 from 2023/24):
  https://www.gov.uk/hmrc-internal-manuals/pensions-tax-manual/ptm051100
- PTM057100, "Tapered annual allowance" (thresholds and minimums by year;
  £1 for every £2, rounded down to the nearest £1):
  https://www.gov.uk/hmrc-internal-manuals/pensions-tax-manual/ptm057100
- PTM056540, "Money purchase annual allowance: trigger event occurs during tax
  year 2016-17 or a later tax year" (MPAA £10,000 2016/17, £4,000 2017/18 to
  2022/23, £10,000 from 2023/24; alternative and default chargeable amounts):
  https://www.gov.uk/hmrc-internal-manuals/pensions-tax-manual/ptm056540
- PTM056510, "Money purchase annual allowance" (carry-forward is added to the
  alternative annual allowance; taper reduces it):
  https://www.gov.uk/hmrc-internal-manuals/pensions-tax-manual/ptm056510
- PTM055100, "Carry forward" (order of use, membership, tapered and MPAA
  years): https://www.gov.uk/hmrc-internal-manuals/pensions-tax-manual/ptm055100
- PTM055200, "Carry forward: calculating unused annual allowance" (earlier
  excesses use earlier unused allowance first):
  https://www.gov.uk/hmrc-internal-manuals/pensions-tax-manual/ptm055200

## What a reviewer should check

- How much carry-forward an MPAA year consumes when the default chargeable
  amount is chosen (here: whatever the default computation used).
- The tie rule: when the alternative and default chargeable amounts are
  equal, the default (standard) basis is reported.
- Assuming nothing carried into the oldest year passed.