HR Payroll Malaysia: EPF SOCSO EIS PCB
A ready Malaysia salary structure on the EH payroll engine: EPF, SOCSO, EIS and PCB computed from editable statutory tables you keep current.
Why this module
HR Payroll Malaysia: EPF SOCSO EIS PCB
Four Malaysian deductions wired in
EPF, SOCSO, EIS and PCB land on the payslip as named salary rules in a Malaysia Standard structure. Employee deductions reduce net; employer EPF and the employer SOCSO and EIS sides post as company cost without touching net.
Bands and brackets are editable data
SOCSO and EIS are 63-row fixed-amount band tables and PCB uses a ten-band LHDN bracket schedule, all seeded as data and editable from admin-gated list views. The lookup and tax methods are fixed; the figures stay yours to keep current.
Approximations are labelled as such
The seeded amounts are generated from the published statutory rates and rounded, and the manifest tells you to verify them against the current PERKESO Jadual Caruman and LHDN schedule. No hidden assumptions, no silent staleness.
Day in the life
Run a monthly Malaysian payroll
Assign the Malaysia Standard structure to an employee, set the wage, and compute the payslip. EPF employee at 11% and employer at 13% or 12% depending on the RM5,000 threshold, SOCSO and EIS as the fixed band amounts for the wage, and PCB as the simplified monthly tax deduction all appear as separate lines. Net pay is gross minus the employee deductions only. Above the RM6,000 ceiling, SOCSO and EIS hold at the top band amount rather than scaling with the wage.
Edge cases
The cases most modules quietly ignore.
In the shipped code today, each one a place where a cheaper module silently does the wrong thing.
A wage above the RM6,000 ceiling returns the top band's fixed SOCSO and EIS amount, not a percentage of the higher wage. The lookup falls back to the top band when no band contains the wage, so very high salaries never over-contribute.
Employer EPF is 13% at or below the RM5,000 threshold and steps down to 12% above it, driven by company settings rather than hard-coded, so the threshold and both rates can be adjusted when the statute changes.
The PCB formula annualises the wage, subtracts the RM9,000 individual relief and the EPF employee relief capped at RM4,000 per year, taxes the result progressively, then divides back by the pay periods. Chargeable income at or below zero yields zero tax.
Pay periods per year are inferred from the payslip date span (weekly, fortnightly, monthly or annual), so the PCB annualise-and-divide arithmetic adapts to the period length without manual configuration.
Each statutory amount is exposed to salary rules as a named helper inside the engine's closed safe_eval namespace; the raw recordset never reaches a rule expression, so localisation logic cannot reach back into the ORM.
Band lookups return an empty result for non-positive wages and the tax method floors at zero, so blank or zero wages produce clean zero lines instead of errors.
What is inside
Built to do the job, end to end.
- Malaysia Standard salary structure. Eleven salary rules covering basic, gross, EPF employee and employer, SOCSO employee and employer, EIS employee and employer, PCB and net, sequenced so each reads the running category totals.
- SOCSO and EIS band models. Two fixed-amount band-table models, Category 1, each seeded with 63 rows from RM0 up to the RM6,000 ceiling, with a deterministic wage lookup and employer and employee amount helpers.
- PCB tax bracket model. A ten-band LHDN resident progressive schedule with a cumulative tax-on-chargeable method and the simplified monthly deduction formula carrying the standard individual and EPF reliefs.
- EPF company settings. Employee rate, low and high employer rates and the wage threshold live on the company, defaulted to the current statutory figures and adjustable per company.
- Admin-gated maintenance views. Editable list views and menus for the SOCSO bands, EIS bands and income tax brackets under the payroll root, restricted to the HR admin group, with read, write, create and unlink ACLs.
- Automated test coverage. Tests pin the published EPF band figures, the SOCSO and EIS in-band, ceiling and above-ceiling amounts, the progressive tax math and a full structure run where net reflects employee deductions only.
Honest about the edges
What this does not do, so nothing surprises you.
- Built for Odoo 18 Community and depends on the EH payroll engine modules; it is a salary structure and statutory calculator, not a standalone payroll app.
- The seeded SOCSO and EIS amounts and tax brackets are generated from the published rates and rounded, and must be verified against the current PERKESO Jadual Caruman and LHDN schedule before live use.
- PCB is the simplified computerised formula, not the full MTD schedule; only the standard individual relief and the EPF employee relief are applied. Spouse, child, lifestyle and other reliefs are out of scope.
- SOCSO and EIS are seeded as Category 1 (employees under 60); other categories are not included as data.
- No statutory form generation or electronic submission is included (no EPF, SOCSO, EIS or LHDN form output, no contribution files).
- Zakat, bonus and additional-remuneration MTD handling, and EPF voluntary or age-60-plus variations are not modelled.
Malaysia payroll Odoo 18, EPF payroll Odoo, KWSP contribution, SOCSO PERKESO Odoo, EIS SIP payroll, PCB MTD monthly tax deduction, Potongan Cukai Bulanan, Jadual Caruman bands, LHDN income tax brackets, Malaysian statutory deductions, salary structure Malaysia, Odoo Community payroll Malaysia, EPF employer 13 percent, RM6000 contribution ceiling, Malaysia salary rule engine
Need this fitted to the way you work?
ERP Heritage delivers end to end Odoo work: Odoo Implementation, Customization and Development, Integration, Migration, Consultation, Support and Training. We help teams put this module into production, shape it to their process, and keep it running.
We work with businesses across Australia (Melbourne, Sydney, Brisbane, Perth, Adelaide, Canberra) and the Middle East (Dubai, Abu Dhabi, Riyadh, Jeddah, Doha, Kuwait City, Muscat). Start a conversation at erpheritage.com.au or email info@erpheritage.com.au.
Languages
Available in 19 languages
The interface ships translated out of the box. Switch language in Odoo and the fields, menus, and messages follow.
Modules teams pair with this one.
Premium ERP Heritage modules that extend the same stack, each built to the same engineering bar.
A reusable two way synchronisation engine that keeps Odoo in step with the people and payroll platform, idempoten...
The Australia country pack for the ERP Heritage Employment Hero integration
Sync certifications, qualifications and employee document metadata from the Employment Hero people platform into...
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Employees (hr)
• Discuss (mail) |
| Community Apps Dependencies | Show |
| Lines of code | 3521 |
| Technical Name |
eh_hr_payroll_my |
| License | LGPL-3 |
| Website | https://www.erpheritage.com.au/ |
Please log in to comment on this module