Employee Contracts in Odoo HR#
Every payslip in Odoo is derived from a contract - which defines the employee's wage, contract type, work schedule, and salary structure. Getting contracts right ensures payslips are accurate and compliant.
Contract Types#
HR → Configuration → Contract Types:
- Permanent (CDI): indefinite duration, standard notice period
- Fixed-Term (CDD): specific end date, limited renewals
- Part-Time: standard structure but different working hours
- Freelance/Consultant: no benefits, different tax treatment
- Probation: temporary lower wage or different benefits during trial period
Creating an Employee Contract#
HR → Employees → [Employee] → Contracts tab → New:
General Information:
- Contract Reference: EMP-2027-042
- Start Date: 2027-10-01
- End Date: (blank for indefinite)
- Contract Type: Permanent
- Work Schedule: Standard 40h (Mon–Fri)
Salary Information:
- Wage: $7,500/month (gross)
- Salary Structure Type: Monthly Employee (determines which payroll rules apply)
- HR Responsible: HR Manager
Other Benefits (via wage type lines):
- Car Allowance: $500/month
- Phone Allowance: $100/month
- Meal Vouchers: $150/month
Salary Structure Types#
Payroll → Configuration → Salary Structure Types:
- Monthly Employee: full-time, monthly payroll
- Hourly Worker: paid by hours worked
- Commission-Based: base + variable commission
- Executive: special rules for executives (different tax treatment in some countries)
The structure type links to a set of payroll rules that are applied when generating payslips.
Wage History#
When an employee gets a raise:
Contract → New Contract (don't modify the old one):
- Archive the old contract (valid from start to raise date)
- Create a new contract starting from the raise date
This preserves the wage history - critical for payroll audits and dispute resolution.
Probation Period Tracking#
Contract → Probation End Date: set to 90 days from start date
Automated Action: 7 days before probation ends → create activity for HR manager "Confirm or terminate probation - [Employee Name]"
This ensures no employee passes probation by default without a conscious decision.
Contract Reporting#
HR → Reporting → Contracts:
- Employees without a contract (payroll will fail for these)
- Contracts expiring within 30/60/90 days (fixed-term employees)
- Salary by grade/level (equity analysis)
- Average wage by department

