Salary and Deduction

Sorry I bumping this up again.
Isn’t there anybody else who is processing salaries (from salary structure) and is having to make deductions that are actually liabilities (income tax, pension tax, health care legal requirements, etc.)

Hi Francois, we’ll have a similar situation here, only if we make it to manage salaries, deductions, loans, etc… within ERPNext (fingers crossed!)

By now we’re behind such worries, just experimenting with (minimal) accounting, roles, items, buying and selling, etc…

If you happen to solve it (be it a new feature or a workaround) we’d love to read about your experience.

Not sure if there is any news on this but here are similar threads on the same topic.

I think all of it can be achieved using same-ish logic of template for sale/purchase tax & charges.

1 Like


Just seeing this thread. I think these are very important updates that need to be made to the HR Module

Just as Earning Types are generally calculated as percentages of the Basic Salary, Deduction Types are also usually calculated as percentages of specified Earning Types. For example, a Tax deduction could be say 7.5% of all Earnings except ‘Reimbursables’. It would help to be able to select all the specific Earning Types that should be taken into account when calculating a Deduction Type

An additional request is being able to settle an Expense Claim via an Earning Type for an Employee. A lot of times, Expense Claims (both for regular Expenditures and for Overtime) are paid back to Employees as ‘Reimbursables/Overtime’ which is an Earning Type in the Salary Structure

To sum it up, Salaries and Deductions are dynamic elements in any organisation but the way ERPNext currently handles this is too rigid and manual!

  1. Better handling of Deductions so that relevant accounts can be specified and journals raised accordingly to book these entries
  2. Earnings in Salary Structure as a percentage of specified Earning Types (ie Basic Salary)
  3. Deductions in Salary Structure as a percentage of specified Earning Types
  4. Option to settle Expense Claims via an Earning Type

If these features can be added, it would go a VERY long way in improving the Payroll/Accounting features of ERPNext


Kind regards,

1 Like

Bump to these thread! It will be so much better if those features mentioned by @Francois_Ifitwala and @wale added!! Especially for the deduction feature.

‎And while we’re on this topic, one of the major lacking features which has baffled me for a long time is the ability to link Attendance to Payroll. I mean, this is so fundamental to the way many organizations handle payroll. In fact, the whole point of Attendance taking in most cases is to link it to Payroll!

There should be an option to automatically calculate Absent Days and Half Days as Full Pay, Half Pay, or No Pay

Kind Regards,

Olawale‎From: Christopher SatriandaruSent: Monday, April 11, 2016 12:35 PMTo: wale@xavierltd.comReply To: Frappe DiscussSubject: [frappe-discuss] [Enhancement] Salary and Deduction


April 11

Bump to these thread! It will be so much better if those features mentioned by @Francois_Ifitwala and @wale added!! Especially for the deduction feature.

Visit Topic or reply to this email to respond

To stop receiving notifications for this particular topic, click here. To unsubscribe from these emails, change your user preferences

@rmehta I’ve added this as a github issue as discussed


Kind regards,

ya payroll management system is poor on erp next we must add at least the following basic feastures of a payroll
1, income tax must be calculated automatically based on rules like
if Mr. X basic salary is 5000
and the country law may be from 1500-3000 income tax will be basic salary20%-350
from 3000-5000 income tax will be basic salary
25%-550 and so on so the system must work like that
2, over time calculation also on this it must flexible to edit based on the country law
for hollyday ,weekly off, normal hour, at night and if other the system must automatically calculate from basic salary
3, the system deductions and earnings must be linked with there accounts …
4, the HR system must have a feature to link with attendance machines…

1 Like

any update on this issue?

there must be some work around solution anyone with the hint

there are multiple alternative in defining the Salary Structure. You can have yearly changing parameters announced by the government like the minimum wage rate and income tax brackets or disability allowances. These can be defined via a nicely designed succession of statistical parameters and conditioned calculations.
Of course during implementation, there will be a need for programming approach to the hierarchy and relations of these calculations. Whether or not to include some calculated values in totals, how to respond to annual changes. There are possibilities to use employee parameters both custom and standard.
If you can present a specific hurdle you encountered, we will be more than happy to help.

Looking for support for TAX slab


This it seems Human Resource (Payroll Process)

Kindly check out this link

how to implement this TAX slab ?


Kindly check out attachment and help me out

Turkey has allegedly the most complex payroll structure in the world. What I have done while implementing was to keep every step of calculation granular in the Salary Structure because in some way or another you make use of it. That means most of the Salary Structure Components to be of Statistical nature.
If the income tax or such a deduction is dependent on the total earned salary until that time of course you will need an extra custom field on the Employee that is somehow updated each time you pay the salary. Other method may be to programmatically calculate it but I have no experience or the inclination that way.
Salary Structure Assignment can also be used to feed the parameters of execution to the Components.
Having preached about the approach to the solution, please check out my reply below:

  1. Define a statistical Salary Structure Component (check only Statistical Component):
    Abbr: SLABAMNT19
    Type: Earning
    Condition and Formula:
    Amount: 600000
    I would advise to name this for every year if it is changed so that you will keep these component both reusable and isolated for historical purposes. You will see in the next step.

  2. Define another statistical Salary Structure Component:
    Abbr: SLABAMNT
    Type: Earning
    Condition and Formula:
    Amount Based on Formula: checked
    Formula: SLABAMNT19
    By doing this, you will continue to use SLABAMNT in further steps. Next year you will only need to define and change this assignment with probably SLABAMNT20 so that you will not need to change the formula for every following step.

Define SLABTOP19 and SLABTOP with the same approach as separate components.
You can apply the same approach to the tax rate to become parametric and not get lost within the formulas when this rate is changed. I would advise defining ERLYTX19 to be 0,05 and ERLYTX to be equal to ERLYTX19.

  1. I think you have an approach/design error on this salary calculation as I think you need to look at the cumulative income of the employee and then incur tax amounts. That is another scenario to discuss. The employee might start working within the year and may leave early and such. They may have a raise during work which may bring their cumulative to another tax break level.
    Now we are able to calculate the tax assuming the column Salary is base in ErpNext
    Abbr: 12MOTAX (Statistical)
    Type: Earning
    Condition and Formula:
    Condition: SLABAMNT < base * 12 <= SLABTOP
    Amount Based on Formula: checked
    Formula: (base * 12 - SLABAMNT) * ERLYTX / 12

  2. now you can refer to this tax and deduct the gross salary:
    Abbr: GSAL (only check Do Not Include in Total)
    Type: Deduction
    Condition and Formula:
    Condition: (none)
    Amount Based on Formula: checked
    Formula: base - 12MOTAX

1 Like

I was facing similar case and i sort this by adding section in GL named Employee Receivables and put all the deductions in it. Ultimately it solve the issue for me