Data transparency

How CheckFairPay builds its Malaysian salary benchmarks

Every number on this site comes from the same pipeline. Here is exactly what goes into it, and where it stops being reliable.

Public job titles
11,532
Market observations
57,275
High confidence (15+ obs.)
440
Categories
31

Where the data comes from

The CheckFairPay market database aggregates Malaysian salary and hiring-market observations: advertised pay disclosed in the open market, published market benchmarks, and public labour statistics. No individual employer or user record is ever exposed, and we do not resell or republish any third-party dataset.

Most weight comes from advertised pay observations, which track the current market faster than annual survey reports. A minority of rows come from published market benchmarks rather than observed distributions, so percentiles should be read as market benchmarks, not a census.

Primary sources we reference

Our own percentiles are computed from advertised Malaysian pay observations. Where we describe statutory deductions, wage growth or national pay levels, we reference the primary source directly rather than restating a secondary summary. These sources are separate from our estimates and are never blended into a role percentile.

How roles are normalised

Raw job titles are noisy. We strip employer branding, location suffixes, contract markers and requisition codes, then map the remaining title to a canonical role. Titles that stay ambiguous after cleaning are excluded rather than guessed.

Each canonical role is assigned a seniority level (Intern through Director+) from title wording, and grouped into a role family so career-ladder comparisons stay like-for-like.

Deduplication and quarantine

The same vacancy is often advertised more than once. Before aggregating, identical role, employer and pay combinations are collapsed so one job cannot count several times, and titles that clean down to the same canonical role within a category are presented as a single benchmark.

Titles that turn out to be a department or a bare seniority word rather than an occupation — for example "Accounting", "Executive" or "Senior" — are quarantined from search indexes and marked for review instead of being deleted, so the underlying observations stay auditable and the decision is reversible.

Aggregation, cleaning and quarantine rules are applied programmatically. Individual rows are not read or approved by a human reviewer, and no user submission or uploaded resume is ever part of these benchmarks.

Percentiles, not averages

We publish P10, P25, median (P50), P75 and P90 monthly gross figures. Percentiles resist distortion from a handful of unusually high or low offers in a way that a simple average does not.

Read them as: P10 is near the floor of the market, the median is the typical offer, and P90 is what strong candidates in demanding employers command.

Sample size and confidence

A role needs at least 15 observations before we treat it as high confidence and publish it as a standalone indexable page. Below that threshold, figures remain visible in the product but are marked low confidence and kept out of search indexes.

Low confidence usually means the role is niche, newly emerging, or advertised without pay by most employers — not that the number is wrong, only that it is thinly supported.

Advertised, basic and total compensation

Figures are monthly gross basic pay unless stated otherwise. They exclude bonuses, commission, equity, shift allowances, overtime and employer EPF contributions.

Total compensation can sit materially above the basic figure, particularly in sales, oil and gas, and senior technology roles. When comparing an offer, compare basic against basic first.

Update cadence

The corpus is refreshed in periodic snapshots rather than in real time, and benchmarks are recomputed as new observations land.

Pages show the current market view. Year-on-year figures before the current period are back-cast estimates of the trend, not directly observed history, and are labelled as estimates.

Known limitations

Advertised ranges can be aspirational or deliberately wide. Some sectors under-disclose pay entirely, which biases coverage towards employers that do publish.

Geographic granularity is limited: Klang Valley roles dominate the corpus, so nationwide figures skew towards Kuala Lumpur and Selangor pay levels.

Treat every figure as directional evidence for a negotiation, not as a valuation of an individual.

Corrections

If a benchmark looks wrong for a role you know well, we want to hear it. Tell us the exact role page URL and what you believe the Malaysian market range to be; we re-check the underlying observations and either correct the row, quarantine it, or explain why it stands.

Where a figure is an estimate rather than a measurement — most obviously the pre-current-year points on role trend charts — it is labelled as an estimate on the page itself, so a correction request can tell the two apart.