PAYE Payroll Calculation for Nigeria using Formula

First, determine your taxable income and using the Nigerian tax bracket system, define the taxes that apply to each bracket.

Assuming taxable income = TI
Assuming Annual Gross = AG
Tax Payable one
Condition: TI <= 0
Formula: AG *0.01

Tax Payable 7
Condition: TI > 3200000
Formula: 560000+(0.24*(TI-3200000))

560000 being tax payable up to this point.

Tax Payable one is calculated on AG because according to Nigerian Tax Law, if taxable income is less than or equal to 0, a flat rate of 1% is taxable on gross income.



Taxable income= CI

Tax Payable one
Condition: CI <= 0
Formula: AG *0.01

Tax Payable TWO
Condition: CI <= 300000
Formula: CI*.07

Tax Payable THREE
Condition: CI <= 600000
Formula: 21000+(.11*(TI-300000))

Tax Payable FOUR
Condition: CI <= 1100000
Formula: 54000+(.15*(TI-600000))

Tax Payable FIVE
Condition: CI <= 1600000
Formula: 129000+(.19*(TI-1100000))

Tax Payable SIX
Condition: CI <= 3200000
Formula: 224000+(.21*(TI-1600000))

Tax Payable SEVEN
Condition: CI > 3200000
Formula: 560000+(.24*(TI-3200000))

pension fund



still didnt get the right deduction
I Noticed PENSION FUND is not visible on the slip

Almost there but missing something in condition. To determine the band your condition from Tax Payable 2 upwards must identify the tax bracket otherwise it will calculate payable tax wrongly. so for instance:

Tax Payable 2 Condition: (first N300,000)
CI > 0 and CI <= 300000

Tax Payable 3 Condition: (Next N300,000)
CI > 300000 and TI <= 600000

Tax Payable 4 Condition: (Next N500,000)
CI > 600000 and CI <= 1100000

and so on until you get to Tax Payable 7 which determines the tax payable if next salary band is is in excess of N3,200,000.

Up until this point I assume these tax components are created as statistical components so they will not show up in your totals. you need to create a pension component which will show on your payslip and use it to calculate your pension deduction. But you created a pension component and made it statistical in earning so it will not act as a deduction. Move to deduction section to give it effect.

on the earning i created Pension P as statistical component
I gave it effect in deduction as pension fund (PF) this time its not a statistical component but it is calculated from P

inserted the conditions but didnt get any deduction on the slip

Okay so I’m just going to dump mine here so you can compare with yours to see what could be different.

1 Like

i really must appreciate your effort and time in helping me out, trust me i sincerly do but as at this hour, i have compared both with mine yet i dont know why my results are different :sob:. Does it have anything to do with the unticked check box on each salary component or version or anything ?

Hi @Chibuzor_Derrick, If you are still having issues replicating @flexy2ky suggestions then I suggest you take a step back and ensure the salary components are of the correct types, Generally,

  1. Employer Contribution (10% of Basic, Housing, Transport) should be tagged as “do not add to total” with its values not contributing to the total deductions.

  2. Consolidated Relief Allowance, Taxable Income, Additional Tax Relief, All Tax Payable Slabs should be Statistical components, so they can be calculated alone.

  3. Employee Contribution (8% of Basic, Housing, Transport), PAYE (Income Tax) should be normal deductions with their values contributing to the total deductions.

One way to easily identify the source of the issue would be to change them all to generic components so that they can be seen on the salary slip so as to see where the calculations break.

1 Like


Earning : all statistical component are unticked to “dont add on total” and the rest are ticked “depend on payment days”

Deduction: all statistical component where ticked and the rest are “depend on payment days”

i can categorically say that the calculation is correct using the snip_shots from @flexy2ky as shown above

by the time i ticked statistical component for (annual gross,pension,cra,taxfree income, chargable income) in the earning. i get this

Move them to deduction section

1 Like

this solves it


@Ebuka_Joseph_Akeru @flexy2ky

1 Like

Hi, @Ebuka_Joseph_Akeru do you mean that the highlighted checkbox in the image below should be ticked (The checkbox where it says “Do not include in total”) for the Basic, Housing, Transport e.t.c?

No, I mean you should check it for only Employer Pension which is 10% of Basic, Housing, and Transport. Those components should be set as normal components.


Ok, thanks for the explanation.

ok good

Nigerian PAYE 2021 is a little different from the previous years.
If you use the formula in salary components, it’s a good idea but becomes difficult to understand in the long run. If in the nearest future, the formula is changed again you begin to scramble because tracking the spot to change is cryptic.

The PAYE TAX can be easily achieved with a plugin that validates instantly both on salary slip form, or in the background.

There is also an option of API based PAYE computation that interface with your erpnext.

Both solutions available.

1 Like

@Huawei_Hackace Thanks for bringing this up. However from my little investigation so far not much has changed in the way tax computation for salary earners is achieved. The tax derivation formula is more or less the same, save for an additional element in determining your non-taxable income. Essentially the extra element is 1% or N200,000+20% of gross income (whichever is higher) is added to the tax-exempt income. Everything else is same. I have not attempted to add this tax-exempt to my existing structure but will do so at a later date.

As for tracking changes, someone will always need to adapt changes to any software so be it your suggested plugin or using the existing condition/formula in ERPNext; someone still has to do the dirty work. ERPNext, for all its quirks, still offer ways to achieve these things and just like I figured out a way to use the current salary structure to achieve the previous tax calculation, I will find a way to incorporate this new tax element.


Hello all,
After configuring the salary structure, and salary component, it came out like this.

The computation for the different salary components is correct according to their calculation. But when you look at the gross pay, net pay and rounded total, they don’t add up. Please I am a bit confused as to how to correct or resolve this miscalculation. I will be grateful if anyone can assist in resolving this error, I will be very grateful.

There are several errors in what you have done.

  1. Your computation formula is wrong on different levels. You captured your earnings as annual figures and some as monthly figures. This will give you a wrong computation for the month.
  2. Also, ignore the rounded total. Disable it in payroll settings and hide the field in the doctype.
  3. Some of the elements you reflected on the payslip are meant to be statistical components only and should not affect your totals.

Overall, you need to review what you have done against examples posted above and make corrections.

Thanks for your response @flexy2ky. Your response gave me an insight into where the errors are, and how to correct them. However, here is the outcome after following your corrections.

The circled components are the components that are computing the wrong figures. I would want a situation whereby the “Pay As You Earn” component computes the right figures, but can’t seem to achieve this.

Here are screenshots of my configuration using the examples given in this thread. Thanks for the help.