Enable Dark Mode!
By: Arun Krishnadas

How to Configure Salary Structure in Odoo 13

Functional Odoo 13 Human Resource

For every employee, the salary may vary in amount and managing payroll at a company with a multitude of employees is never a task simply accomplished. For the easy payment of the salary of the employees in a firm, an efficient Salary Structure is inevitable.  In the Odoo payroll module, without any strain, one can set up various robust salary structures for every employee and thus manage the payrolls more efficiently. 

In this blog, I’ll be explaining how to set up ‘salary rule and category’ and the ‘salary structure’.

In order to configure a salary structure, first of all, we have to enable the ‘developer mode’.

For that go to, the ‘Main Settings’ and scroll to the bottom of the window. 


Under the ‘Developer Tools’ section, click on the ‘Activate the developer mode’. 

Now the salary category must be configured.

For that go to, Payroll -> Configuration and select the 'Rules Category’ and click ‘CREATE’.


The above given is the form to create a new salary rule category. There are three fields to be filled there;

Name: The category’s name. 

Code: for easy access during salary computation. 

Parent: The parent category to which this new category belongs to.

After entering all the necessary details ‘SAVE’ the form. Now a new Salary rule category has been created. 

After this, the salary rule must be created. For that, go to;

Configuration -> Salary Rules


In the newly appeared form, enter details in the fields:

Name: Name of the rule.

Category: The category under which this rule comes.

Code: For easy access while net salary computation.

Active: change the activity status of the rule by selecting hide/activate.

Appear on Payslip: Once selected the rule will appear on the payslip.


Under the general tab, there are some fields to be filled, they are;

Condition-based on: This condition determines the performance of the category in each individual salary computation. Three conditions are available here.

Always True: This option ensures the availability of the rule in each individual salary computation.

Range: once selected there are some sub-options to be selected.

  • Range-based on: In the subfield 'contract.wage' will appear. This particular range is set on the basis of the employee wage by default. The wage can be particularly mentioned during the creation of the employee contract in the Employee module.


The employee’s wage can be seen in the contract, under the salary information tab.


  • Minimum Range: Minimum range should be mentioned here.
  • Maximum Range: Maximum range should be mentioned here.

Here the performance of the rule is confined under the condition that the wage should fall between these ranges. 

Python expression: Some comment lines can be seen here which helps to create python conditions. The equation footed on the result is provided by Odoo as default. 


When a python condition is created, the values in the object can be accessed.


In the above-given example, only when the wage is greater than or equal to 60000, the result is applied.

When the condition is met, then only is the salary rules get applied.

Note: In order to use tabs for conditions, four-step space must be used.

Now once the salary rule conditions are set, we should set the computation methods. 


The three methods of salary computation are;

  • Fixed amount
  • Percentage
  • Python code.

Fixed amount

A fixed amount is provided.


Here there are some fields, 

Quantity: The quantity provided is mentioned here.

Fixed amount: The amount provided is mentioned here.

In the above-given example, the Quantity is given as ‘1.0’, and the Fixed Amount as ‘6000’.


So here ‘60000*1.0’ is the salary computation.


Here, the values given in the fields below determines the computation.


Percentage based on: The variable required to compute the percentage is provided here.

Percentage: The figures for percentage is provided here.


In the above-given example, the ‘Percentage Based on’ is ‘contract.wage’, ‘Quantity’ is ‘1.0’ and ‘Percentage’ is 45. So the computation is 45% of the contract.wage.

Python Code

In this case, the Python code is the basis of computation.


In this example, the result is equal to the ‘contract.wage-0.10’ and the result thus is multiple contracts.wage and 0.10.

Salary Structure

Go to, Configuration -> Salary Structure and click on the ‘CREATE’ button.


In this form to create a new Salary Structure, provide;

Name: The name of the Salary Structure.

Parent: When a salary structure is created as a subsidiary to an already existing salary structure, the parent salary structure should be mentioned here.

Company: The company to which this salary structure applies should be mentioned here.

In the bottom, you can see an ‘add a line’ field under the Salary Rules, here one can add rules.


This is the form to create a rule. 

I’ve set Basic Salary, Net Salary and Gross as the salary rules. The Code, Category and Contribution matching to these rules can be seen there.

If you need any assistance in odoo, we are online, please chat with us.



Guys, Thanks for these feature walk through kind of articles. Helpful! I think if you can say when to use different types of configurations it be more helpful! For example, in the above article if you could say in what type of business scenarios to use Always true or Range or Python Expression it will be really helpful!!




Leave a comment




Cybrosys Technologies Pvt. Ltd.
Neospace, Kinfra Techno Park
Kakkancherry, Calicut
Kerala, India - 673635



Cybrosys Technologies Pvt. Ltd.
1st Floor, Thapasya Building,
Infopark, Kakkanad,
Kochi, India - 682030.



Cybrosys Techno Solutions
The Estate, 8th Floor,
Dickenson Road,
Bangalore, India - 560042

Send Us A Message