Two offers arrive. One pays a higher monthly salary. The other pays less monthly but promises a large bonus. Both come to the same annual figure, but that does not mean they are the same size.

The awkward part is that the question has more than one correct answer, and the answers disagree with each other.

Two offers, the same annual gross

We put a pair through the engine our own Singapore calculator runs on. Both come to S$144,000 a year:

Offer A pays S$12,000 a month with no bonus. Offer B pays S$8,000 a month with a bonus of S$48,000.

Offer A puts S$116,280 into your bank account over the year. Offer B puts in S$115,260. A wins by S$1,020.

That comparison is correct for cash in hand, but omits the employer's own contribution.

A comparison of two Singapore job offers with identical annual gross pay of 144,000 dollars. Offer A pays 12,000 a month with no bonus; Offer B pays 8,000 a month plus a 48,000 bonus. A table gives the four figures: on net cash reaching the bank, Offer A gives 116,280 and Offer B gives 115,260; on total value including both employee and employer CPF contributions, Offer A gives 151,800 and Offer B gives 153,000. Below it a chart plots the gap between the offers on each measure against a central tie line. On net cash the bar sits to one side, Offer A ahead by 1,020; on total value it sits on the opposite side, Offer B ahead by 1,200. The bar changing side is the ranking reversing. A second panel shows the share of gross pay deferred into CPF across monthly salaries from 3,000 to 20,000: it is flat at 37 per cent up to a salary of 8,000 a month, marked as the ordinary wage ceiling, and then falls steadily to 14.8 per cent at 20,000 a month, because the ceiling stops the contribution growing while the salary keeps rising.
Same salary, two measures, and the bar changes side. Which offer is bigger depends on which question you asked.

The money you own and never see

Both employers also make a CPF contribution. That money is yours — it goes into an account under your name — but it never appears on an offer letter.

Offer A's employer pays in S$16,320. Offer B's pays S$17,340. Add every contribution, yours and theirs, to the cash:

Offer A comes to S$151,800. Offer B comes to S$153,000. B wins by S$1,200.

Which offer wins depends entirely on the question: "what reaches my bank", or "what am I paid"?

Why the reversal happens

CPF is capped twice. The ordinary wage ceiling stops the monthly contribution growing above a salary of S$8,000, and a second annual ceiling limits how much of a bonus can attract CPF at all.

Offer A's salary sits above the monthly ceiling, so only S$96,000 of its S$144,000 attracts CPF. Offer B's salary sits exactly at the ceiling, which leaves room under the annual one, so S$102,000 of the same S$144,000 does.

That six-thousand-dollar difference in the CPF-eligible amount drives the entire reversal. Our guide on what actually happens to your bonus works through the ceiling mechanism in detail, but the short version is that it makes two identical annual salaries behave differently.

The percentage is not a constant

Comparing offers by percentage is unreliable, because the share of gross pay that goes into CPF is not a fixed rate.

It is flat at 37 per cent all the way up to a salary of S$8,000 a month. Above that the ceiling holds the contribution still while the salary keeps rising, so the share falls: by S$20,000 a month it is down to 14.8 per cent.

So a rule of thumb calibrated on one salary is wrong at another, and the direction of the error is not obvious from the rule.

Not every deferred dollar is equally reachable

Treating a CPF dollar as equal to a cash dollar overstates the deferred side, because the account is really three accounts and only one of them is reachable before retirement.

Of Offer B's S$37,740, about S$23,463 lands in the Ordinary Account, which can go towards a home or education. The remaining S$14,277 goes to the two accounts that cannot be touched for either.

Which is why the honest version of the total-value figure is not a single number. It is cash, plus money you may be able to use for a specific purpose, plus money you will not see for decades — and the right weighting for the third one depends on facts about you that no calculator holds.

The comparison we are not going to make

The obvious next question is how a Singapore offer compares to a Malaysian one. We are not going to rank them, for reasons worth stating.

Part of it is the exchange rate, which is not in any of our engines and moves daily. The larger part is that the person asking is usually moving, and a foreigner in Singapore on an Employment Pass contributes no CPF at all. Our own Singapore calculator says so on its page: it is not for non-residents.

We checked whether the engine would stop us, and it would not. Ask it for a Singapore contribution on a S$8,000 salary and it returns S$1,600 a month whether the residency is set to citizen or to foreign, because the calculator that calls it never offers the choice. The Malaysian side does handle it, dropping from RM880 to RM160 on an RM8,000 salary. So the cross-border number is available, confident, and wrong.

The structural difference is another matter, because it is a fact about the two schemes rather than about any person. These are rates, so they need no exchange rate to compare. Singapore defers 37 per cent of gross pay into your own retirement account — 20 per cent from you and 17 from the employer — against Malaysia's 23, being 11 and 12. So the same headline salary leaves a different share of itself as present-tense money in the two places, and that gap is wider than most of the differences people actually negotiate over. For the residency and tax rules underneath a real move, living here and earning there is the one to read.

What to do with two offers in front of you

Ask for the employer contribution in writing. It is real pay, it is yours, and it is almost never on the letter.

Then compute the comparison twice, once on cash and once on everything, and look at whether they agree. When they agree, the decision is easy and the gap is the gap. When they disagree, as they did here, you have learned something more useful than a winner — the offers are so close that which one wins depends on how you measure.

At which point salary has stopped being the deciding factor, and you can go and think about the job.

Comparing two offers

"Which offer is bigger" can have more than one right answer. Two Singapore offers at the same S$144,000 gross ranked in opposite directions here: A won on cash by S$1,020, B won by S$1,200 once employer contributions were counted. So compute it both ways, and always ask for the employer contribution in writing, because it is real pay that no offer letter mentions. Percentages need care too. The deferred share is flat at 37 per cent up to a S$8,000 salary and falls to 14.8 per cent by S$20,000, so a rule calibrated at one salary misleads at another. Nor is a deferred dollar a cash dollar: of one offer's S$37,740, only S$23,463 landed in the account you can reach before retirement. And where the two measures disagree, the offers are close enough that the decision should probably not be about the money.

Running it on your own offers

Our Singapore take-home calculator and Malaysia take-home calculator use the same engine as this guide, so putting your own numbers in gives figures consistent with everything above, and the EPF, SOCSO and EIS calculator breaks the Malaysian contributions out line by line. For the surrounding reading, how to read your payslip covers what the deductions are once you have accepted, and what changed in the statutory rates covers how often the numbers in this guide move.

Sources
  • Every figure is computed by a script committed alongside this guide, using asean-payroll-kernel.js — the module our own Singapore and Malaysia take-home calculators run on. No rate is retyped here and nothing is quoted from an external payroll table, so this guide cannot drift from the tools it describes.
  • ⚠️ RESIDENT EMPLOYEES ONLY, which is the scope both calculators state on their own pages. The Singapore one is explicit that foreigners pay no CPF and that it is not for non-residents; the Malaysian one covers resident private-sector employees.
  • ⚠️ NO CROSS-BORDER RANKING IS COMPUTED, AND THE REFUSAL IS THE POINT. It would need an exchange rate that is in no engine and moves daily, and it would usually describe someone on an Employment Pass who contributes no CPF. A control in the script proves the trap is live rather than theoretical: the Singapore function returns the same contribution for a foreign residency as for a citizen, because its caller never offers the option.
  • ⚠️ THE TWO OFFERS ARE CONSTRUCTED, NOT OBSERVED. They were chosen to sit either side of the ordinary wage ceiling, which is where the reversal lives. The reversal is a real property of the rules; the specific S$1,020 and S$1,200 belong to this pair of offers and not to offers in general.
  • ⚠️ RELIEFS ARE THE AUTOMATIC ONES ONLY — earned income and employee CPF in Singapore, the standard set in Malaysia. A real assessment carrying more reliefs produces a lower tax and a higher net, which moves both offers in the same direction rather than changing the ranking.
  • ⚠️ RATE-YEAR 2026, AGE 30, SINGLE FILER, PRIVATE SECTOR. Contribution rates are banded by age and change by announcement, so an older employee gets a different answer and next year may too.
  • ⚠️ THE ACCOUNT SPLIT IS COMPUTED FOR SINGAPORE ONLY. The engine models CPF's allocation across its three accounts, and does not model the equivalent split on the Malaysian side. Rather than reach outside the engine for a matching figure, this guide publishes none.

This works through the arithmetic of comparing two constructed job offers using our own published payroll engine. It is not financial, tax or employment advice, not a payroll or assessment substitute, and not a recommendation about any offer, employer or country.