Reference
Statutory schedules
Every rate PEOPLE computes from, the instrument that sets it, the document it was read out of and the date that document was read. Where a figure has a source but has never been checked against a real payroll, this page says so.
How to read this
PEOPLE stores statutory rules as effective-dated rows with provenance attached, and changes are inserts rather than edits — so a payslip recomputed in three years uses the rates that were in force when it was paid, not today's. Nothing below is a simplification of the rule data; it is the rule data.
Two words are used precisely, and the difference between them is the whole point of the page:
- Cited — the figure comes from a named instrument and a retrievable document, and the date that document was read is recorded.
- Reconciled — additionally checked against money a real person was really paid.
Most of the pack is cited and not yet reconciled. That is the true position and it is stated here rather than in a footnote, because a supplier who only ever tells you the good half of that is a supplier you cannot calibrate.
No filing or remittance deadline appears on this page. Not one is sourced in the repo, so publishing one would mean inventing a date an employer might act on. Ask your own filings calendar, not us.
The seven schemes
Every scheme the Malaysian pack implements, in the order the pack declares them. The engine itself knows none of these names — it takes wage bases and facts and receives explained contribution lines back, which is what lets a second country ship without touching it.
| Scheme | Instrument | In force from | Status |
|---|---|---|---|
| EPF | Employees Provident Fund Act 1991 (Act 452) | 1 October 2025 | Reconciled |
| SOCSO | Employees' Social Security Act 1969 (Act 4) | 1 June 2026 | Cited |
| SKBBK | Employees' Social Security Act 1969 (Act 4), as amended by Act A1788 | 1 June 2026 | Cited |
| EIS | Employment Insurance System Act 2017 (Act 800) | 1 October 2024 | Cited |
| PCB | Income Tax (Deduction from Remuneration) Rules 1994, rule 3 | 1 January 2026 | Cited |
| HRD Corp levy | Pembangunan Sumber Manusia Berhad Act 2001, sections 13 to 15 | 1 October 2018 | Cited |
| Zakat | The employee's own declaration to the employer | The remittance month itself | Cited |
EPF — Employees Provident Fund (KWSP)
Rates and the banding rule quoted from the KWSP page.
packages/pack-my/rules/epf-rules.csvSOCSO — Employees' Social Security (PERKESO)
PDF text layer, not OCR. Reconciled against 16 executed payroll points.
packages/pack-my/rules/socso-act4.csvSKBBK — Non-Employment Injury Security Scheme (Skim LINDUNG 24 Jam)
Printed in the same schedule as Act 4 and remitted with it.
packages/pack-my/rules/socso-act4.csvEIS — Employment Insurance System (SIP)
OCR at 400 dpi — the source PDF is a scan with no text layer. A human has still to eyeball it before go-live.
packages/pack-my/rules/eis-act800.csvPCB — Monthly Tax Deduction (MTD / PCB)
Text extracted from the PDF and transcribed by hand.
packages/pack-my/rules/pcb-table1-2026.csvHRD Corp levy — Human Resources Development levy
OCR at 350 dpi — the circular is a scanned PDF.
packages/pack-my/rules/hrdf-rules.csvZakat — Zakat withheld from salary
There is no rate and no schedule. The employee states an amount and the employer withholds exactly that.
packages/pack-my/src/zakat.tsEPF contribution rates
From the Third Schedule, in force 1 October 2025. Which part applies depends on citizenship, age, and — for a non-citizen — whether they became a member before 1 August 1998.
| Part | Who | Age | Wages | Employee | Employer |
|---|---|---|---|---|---|
| A | Malaysian citizen | 14–59 | Up to RM 5,000.00 | 11.00% | 13.00% |
| A | Malaysian citizen | 14–59 | Above RM 5,000.00 | 11.00% | 12.00% |
| E | Malaysian citizen | 60–75 | Any | 0.00% | 4.00% |
| C | Non-citizen, member before 1 Aug 1998 | 14–75 | Up to RM 5,000.00 | 5.50% | 6.50% |
| C | Non-citizen, member before 1 Aug 1998 | 14–75 | Above RM 5,000.00 | 5.50% | 6.00% |
| F | Non-citizen, member from 1 Aug 1998 | 14–75 | Any | 2.00% | 2.00% |
SOCSO, SKBBK and EIS bands
These three are amounts printed in a schedule, not rates applied to a wage — 65 rows each, sharing identical band boundaries. A build-failing test asserts that identity, so an edit to one table that forgets the other cannot ship. The band step is not uniform: RM 30, then 50, 70, 100, 140, 200, and RM 100 flat from there.
Both schedules are subject to a RM 6,000 wage ceiling, and the ceiling is a row in the data rather than a constant in the code. Category 1 covers Employment Injury and Invalidity; Category 2 covers Employment Injury only, for employees outside the Invalidity Scheme. SKBBK is employee-borne in both.
| Wages over | Up to | Cat 1 employee | Cat 1 SKBBK | Cat 1 employer | Cat 2 employer | EIS each |
|---|---|---|---|---|---|---|
| — | RM 30.00 | RM 0.10 | RM 0.20 | RM 0.40 | RM 0.30 | RM 0.05 |
| RM 900.00 | RM 1,000.00 | RM 4.75 | RM 7.15 | RM 16.65 | RM 11.90 | RM 1.90 |
| RM 2,900.00 | RM 3,000.00 | RM 14.75 | RM 22.15 | RM 51.65 | RM 36.90 | RM 5.90 |
| RM 4,900.00 | RM 5,000.00 | RM 24.75 | RM 37.15 | RM 86.65 | RM 61.90 | RM 9.90 |
| RM 5,900.00 | RM 6,000.00 | RM 29.75 | RM 44.65 | RM 104.15 | RM 74.40 | RM 11.90 |
SKBBK is phased. The amounts above are phase one, at 0.75%. The source states 1.00% from 1 June 2028 and 1.25% from 1 June 2031; those amount tables are not published yet and are not in the pack, so PEOPLE cannot compute a period after the phase changes and will refuse rather than apply a rate it does not hold.
PCB — value of P, M, R and B
LHDN's Table 1, from the 2026 computerised-calculation specification. Chargeable income at or below RM 5,000 attracts no tax, which is why the table begins at RM 5,001 — a P below the first band is a sourced zero, not missing data.
| P from | P to | M | R | B, cat 1 & 3 | B, cat 2 |
|---|---|---|---|---|---|
| 5,001 | 20,000 | 5,000 | 1% | −400 | −800 |
| 20,001 | 35,000 | 20,000 | 3% | −250 | −650 |
| 35,001 | 50,000 | 35,000 | 6% | 600 | 600 |
| 50,001 | 70,000 | 50,000 | 11% | 1,500 | 1,500 |
| 70,001 | 100,000 | 70,000 | 19% | 3,700 | 3,700 |
| 100,001 | 400,000 | 100,000 | 25% | 9,400 | 9,400 |
| 400,001 | 600,000 | 400,000 | 26% | 84,400 | 84,400 |
| 600,001 | 2,000,000 | 600,000 | 28% | 136,400 | 136,400 |
| 2,000,001 | and above | 2,000,000 | 30% | 528,400 | 528,400 |
PCB reliefs, caps and rates
The compulsory items under section 14(i) are granted automatically, without the employee claiming anything. The optional items under section 14(ii) reach the calculation only on a Form TP1 election — which is the whole answer to why a SOCSO deduction does not automatically produce a SOCSO relief.
| Item | Amount | Provision |
|---|---|---|
| Individual | RM 9,000 | s14(i)(a), automatic |
| Spouse with no income | RM 4,000 | s14(i)(b), category 2 |
| Per qualifying child | RM 2,000 | s14(i)(c) |
| Disabled individual | RM 7,000 | s14(i)(e) |
| Disabled spouse | RM 6,000 | s14(i)(f) |
| EPF, annual cap | RM 4,000 | s14(i)(d)(i) |
| Child multiplier, basic | ×1 | Under 18, or 18+ in full-time education |
| Child multiplier, diploma and above | ×4 | 18+ studying at diploma level or higher |
| Child multiplier, disabled | ×4 | Certified by the Department of Social Welfare |
| Child multiplier, disabled and studying | ×8 | Both of the above |
| Non-resident rate | 30% | Section D(a), flat on remuneration |
| No-deduction threshold | RM 10 | Section E(3) |
HRD Corp levy
| Registration | Employees at registration | Levy |
|---|---|---|
| Compulsory | 10 and above | 1.00% |
| Optional | 5 to 9 | 0.50% |
What the pack does not decide: whether an employer is liable at all. The First Schedule industry list, the part-time worker exemption and time-boxed sectoral exemptions are not modelled, and PEOPLE reads the employer's own registration rather than inferring it.
What PEOPLE refuses to compute
A payroll that guesses is worse than one that stops, so the pack refuses in several named situations rather than producing a plausible figure:
- Any month before a schedule commenced. Earlier schedules were not retrieved, and rates have moved historically, so a period before 1 October 2025 for EPF, 1 June 2026 for SOCSO and SKBBK, 1 October 2024 for EIS, 1 January 2026 for PCB or 1 October 2018 for the levy resolves no rows and blocks.
- An employee outside the ages a schedule covers. No row matches, so no contribution is claimed. A zero-rate row would assert that the scheme applies and happens to come to nothing, which is a different statement.
- A missing fact. The blocker names the employee and what is absent. There is no path by which an unknown becomes a zero.
- A year-to-date window with an unaccounted month. The ledger is derived from an opening balance plus this system's own stored runs, so a month that is neither imported, run here, nor outside the employment is a refusal naming it — never a total computed as though the month were empty.
- A payment file for a bank whose layout we do not hold. There is no single Malaysian bank file: each bank publishes its own host-to-host format. One is held as verified-primary; the rest are not, and PEOPLE will not write a file for a layout it is guessing at.
Checking this page
Every figure above cites the file it lives in. If you find one that disagrees with its source, that is a bug worth more to us than a sales enquiry —tell us and we will fix the rule data, not the page.
None of the retrieval dates recorded in the pack represents anyone here re-opening the source; several were carried forward from an earlier build, and the pack says so at each site. Re-reading each authority against its published document is outstanding work, and until it is done the status badges above are the honest summary.