Skip to content

Document pension tax relief mechanics (#704)#1721

Open
vahid-ahmadi wants to merge 1 commit into
mainfrom
vahid-ahmadi/issue-704-pension-tax-relief-docs
Open

Document pension tax relief mechanics (#704)#1721
vahid-ahmadi wants to merge 1 commit into
mainfrom
vahid-ahmadi/issue-704-pension-tax-relief-docs

Conversation

@vahid-ahmadi
Copy link
Copy Markdown
Collaborator

Summary

  • Pension tax relief calculations #704 reported four worked scenarios where the user expected higher-rate pension contributions to produce only basic-rate (20%) income-tax relief but the model returned full marginal-rate (40%) reductions.
  • Investigation: the model is correct. The reported numbers match HMRC's treatment in aggregate (relief-at-source + higher-rate top-up via Self Assessment combined). The user's mental model only counted the first half.
  • New docs page at docs/book/programs/gov/hmrc/pension-tax-relief.md covering:
    • how pension_contributions_relief works (reduces taxable income £1-for-£1 up to the annual allowance / basic amount / earned income cap),
    • the four Pension tax relief calculations #704 scenarios with PolicyEngine's exact returns and the marginal-rate arithmetic that produces them,
    • the two-part real-world mechanism (RAS + basic-rate-band extension) and why PolicyEngine reports the combined total (matches HMRC's pension tax relief statistics methodology),
    • a note that the 0% marginal-tax-rate display the user observed is a frontend concern in the policyengine.org app, not the model repo,
    • references to FA 2004 s.188-194 and s.227, the HMRC user-facing pension tax relief guide, and HMRC pension tax relief statistics.

Pure documentation; no code changes. #704 can be closed.

Test plan

  • Markdown lints cleanly (table, links, MyST elements).
  • Docs build job picks up the new page under programs/gov/hmrc/.

🤖 Generated with Claude Code

#704 reported four worked scenarios where the user expected higher-rate
pension contributions to produce only basic-rate (20%) relief, but the
model returned full marginal-rate (40%) reductions in income tax.

Investigation: the model is correct. The reported numbers match HMRC's
treatment in aggregate (RAS + higher-rate top-up via Self Assessment).
The user's mental model only counted the first half (relief at source).

Persist the explanation in a docs page covering:

- how pension_contributions_relief works (reduces taxable income by the
  contribution amount, capped at annual allowance / basic amount /
  earned income / age limit),
- the four #704 worked scenarios with PolicyEngine's exact returns and
  the marginal-rate arithmetic that produces them,
- the two-part real-world mechanism (RAS + basic-rate-band extension)
  and why PolicyEngine reports the combined total (matches HMRC
  pension tax relief statistics methodology),
- a note that the 0% marginal-tax-rate display reported in the issue
  is a frontend concern in the policyengine.org app, not the model
  repo,
- references to FA 2004 s.188-194 and s.227, HMRC's user-facing pension
  tax relief guide, and pension tax relief statistics.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant