Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Pension tax relief

This page documents how PolicyEngine UK models tax relief on personal pension contributions and addresses the confusion reported in #704 about whether higher-rate taxpayers receive the right amount of relief. #704 is still open (October 2026); the figures below were re-run on policyengine-uk 2.148.2.

What the model does

pension_contributions_relief (defined in variables/gov/hmrc/pensions/pension_contributions_relief.py, with the limit in utils/pensions.py) reduces the person’s taxable income by their pension contributions, up to the annual limit for relief in Finance Act 2004 s. 190:

So someone with no earnings who makes a £3,600 gross contribution to a personal pension gets a £3,600 pension_contributions_relief, while the same payment as an employee contribution gets none. That £3,600 is the deduction from taxable income, not a cash top-up. Under relief at source the £3,600 gross contribution is £2,880 paid by the contributor plus £720 (20%) that the pension provider claims from HMRC and adds to the pension (Finance Act 2004 s. 192). PolicyEngine does not represent the £720 claim as a payment, and with no taxable income the deduction saves no income tax. Statutory Sick Pay and Statutory Maternity Pay were added to relevant earnings by #2464, merged on 19 October 2026. #2488, merged on 20 October 2026, applied the same relief-at-source-only rule to the pension uplift in adjusted total income.

The annual allowance does not limit the relief. pension_annual_allowance is the standard annual allowance (£60,000 from 6 April 2023). From 2016-17 it is tapered only when both the statutory adjusted income (pension_annual_allowance_adjusted_income, above £260,000 from 2023-24) and threshold income (pension_annual_allowance_threshold_income, above the taper level less the standard allowance, £200,000 from 2023-24) are over their limits, by £1 for every £2 of adjusted income above the taper level, rounded down to whole pounds, to a minimum of £10,000 (£4,000 from 2020-21 to 2022-23) (Finance Act 2004 s. 228ZA; parameters under gov.hmrc.income_tax.allowances.annual_allowance). See docs/engineering/pension-annual-allowance.md for the income conventions. Unused allowance carried forward from the previous three tax years (s. 228A) is unused_pension_annual_allowance, which is added to the allowance when the charge is worked out. It can be supplied for a year. Otherwise, because survey data does not record past pension input amounts, from 2020-21 the model estimates it: it assumes that in each of the five previous years the pension input and the incomes tested for the taper were this year’s (times gov.simulation.pensions.prior_year_input_ratio, 1, for the input), deflated by average earnings growth, and carries forward what the last three years’ allowances leave unused, after each year’s excess has used the unused allowance of the three years before it, earliest first (s. 228A(7)). The estimate is nil for someone with no pension input this year, and nil before 2020-21. The money purchase annual allowance, the £10,000 limit on money purchase savings after pensions are first flexibly accessed (s. 227ZA), is not modelled.

Contributions above the annual allowance can still be relieved and separately attract the annual allowance charge, personal_pension_contributions_tax, which is added to income tax. It charges the excess at the basic, higher and additional rates on the slices that fall in each band when it is added on top of the person’s income after allowances (Finance Act 2004 s. 227). Relief-at-source contributions are not deducted from that income. Under s. 192(4) they raise the basic and higher rate limits instead, but only for someone with income that would otherwise be taxed at the higher or additional rate. Savings from 2017-18, dividends and, from 2027-28, property income have their own rates and do not count. For a Scottish taxpayer, s. 192(4A) raises the Scottish basic rate limit and the limits above it where non-savings income would otherwise be taxed at a Scottish rate above the Scottish basic rate. Section 227(4C) then applies the raised limits to the charge, and the excess itself does not count towards that test (s. 227(5)). So an employee on £45,000 who pays £20,000 gross into a personal pension, with £50,000 of employer contributions, pays a £2,946 charge on the £10,000 excess in 2025-26: the excess sits on top of £32,430 of income after the personal allowance, which is below the £37,700 basic rate limit, so the limits are not raised and £4,730 of the excess falls in the higher rate band. Paid through a net pay arrangement, the same contributions would be deducted first and the charge would be £2,000. HMRC’s PTM056120 describes the limits as raised by any relief-at-source contribution, without the s. 192(4) condition, and says the charge is the same whichever way the contribution is paid; on that reading this charge would also be £2,000. The model follows the statutory condition. The amount tested against the allowance is pension_contributions_for_annual_allowance, which counts member contributions made before age 75, employer contributions and salary sacrifice (Finance Act 2004 s. 233). For example, an employee on £100,000 who pays £70,000 into a personal pension in 2025-26 gets £70,000 of relief and a £2,000 charge on the £10,000 excess, which falls in the basic rate band. The model’s default estimate of unused allowance for this person is nil, since the estimated input in each earlier year also exceeds that year’s allowance; with £10,000 of unused allowance brought forward, there is no charge. By default the pension input amount is cash contributions: defined_benefit_pension_share defaults to nil, which treats every contribution as money purchase. To count defined-benefit accrual, supply defined_benefit_pension_input_amount (for example from a pension savings statement) together with defined_benefit_pension_share, the share of workplace contributions it replaces; without the share it is added on top of contributions that still count as money purchase. A share supplied alone leaves the total unchanged before age 75, since the input amount is then estimated as those contributions times gov.simulation.pensions.defined_benefit_input_per_contribution (1). Supplying pension_contributions_for_annual_allowance overrides the whole total.

Relieved contributions also reduce adjusted_net_income, so they restore personal allowance lost above £100,000, as in law (Income Tax Act 2007 s. 58). An employee on £110,000 has a £7,570 personal allowance in 2025-26, and the full £12,570 if they pay £10,000 gross into a personal pension.

So the headline behaviour is: up to the relief limit, pension contributions reduce taxable income £1-for-£1. Where the deduction comes off one kind of income taxed at one rate, as in the worked examples below, the income-tax saving that the model reports is the contribution × the person’s marginal rate, plus any personal allowance restored.

Worked examples

The four scenarios reported in #704 (all self-employed, no other income), re-run for 2025-26 for a single person aged 40 with contributions entered as personal_pension_contributions; #704 gives no year or age. The “model” column was re-run in October 2026 on policyengine-uk 2.148.2:

IDSelf-employed incomePension contributionTotal relief as an income-tax changeWhat the model returnsWhy
11800£30,000£0baselinebaseline–
11799£30,000£3,000-£600-£600£3k contribution × 20% basic rate
11817£60,000£0baselinebaseline–
11816£60,000£6,000-£2,400-£2,400£6k contribution × 40% higher rate

This is exactly the behaviour reported. The user’s expectation that higher-rate cases should only see -£1,200 (£6k × 20%) corresponds to a misunderstanding of how UK pension tax relief works in aggregate: for someone like this, whose taxable income is at least the contribution and is all taxed at the basic, higher or additional rate, the total tax relief is the full marginal rate, even though it is paid in two parts in the real world (relief at source plus higher-rate top-up via Self Assessment).

Relief at source vs marginal-rate relief

The user-facing UK pension framework has two parallel mechanisms that together make up the total relief:

  1. Relief at source (RAS): the pension provider claims the basic-rate portion (20%) directly from HMRC. The contributor pays from net income and the pension grows by the gross amount. For a basic-rate taxpayer, this is the entire relief.

  2. Higher-rate top-up: for taxpayers with income taxed at the higher or additional rate itself (not at the savings, dividend or property rates; see above), the extra relief (in England, Wales and Northern Ireland, 20% for higher rate and 25% for additional rate) is claimed through Self Assessment or directly from HMRC. The mechanism is technically a rate-band extension: the basic rate limit and the higher rate limit are both raised by the gross contribution (Finance Act 2004 s. 192(4)), pushing income that would otherwise be taxed at the higher or additional rate down a band.

PolicyEngine computes the total relief (both mechanisms together) as a reduction in income tax, because it operates on annual aggregates rather than walking the cash-flow steps. It gives less than the law where basic-rate relief at source is worth more than the tax the deduction saves: on contributions above the person’s taxable income, such as the £720 on a non-taxpayer’s £3,600 contribution, and on contributions that come off income taxed below 20%, such as dividends at the dividend ordinary rate or a Scottish taxpayer’s starter rate band. The provider still claims 20% in those cases (s. 192(1)-(3)), but the model has less or no tax to reduce. Where the only income that would be taxed above the basic rate limit is savings (from 2017-18), dividends or (from 2027-28) property income, s. 192(4) raises no limits, so the relief in law is the 20% the provider claims, while the model’s deduction saves tax at the rates of the income it removes. The model can then give more or less than the law. An employee on £15,000 with £60,000 of dividends who pays £10,000 gross into a personal pension saves £3,648 of income tax in the model in 2025-26, against £2,000 of relief at source in law (raising the limits regardless of the condition would give £4,500: the £2,000 plus £2,500 less tax on dividends moved from the 33.75% upper rate to the 8.75% ordinary rate). With £12,000 of earnings and £40,000 of dividends, the same contribution saves £1,308 in the model, below the £2,000 in law. Otherwise this matches HMRC’s published statistics on the fiscal cost of pension tax relief, which also report the total across both mechanisms.

If you want to see the user-visible tax bill reduction separately from the pension-provider’s RAS claim, you’d need to split the existing relief into two output variables (a basic-rate-portion and a higher-rate-top-up portion). Outside the cases above where the model’s total differs from the law, this is a presentation question rather than a calculation question: the totals are unchanged.

Marginal tax rate display

#704 also reported a 0% marginal tax rate where 20% or 40% was expected. The model’s marginal_tax_rate variable (variables/household/marginal_tax_rate.py) raises the employment_income of each of the household’s two eldest adults in turn (gov.simulation.marginal_tax_rate_adults) by gov.simulation.marginal_tax_rate_delta (£1,000, or 0.1% of employment income where that is larger) and measures the share of the rise that does not reach household_net_income. Re-run in October 2026, it returns 20% for both £30,000 cases and 40% for both £60,000 cases, so the 0% reported in #704 no longer reproduces in the model.

References