PolicyEngine / policyengine-uk

The UK's only open-source static tax-benefit microsimulation model.
https://policyengine.github.io/policyengine-uk/
GNU Affero General Public License v3.0
29 stars 27 forks source link

Pension tax relief calculations #704

Open rasoolsomji opened 1 year ago

rasoolsomji commented 1 year ago

Hi there!

I really enjoy OpenFisca, but I recently encountered an issue.

Here is what I did:

Set up one household with self-employed income of £30,000 (ID: 11800) Set up one household with self-employed income of £30,000 and private pension contributions of £3000 (ID: 11799) Set up one household with self-employed income of £60,000 (ID: 11817) Set up one household with self-employed income of £60,000 and private pension contributions of £6000 (ID: 11816)

Here is what I expected to happen:

Here is what actually happened:

Here is data (or links to it) that can help you reproduce this issue:

https://www.gov.uk/tax-on-your-private-pension/pension-tax-relief

Context

I identify more as a:

nikhilwoodruff commented 1 year ago

Thanks @rasoolsomji (and this is a great model issue for reproducibility and comprehensiveness). Just a few notes before I look into this further:

PolicyEngine UK essentially models pension contributions by deducting them from taxable income (I think perhaps it's not clear though that employment_income should be gross of pension contributions: I'll amend the metadata there). I think this model of pension contributions taxation is closest to the actual law (ITEPA 2003). But as I understand it in practice, pension contributions tax relief (together with charitable donations, for what it's worth) is segmented and handled:

I could see positives and negatives for handling it closer to its practice, but I think the important thing is ensuring both approaches are equivalent, which I think they are but will check closer.

OK- so onto your examples:

Here is what I expected to happen:

In the case of the basic tax rate payers (11799/11800):

  • the income tax to be the same for both

Not sure I agree here but let me know if you're sure. I think the self-employed still get tax relief on basic rate region contributions (e.g. here's a source), it's just paid back as a "25% bonus" rather than a reduction in taxable income (taxed at 20%). But I'm pretty sure this is equivalent.

  • the marginal tax rate for both to be 20%

Yep- agreed here. And I found the cause- there's a bug in taxable_employment_income that double-counts pension contributions when there's a mix of employment income and self-employment income. Thanks for identifying! After fixing I get 20% for both.

I guess this is more of a design point.

Yeah... I mean I think our current way of including it as a reduction in Income Tax seems to incorporate it? But open to suggestions.

  • the income tax to be reduced for 11816 by £1200 (20% of £6000)

Could you explain this one? I think it might be off for the same reason as above. But let me know if I've missed something.

Added the fixes mentioned here in https://github.com/PolicyEngine/policyengine-uk/pull/705. Thanks!

rasoolsomji commented 1 year ago

Thanks for the speedy and detailed response!

As you said, marking the +25% bonus as a -20% reduction in income tax is equivalent so that's all fine.

With user 11816 you are correct, they get -20% of £6000 (£1200 relief at source), and then another -20% of £6000 once they do their self-assessment.

Note that that source you linked is incorrect in (at least) one place (I'm pretty certain!):

image

If you're a higher rate tax payer, and you contribute £100, on your self assessment you will only receive £20 back.

So many online guides and calculators are just plain wrong when it comes to pension contributions which is why I'm so invested in this and wanted to raise this issue 😃

P.S. Happy UK budget day 🥲

nikhilwoodruff commented 1 year ago

Thanks- will take a proper look here in a bit. But before I forget, would be good to check against HMRC's Personal Tax Model as an extra source of truth, which I got via a FOI request a few years ago.