Our payslip decoder describes 39 lines across Singapore, Malaysia and Indonesia. It refuses to give you a number for 6 of them, and half of those refusals are about the same thing: overtime.

This guide is about why, because the reasons are more useful than the numbers would have been.

What the tool does say

The tool classifies every line it describes: 21 statutory, 13 contractual, 4 statutory with an opt-out, and 1 voluntary. That distinction is the core of reading a payslip, because unlike rates it does not change.

A statutory line is one the law puts there. A contractual line is one your employer and you agreed to, which means it is negotiable and also removable. An opt-out line is statutory by default and yours to decline, which is a category most people do not know they are in until they read the small print.

None of those depend on a current figure. They are structural, and a tool can state them for years without going stale.

A count of what our payslip decoder describes and what it declines to state. The tool covers 39 payslip lines across three countries: 15 in Singapore, 12 in Malaysia and 12 in Indonesia. By nature these are 21 statutory, 13 contractual, 4 statutory with an opt-out and 1 voluntary. A second panel lists the six places where the tool deliberately declines to encode a number, grouped by reason: three are overtime rates, in Singapore, Malaysia and Indonesia, all declined because the rates move and the tool has no overtime model to keep in step; one is an opt-out route the association's own pages do not state cleanly; one is an employee contribution rate that can be varied by election; and one is a set of statutory carve-outs that were not read from the primary source, recorded as unread rather than guessed.
Thirty-nine lines described, six numbers withheld. The reasons fall into four kinds of not-knowing.

The three that are all the same refusal

Overtime appears on payslips in all three countries, and in all three the tool declines to tell you the rate. The comment on the Singapore line is direct: the tool does not encode the salary thresholds that govern statutory overtime. Those numbers change, and the tool has no model for keeping up. The Malaysian and Indonesian lines say the same in fewer words.

What it does instead is tell you the shape. In Singapore a statutory overtime rate is guaranteed only to employees the Employment Act's Part IV covers; above those salary thresholds, overtime is whatever your contract says it is. That sentence stays true when the thresholds change. The threshold figure itself goes stale, so we leave it to the authority that maintains it.

The gap between those two facts is the whole subject. "Are you covered?" is a question with a durable answer structure and a moving numeric boundary, and a tool that prints the boundary is wrong on a schedule nobody is watching.

The other three are different kinds of not-knowing

The remaining refusals are worth separating, because they are not the same problem wearing different hats.

One is a case where the authority itself is unclear. For one of Singapore's self-help group contributions, the association's own pages do not clearly state the opt-out process. Rather than describe a procedure it cannot verify, the tool says so and links to the source.

One is a case where the rule has elective variants. Malaysian employees can in some circumstances elect a different employee contribution rate through a specific form, and the mechanics of that election are not modelled. Encoding a single rate would be accurate for most readers and quietly wrong for the ones who acted.

And one is a case of simply not having read the source. A set of carve-outs in the Malaysian Employment Act was not read from the statute text, and the entry records that it was left empty for that reason rather than filled from a secondary summary.

That last one is the one worth stealing. It is a note saying "we did not check this" left where a plausible answer could easily have gone.

Why this is the right behaviour

A number in a tool is a promise to maintain it. Print a salary threshold and you have taken on a job: watch the gazette, notice the change, update before somebody reads the old figure and acts on it. That maintenance job exists whether anyone signed up for it or not, and a reader has no way to know if it is being done.

Prose is worse than code here, not better. A wrong figure in a calculator at least sits next to inputs somebody might sanity-check. The same figure in an article sits alone, is quoted onward, and has nothing watching it — which is why this guide names no rates either.

The honest position is to state what is structural, refuse what moves, and name the body responsible for it. For overtime that means checking your Part IV coverage with the Ministry of Manpower in Singapore, or your category's rate with the Labour Department in Malaysia.

Reading your own payslip against this

Take any line on your slip and ask which of the four kinds it is. If it is statutory, the amount follows a published rule and an error is arithmetic. If it is contractual, no rule protects it and the only reference is your agreement. If it is opt-out, you are in it unless you said otherwise. If nobody can tell you which, that is itself the finding.

Then ask what the person telling you the rate is maintaining. A payroll department has a reason to keep up. An article from 2024 does not.

Six things it will not say

Our payslip decoder declines to state a figure in 6 of the 39 lines it covers across Singapore, Malaysia and Indonesia. Three are overtime, where rates and coverage thresholds move faster than a static tool can track. The other three are distinct kinds of uncertainty: an official opt-out route that is not clearly documented, a contribution rate with elective variants, and a set of statutory carve-outs whose source text had not been read. The tool can classify a line reliably — 21 statutory, 13 contractual, 4 opt-out, 1 voluntary — but it cannot maintain a rate. So it states the structure, withholds the number, and points to the authority that owns it, and this guide prints no rates for the same reason.

Related reading

Our payslip decoder is the tool this guide measures — it covers all three countries — and the take-home calculators for Singapore and Malaysia work the statutory deductions through end to end. On figures that age badly, the digits your calculator invents covers precision that was never there, and "gone after ten half-lives" is a convention takes apart a rule of thumb that hides the two numbers actually doing the work.

Sources
  • Every count comes from a script committed alongside this guide, which loads the payslip kernel for the line classifications and reads the source for the recorded refusals. It re-runs rather than reading a stored copy, so the guide goes red if the tool changes.
  • ⚠️ NO STATUTORY FIGURE APPEARS IN THIS GUIDE, DELIBERATELY. No rate, no salary threshold, no overtime multiplier. Printing one would take on the maintenance burden the tool declines, in a place with even less watching it. Rates belong to MOM, JTKSM and BPJS, and this guide names them rather than quoting them.
  • ⚠️ A REFUSAL IS A COMMENT, WHICH IS A CONVENTION RATHER THAN A GUARANTEE. The count is of DOCUMENTED refusals, so it is a floor: somebody could decline to encode something without leaving a note, and that would not appear here.
  • ⚠️ THE CLASSIFICATIONS ARE THE TOOL'S OWN. Statutory, contractual, opt-out and voluntary are how this codebase labels each line, checked against the cited authority when written. It is a working taxonomy, not a legal one, and it is not advice about your own slip.
  • ⚠️ THIS GUIDE EXISTS BECAUSE THE ORIGINAL DID NOT SURVIVE. It was queued as a comparison of statutory overtime in Malaysia against its absence above a salary threshold in Singapore — which needed exactly the figures the tool refuses to hold. Asserting them in prose, where nothing checks them, was the wrong answer to a good question.

This describes how one of our own tools classifies payslip lines and where it declines to state a figure. It is not employment, tax or payroll advice, not a statement of anyone's statutory entitlements, and not a substitute for the authorities named in it.