Tori Solutions
May 27, 2026 · 7 min read

Attendance is tracked in a paper register or a biometric device nobody exports. Leave requests come in via WhatsApp and are approved with a thumbs-up emoji. Salary is calculated in an Excel sheet that only the accounts manager understands. Employment contracts exist as scanned PDFs in someone's email drafts folder.
This works when a company has 10 people. It fails — visibly — when it reaches 25 or 30. Odoo's HR modules replace this informal system with one that tracks everything in one place.
The foundation is the employee profile. In Odoo, each employee record stores:
When an employee leaves, the offboarding is a status change in the system — all their history stays attached to their profile.
Each employee has one or more contracts in Odoo. A contract defines:
When a salary revision happens, you create a new contract with the updated figures. The previous contract is archived but remains in the history. Payroll uses the active contract for the pay period, so there's no manual update required in the salary calculation — it reads from the contract automatically.
Odoo supports configurable leave types. For Bangladesh businesses, common types include:
Each leave type has its own accrual rule, carryover policy, and approval workflow. Employees submit leave requests in the system. Their manager gets a notification and approves or rejects with one click. The leave balance updates automatically.
The leave calendar view shows the entire team's approved absences, making it easy to spot coverage gaps before approving a request.
Odoo supports three attendance input methods:
The attendance data feeds directly into payroll. Absent days are counted automatically, and lateness can trigger deductions if the wage structure is configured to do so.
Odoo's payroll module uses Salary Rules to define how gross and net pay are calculated. A standard Bangladesh wage structure includes:
| Component | Type | Typical Structure |
|---|---|---|
| Basic Salary | Earning | 50–60% of gross |
| House Rent Allowance | Earning | 40–50% of basic |
| Medical Allowance | Earning | Fixed amount or % |
| Conveyance | Earning | Fixed (often BDT 1,500–3,000) |
| Provident Fund (employee) | Deduction | 8.33% of basic (if applicable) |
| Provident Fund (employer) | Company contribution | Matched amount |
| Income Tax | Deduction | Per NBR slabs |
Once the salary rules are defined once, they apply to every employee assigned to that wage structure. Changing a component — say, increasing medical allowance — updates it for all employees automatically.
At month end, payroll runs in three steps:
The entire process for a 50-person payroll takes under two hours, compared to a full day in Excel. The payslip itself is a formatted PDF showing all earnings, deductions, and the net pay — employees can be emailed theirs directly from Odoo.
After setting up Odoo HR and Payroll, these tools become redundant:
The transition takes 2–3 weeks for a 30-person organization: employee data entry, contract setup, leave type configuration, and one parallel payroll run to validate the output against the existing Excel before going live.
Reach out to discuss how Tori Solutions can help with your specific requirements.
Tell us what's slowing you down. We'll review your setup and map out what needs fixing.
Start a conversationarrow_forward