You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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:
In the case of the basic tax rate payers (11799/11800):
the income tax to be the same for both
the marginal tax rate for both to be 20%
In the case of the higher rate tax payers (11816/11817):
the income tax to be reduced for 11816 by £1200 (20% of £6000)
the marginal tax rate for both to be 40%
For both:
the net income should reflect the 'tax relief at source' of +20%
I guess this is more of a design point. Like what is 'net income' defined as? With these pension payments you are locking away the money until you retire, so maybe it should count towards some measure of 'wealth' or 'deferred income'? Because net income sounds like what you take-home, which is reduced if you are paying money to your pension.
Either way this tax relief at source is not accounted for.
Here is what actually happened:
In the case of the basic tax rate payers (11799/11800):
11799 had an income tax reduction of £600
The marginal tax rate for 11799 is marked as 0% (on the right hand side panel)
In the case of the higher rate tax payers (11816/11817):
The income tax for 11816 is £2400 lower
The marginal tax rate for 11816 is marked as 0% (on the right hand side panel)
Here is data (or links to it) that can help you reproduce this issue:
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:
For the amount that would have reduced taxable income to below the higher rate threshold, on the receiving party's side
For the amount that would have reduced taxable income to an amount above the higher rate threshold, by the taxpayer themself via Self Assessment
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.
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!):
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 😃
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.
#705 merged the pension-contribution calculation fixes discussed above. The remaining relief-at-source versus total-relief question is now documented in pension-tax-relief.md (updated by #1721), including all four scenarios from this issue and the distinction between relief at source and the higher-rate top-up. Closing this original report as resolved; this does not close separate pension-modelling enhancements.
Activity
nikhilwoodruff commentedon Mar 9, 2023
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_incomeshould 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:
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.
Yep- agreed here. And I found the cause- there's a bug in
taxable_employment_incomethat 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.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.
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 #705. Thanks!
rasoolsomji commentedon Mar 15, 2023
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!):
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 commentedon Mar 15, 2023
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.
Add pension tax relief documentation page (#704)
Compare PolicyEngine UK pension treatment with STBM (#672)
Add pension tax relief documentation page (#704)
Correct the pension tax relief page against current main
Compare PolicyEngine UK pension treatment with STBM (#672)
Bring the pension tax relief page up to date with main and the law
juaristi22 commentedon Oct 24, 2026
#705 merged the pension-contribution calculation fixes discussed above. The remaining relief-at-source versus total-relief question is now documented in
pension-tax-relief.md(updated by #1721), including all four scenarios from this issue and the distinction between relief at source and the higher-rate top-up. Closing this original report as resolved; this does not close separate pension-modelling enhancements.Current implementation: pension-tax-relief.md.