How to Generate Payslip Based on Employee Standard Working Hours in Odoo 18: Complete Guide
By Braincuber Team
Published on March 17, 2026
Managing payroll efficiently is critical for HR and accounting teams. In Odoo 18, the payroll module offers a powerful and flexible way to calculate employee salaries based on various parameters, including standard working hours. This complete tutorial will guide you through generating accurate payslips based on each employee's predefined working schedule.
What You'll Learn:
- Configure employee contracts with standard working hours
- Set up work entry generation for attendance tracking
- Define comprehensive payroll rules for salary calculation
- Generate payslips using batch processing
- Calculate net salary with deductions and allowances
- Validate and finalize payslips for employee access
Step 1: Configure Employee Contracts with Standard Working Hours
Employee contracts define the foundation for payroll calculations, including working hours, wages, and employment terms. Proper configuration ensures accurate salary computation and compliance.
Navigate to Contract Management
Go to Employees > Contracts or Payroll > Contracts to access the contract management interface.
Create or Edit Employee Contract
Create a new contract or edit an existing one to configure the standard working parameters.
Define Standard Working Hours in Employee Contracts
Set Standard Working Hours
Configure the total number of hours an employee is contractually obligated to work. For example, 8 hours/day or 40 hours/week.
Configure Working Schedule
Define specific days and times the employee is expected to work, such as "Monday–Friday, 9 AM–5 PM".
Select Wage Type
Choose between Fixed (pay doesn't fluctuate with hours) or Hourly (tracking exact worked hours is necessary).
Set Schedule Pay Frequency
Configure payment schedule: Monthly (most salaried employees, paid on 25th), Weekly (hourly workers, every Friday), or Daily (day laborers/contractors).
| Wage Type | Best For | Payment Schedule |
|---|---|---|
| Fixed | Salaried employees with consistent pay | Monthly (25th of each month) |
| Hourly | Workers with variable hours | Weekly (Every Friday) |
| Daily | Contractors and day laborers | Daily (End of each workday) |
Step 2: Work Entry Generation Against Employee Contracts
When an employee's contract includes standard working hours, Odoo automatically generates Work Entries that influence payslip calculations, including attendance, leaves, and overtime.
Access Work Entries
Navigate to Payroll > Work Entries to view automatically generated entries based on employee contracts.
Review Tracked Work Types
Odoo automatically tracks Regular Hours (based on contract), Overtime (if hours exceed standard), and Leaves (paid or unpaid).
Create Additional Work Entries
Manually create work entries for special cases like Sick Time, Overtime, and Unpaid leave when needed.
Step 3: Define Payroll Rules for Salary Calculation
Payroll rules automate wage computation, deductions, and allowances. These rules ensure consistent and accurate salary calculations across all employees.
Access Salary Rules Configuration
Go to Payroll > Configuration > Salary Rules to define comprehensive salary calculation rules.
Key Salary Rules to Configure
Configure Basic Wage Rule
Set formula: contract.wage (for fixed salary) or worked_days.WORK100.number_of_hours * contract.hourly_wage (for hourly employees). Link to WORK100 (standard working hours).
Set Up Allowances
Configure allowances like Transport Allowance with formula: 500 (fixed) or contract.wage * 0.05 (5% of basic).
Create Gross Salary Rule
Define formula as the Sum of basic wage + allowances to calculate total gross pay.
Configure Deductions
Set up Tax Rule: gross * 0.1 (10% of gross) and Unpaid Leave Deduction: (unpaid_leave_days * (contract.wage / 30)).
Define Net Salary Rule
Create final formula: gross - total_deductions to calculate the net take-home pay.
Step 4: Generate Payslips
Batch processing in Odoo minimizes manual effort and reduces errors. Follow these steps to generate payslips efficiently for multiple employees.
1. Initiate Payslip Creation
Access Payslip Module
Go to Payroll > Payslips and click Payslip to Pay to start the payslip generation process.
Create New Payslip Batch
Click New to start a new batch payslip generation process for the selected pay period.
2. Select Employees
Choose Employee Selection
Select individual employees or groups like "All Active Employees". Best practice: Filter by department or contract type for targeted payroll runs.
3. Compute Payslip Details
Auto-Compute Salary Details
Click Compute Sheet to let Odoo auto-populate wages, overtime, and deductions based on contracts and rules.
Review Worked Days
Check the "Worked Days" tab to ensure attendance data aligns with expectations before finalizing.
Basic Salary (Hourly Rate: $100)
Attendance Hours (Regular Work):
160 hours (20 days × 8 hours/day)
Amount: 160 × $100 = $16,000
Total Earnings (Gross Pay):
$16,000 (Basic) + $400 (PTO) + $500 (Overtime) + $1,200 (HRA)
+ $800 + $600 + $200 = $19,700
Leave & Absence Impact:
Sick Leave (Unpaid): 8 hours (1 day) > $0 (No pay deducted)
Unpaid Leave: 12 hours (1.5 days) > $0 (Salary deduction applied later)
Deductions:
Total Deductions: $375 + $200 = $575
Net Salary Calculation:
Formula: Gross Pay – Deductions = Net Salary
Calculation: $19,700 (Gross) – $575 (Deductions) = $19,125 (Net Pay)
4. Validate and Finalize
Verify All Entries
Review all calculated entries, including basic salary, allowances, deductions, and net pay for accuracy.
Validate Payslips
Click Validate to confirm the payslips. Employees can then access their payslips via the portal, fostering transparency.
Automated Calculations
Odoo automatically computes salaries based on contracts, work entries, and payroll rules.
Batch Processing
Generate payslips for multiple employees simultaneously with batch processing capabilities.
Compliance & Accuracy
Ensure payroll compliance and accuracy through standardized working hours and automated calculations.
Employee Transparency
Employees can access their detailed payslips through the portal for complete transparency.
Important Note
Always ensure that employee contracts are active and properly configured before generating payslips. Inactive contracts will not be included in payroll calculations.
Frequently Asked Questions
How do I configure overtime calculations in Odoo 18 payroll?
Overtime is automatically calculated when work entries exceed the standard working hours defined in employee contracts. Configure overtime rules in Payroll > Configuration > Salary Rules.
What's the difference between fixed and hourly wage types?
Fixed wage provides consistent pay regardless of hours worked, ideal for salaried employees. Hourly wage tracks exact worked hours and calculates pay based on actual time worked.
How does Odoo handle unpaid leave deductions?
Unpaid leave deductions are calculated using the formula: (unpaid_leave_days * (contract.wage / 30)). This automatically deducts proportionate salary for unpaid absence days.
Can employees access their payslips online?
Yes, once payslips are validated, employees can access their detailed payslips through the employee portal, promoting transparency and self-service access.
What payment schedules are available in Odoo 18 payroll?
Odoo 18 supports Monthly (25th of each month), Weekly (every Friday), and Daily (end of each workday) payment schedules to accommodate different employment types.
Need Help with Odoo Payroll Implementation?
Our experts can help you configure comprehensive payroll systems with custom rules and automated calculations for your business.
