CompareSG

What you actually pay in income tax at your salary

Pick your monthly salary to see the tax on your next dollar, the share of your pay that tax takes, and who pays Singapore's income tax.

What do you earn?

Pick your status and slide to your monthly salary. Everything below changes with it. Income earned in 2026, taxed in 2027, at the rates IRAS lists from YA2024 onwards.

$5,000 a month
$1,000$40,000

Assumes you are single, under 55, paid for 12 months, with no bonus and no other reliefs. "What this leaves out" below lists the rest.

What $5,000 a month comes to in income tax

Your pay for the year, split into slices. Each slice of taxable pay is taxed at its own rate. Hover or tap a slice to see the rule behind it.

About $1,040 a year in income tax

Share of your salary taken
1.7%

$1,040 a year out of $60,000, about $87 a month.

Tax on your next dollar
7 cents

Of taxable pay, which is what is left after CPF and reliefs ($47,000 a year here). Of an extra $1 of salary, 20 cents goes to your CPF first, so only 80 cents is taxable and the tax is 5.6 cents.

0%
2%
3.5%
7%
$0$60,000 a year
  • Your CPFGoes to your own CPF accountsnot taxed$12,000
  • Earned income reliefOff your pay if you are under 55not taxed$1,000
  • First $20,000 of taxable payTaxable pay from $0 to $20,000taxed at 0%$0
  • Next $10,000 of taxable payTaxable pay from $20,000 to $30,000taxed at 2%$200
  • Next $10,000 of taxable payTaxable pay from $30,000 to $40,000taxed at 3.5%$350
  • Next $7,000 of taxable payTaxable pay from $40,000 to $47,000taxed at 7%$490
  • Income tax for the year$87 a month on average1.7% of pay$1,040

At $5,000 a month you pay $1,040 a year, which is 1.7% of your salary, even though your next dollar of taxable pay is taxed at 7%.

Why does tax take a smaller share of your salary than the rate on your next dollar?

Both lines for every monthly salary from $1,000 to $40,000, for the status you picked. Hover or tap the chart to read any salary.

Line chart of the share of salary that income tax takes and the tax on the next dollar of taxable pay, for monthly salaries from $1,000 to $40,000 (citizen or PR). At $5,000 a month: 1.7% of salary taken and 7% on the next dollar.0%5%10%15%20%25%$1k$5k$10k$20k$30k$40kMonthly salary
Share of your salary taken: 1.7% at $5,000Tax on your next dollar of taxable pay: 7% at $5,000

At $5,000 a month your next dollar of taxable pay is taxed at 7%, but tax takes only 1.7% of your salary, because the lower slices of your pay are taxed at less, and your CPF and reliefs are not taxed.

If you got a $500 a month raise from $5,000, how much would you keep?

The extra $500 a month is split between your own CPF, income tax and your pocket, using the same assumptions.

To your CPF
$100

a month, into your own CPF accounts

To income tax
$28

a month more, $336 more a year

You keep
$372

a month, after CPF and tax

Your salary goes from $5,000 to $5,500 a month. Tax for the year goes from $1,040 to $1,376, and the tax on your next dollar stays at 7%.

Of a $500 a month raise you would keep $372 after CPF and tax, and $28 of it would go to income tax.

Who pays Singapore's income tax?

IRAS data for YA2025 (income earned in 2024): 2,363,624 tax residents with chargeable income above $20,000. It counts taxpayers, not everyone who earns, so it says nothing about people below that line. Net tax is after that year's rebate, and shares of tax are of what these tax residents were charged.

Share of taxpayersShare of these residents' tax
$20,001 to $25,000taxable income
9.2% of taxpayersunder 0.1% of tax
$25,001 to $30,000taxable income
9.3% of taxpayers0.1% of tax
$30,001 to $40,000taxable income
16.8% of taxpayers0.4% of tax
$40,001 to $50,000Your taxable paytaxable income
12.9% of taxpayers1.0% of tax
$50,001 to $60,000taxable income
9.2% of taxpayers1.5% of tax
$60,001 to $70,000taxable income
6.6% of taxpayers1.6% of tax
$70,001 to $80,000taxable income
5.1% of taxpayers1.6% of tax
$80,001 to $100,000taxable income
7.3% of taxpayers3.5% of tax
$100,001 to $150,000taxable income
10.2% of taxpayers9.6% of tax
$150,001 to $200,000taxable income
4.7% of taxpayers8.7% of tax
$200,001 to $300,000taxable income
4.2% of taxpayers14.3% of tax
$300,001 to $400,000taxable income
1.8% of taxpayers10.3% of tax
$400,001 to $500,000taxable income
0.9% of taxpayers7.7% of tax
$500,001 to $1,000,000taxable income
1.2% of taxpayers17.2% of tax
$1,000,001 and abovetaxable income
0.4% of taxpayers22.4% of tax
  • Taxable income up to $50,000: 48 in every 100 taxpayers, and about 1.5 dollars in every 100 of these residents' tax.
  • Taxable income above $200,000: about 8.6 in every 100 taxpayers (202,273 people), and about 72 dollars in every 100 of these residents' tax.
  • Taxable income above $1 million: 9,298 people (0.4% of taxpayers), and about 22 dollars in every 100 of these residents' tax.

In YA2025, taxpayers with taxable income above $200,000 were about 8.6 in every 100 and were charged about 72 dollars in every 100 of these residents' tax, while those up to $50,000 were 48 in every 100 and were charged about 1.5.

What this leaves out

Your own bill will differ if any of these apply to you.

  • Bonuses. IRAS counts a bonus as employment income, so it is taxed with the rest of your pay. CPF also applies to bonuses, under its own ceiling. Both are left out here.
  • Reliefs for your family and life. Spouse, child, parent, grandparent caregiver and sibling reliefs, life insurance, SRS and CPF top-ups all lower taxable income, with a cap of $80,000 on total personal reliefs. Donations are deducted separately. None is included.
  • Permanent residents in their first two years. CPF uses separate rate tables for them. We apply the 20% employee rate to every PR, so a PR in those years may get less CPF relief, and pay more tax, than shown.
  • Age 55 and over. CPF rates fall with age and earned income relief rises to $6,000 at 55 to 59 and $8,000 at 60 and over. This page assumes under 55.
  • Other income. Rent, dividends, business income and gains are not included, and neither are employment expenses.
  • Non-residents. People who do not meet IRAS's residency tests are taxed on different terms. This page shows tax residents only.
  • Rebates and rule changes. No rebate is included, such as the Parenthood Tax Rebate for parents, and we found no personal income tax rebate announced for YA2027. Rates, the CPF ceiling and rebates can change.

More finds

At what pay does a citizen first pay any income tax?
$2,187.50 a month
Above this, a citizen or PR under 55 has taxable pay over $20,000. A foreigner with no CPF starts at $1,750 (our sums, 12 months of pay, no bonus).
How many people were charged 22 in every 100 dollars of tax?
9,298 people
Tax residents with taxable income above $1 million in YA2025 were 0.4% of taxpayers and were charged 22.4% of the net tax charged to tax residents. The data counts taxpayers only.
Same pay, different tax bill?
$5,075 vs $3,056
On $8,000 a month a foreigner pays $5,075 a year and a citizen or PR pays $3,056. The foreigner has no CPF to deduct, so more of the pay is taxable. The citizen puts $19,200 a year into CPF.

The short version

A Singapore citizen or PR on $5,000 a month pays about $1,040 a year in income tax, 1.7% of salary, because each slice of taxable pay is taxed at its own rate, from 0% on the first $20,000 up to 24% above $1 million (IRAS rates, our sum for income earned in 2026).

Two numbers matter. The tax on your next dollar is the rate on the top slice of your taxable pay: 7% here. The share of your salary taken is the whole bill divided by your salary: 1.7%. They differ because the first $20,000 of taxable pay is taxed at 0%, the next two slices at 2% and 3.5%, and only the part above $40,000 at 7%. For a citizen or PR, CPF and reliefs also come off before tax, and the share is of the whole salary.

Taxable pay is salary less your CPF (20% of pay up to $8,000 a month for citizens and PRs under 55) and $1,000 of earned income relief. A foreigner has no CPF to deduct, so the same $5,000 a month is taxed $1,880 a year, 3.1% of salary.

IRAS data for YA2025 shows who pays. Among 2,363,624 tax residents with chargeable income above $20,000, the 48 in every 100 with up to $50,000 were charged about 1.5 dollars in every 100 of these residents' tax, and the 8.6 in every 100 above $200,000 were charged about 72. The data counts taxpayers, not everyone who earns.

The picker leaves out bonuses, family reliefs, permanent residents in their first two years, people aged 55 and over, and other income. It is our sum for income earned in 2026 at the rates IRAS lists from YA2024 onwards, with no rebate.

By Ben (opens in a new tab). Updated . Data: IRAS, CPF Board and data.gov.sg.

Questions people ask

What is the difference between the tax on my next dollar and the share of my salary taken?

The tax on your next dollar (the marginal rate) is the rate on the top slice of your taxable pay. The share of your salary taken (the effective rate) is your whole tax bill divided by your salary. Singapore taxes each slice of taxable pay at its own rate, so the share taken is lower than the rate on the next dollar. For a citizen or PR, CPF and reliefs also come off before tax, and the share is of the whole salary. At $5,000 a month a citizen or PR pays 7% on the next dollar of taxable pay but 1.7% of salary overall.

How much income tax do I pay on $5,000 a month in Singapore?

About $1,040 a year, or 1.7% of salary, for a single citizen or PR under 55 with 12 months of pay, no bonus and no other reliefs, on income earned in 2026. A foreigner on the same salary has no CPF to deduct and pays about $1,880, or 3.1%.

At what salary do I start paying income tax in Singapore?

When taxable income goes above $20,000, because the first $20,000 is taxed at 0%. For a citizen or PR under 55 that is a salary above about $2,187.50 a month (our sum); for a foreigner with no CPF it is above $1,750 a month. This assumes 12 months of pay, no bonus and no other reliefs.

What are Singapore's income tax rates for residents?

From YA2024 onwards, tax residents pay 0% on the first $20,000 of chargeable income, 2% on the next $10,000, 3.5% on the next $10,000, 7% on the next $40,000, then 11.5%, 15%, 18%, 19%, 19.5% and 20% on further slices of $40,000 each, 22% on the next $180,000, 23% on the next $500,000 and 24% above $1,000,000 (IRAS). The full table is below.

Is CPF taxed in Singapore?

No. What an employee pays into CPF is a tax relief, so it comes off before tax is worked out. On this page, for a citizen or PR under 55, it is 20% of pay up to the $8,000 a month ceiling. IRAS's calculator notes say CPF capping rules apply to the relief.

What is earned income relief?

A relief of $1,000 for people under 55 (IRAS). It is $6,000 at 55 to 59 and $8,000 at 60 and over, and higher for people with disabilities. This page assumes under 55.

Do foreigners pay income tax in Singapore?

Foreigners who stayed or worked in Singapore for at least 183 days in the previous calendar year are tax residents and pay the same rates as citizens, but they have no CPF relief (IRAS has other residency tests too). Other foreigners are non-residents, whose employment income is taxed at a flat 15% or the resident rates, whichever is higher. This page shows tax residents only.

Is there an income tax rebate this year?

IRAS's rates page lists a personal income tax rebate only for YA2024 (50%, capped at $200) and YA2025 (60%, capped at $200), and its YA2026 calculator has no rebate line. Income earned in 2026 is taxed in YA2027, and we found no rebate announced for it. This page includes none.

Who pays Singapore's income tax?

IRAS's data for YA2025 covers 2,363,624 tax residents with chargeable income above $20,000. Those with up to $50,000 were 48 in every 100 of them and were charged about 1.5 dollars in every 100 of these residents' tax. Those above $200,000 were about 8.6 in every 100 and were charged about 72 dollars in every 100. The 9,298 above $1 million were charged about 22 dollars in every 100.

Does everyone who earns pay income tax?

This page cannot say how many do not. The IRAS dataset lists tax residents only from chargeable income above $20,000 (its tax-resident row for $20,000 and below is empty), so it does not count residents below that line. It also has non-residents, which we left out. The first $20,000 of chargeable income is taxed at 0%.

Do bonuses change the answer?

Yes. IRAS counts bonuses as employment income, so they are added to your pay for the year and taxed in the same slices. This page leaves bonuses out, so it understates the tax of anyone who gets one.

Which year does this page cover?

Our sums are for income earned in 2026, which is taxed in Year of Assessment 2027, using the rates IRAS lists from YA2024 onwards and the 2026 CPF rates. The who-pays figures are for YA2025, which is income earned in 2024.

The numbers behind it

Singapore resident income tax rates, YA2024 onwards (IRAS, read 14 Oct 2026)
Chargeable incomeRateTax on this sliceTotal tax at the top of the slice
First $20,0000%$0$0
Next $10,000 (up to $30,000)2%$200$200
Next $10,000 (up to $40,000)3.5%$350$550
Next $40,000 (up to $80,000)7%$2,800$3,350
Next $40,000 (up to $120,000)11.5%$4,600$7,950
Next $40,000 (up to $160,000)15%$6,000$13,950
Next $40,000 (up to $200,000)18%$7,200$21,150
Next $40,000 (up to $240,000)19%$7,600$28,750
Next $40,000 (up to $280,000)19.5%$7,800$36,550
Next $40,000 (up to $320,000)20%$8,000$44,550
Next $180,000 (up to $500,000)22%$39,600$84,150
Next $500,000 (up to $1,000,000)23%$115,000$199,150
Above $1,000,00024%The rest$199,150 plus 24% of the amount above $1,000,000
Tax at eleven monthly salaries (our sums, income earned in 2026: single, under 55, 12 months of pay, no bonus, no other reliefs)
Monthly salaryCitizen or PR: taxable payCitizen or PR: tax a yearCitizen or PR: share of salaryCitizen or PR: next dollar of taxable payForeigner: taxable payForeigner: tax a yearForeigner: share of salaryForeigner: next dollar of taxable pay
$2,500$23,000$600.2%2%$29,000$1800.6%2%
$3,000$27,800$1560.4%2%$35,000$3751.0%3.5%
$4,000$37,400$4591.0%3.5%$47,000$1,0402.2%7%
$5,000$47,000$1,0401.7%7%$59,000$1,8803.1%7%
$6,000$56,600$1,7122.4%7%$71,000$2,7203.8%7%
$8,000$75,800$3,0563.2%7%$95,000$5,0755.3%11.5%
$10,000$99,800$5,6274.7%11.5%$119,000$7,8356.5%11.5%
$12,000$123,800$8,5205.9%15%$143,000$11,4007.9%15%
$15,000$159,800$13,9207.7%15%$179,000$17,3709.7%18%
$20,000$219,800$24,91210.4%19%$239,000$28,56011.9%19%
$30,000$339,800$48,90613.6%22%$359,000$53,13014.8%22%
Tax residents by chargeable income, YA2025 (income earned in 2024). IRAS data on data.gov.sg; shares are our sums. Net tax assessed is after rebates and credits, including the YA2025 rebate.
Chargeable income groupTaxpayersShare of taxpayersRunning total of taxpayersNet tax assessed ($ million)Share of these residents' taxAverage tax each
$20,001 to $25,000216,7359.2%9.2%4.6under 0.1%$21
$25,001 to $30,000219,8169.3%18.5%13.20.1%$60
$30,001 to $40,000397,20316.8%35.3%74.40.4%$187
$40,001 to $50,000305,81512.9%48.2%206.71.0%$676
$50,001 to $60,000218,2269.2%57.4%298.31.5%$1,367
$60,001 to $70,000156,9346.6%64.1%322.21.6%$2,053
$70,001 to $80,000120,9495.1%69.2%330.31.6%$2,731
$80,001 to $100,000172,0517.3%76.5%715.23.5%$4,157
$100,001 to $150,000242,18310.2%86.7%1,948.89.6%$8,047
$150,001 to $200,000111,4394.7%91.4%1,765.68.7%$15,844
$200,001 to $300,000100,0864.2%95.7%2,892.814.3%$28,903
$300,001 to $400,00042,2651.8%97.5%2,094.110.3%$49,548
$400,001 to $500,00021,8910.9%98.4%1,570.17.7%$71,724
$500,001 to $1,000,00028,7331.2%99.6%3,489.517.2%$121,445
$1,000,001 and above9,2980.4%100.0%4,548.622.4%$489,202
All tax residents above $20,0002,363,624100.0%100.0%20,274.4100.0%$8,578
Rules and figures the picker uses
ItemValueSource
Income year modelledEarned in 2026, taxed in YA2027Our choice
RatesThe 13 slices in the first tableIRAS, from YA2024 onwards
Employee CPF rate20% of pay, citizens and PRs from the third year, age 55 and belowCPF Board, rates from 1 Jan 2026
Ordinary Wage ceiling$8,000 a monthIRAS, CPF relief for employees (ceiling table); CPF Board
CPF reliefThe employee's CPF contribution: 20% of pay up to the ceiling, so up to $19,200 a yearIRAS calculator notes: "allowable CPF contribution"; the sum is ours
Earned income relief$1,000 (under 55)IRAS YA2026 calculator notes
Cap on total reliefs$80,000 (not reached here)IRAS YA2026 calculator notes
RebateNoneIRAS lists one only for YA2024 and YA2025
ForeignerTax resident with no CPF, so no CPF reliefOur reading of IRAS and CPF Board

The boring bit

Where the information comes from

The tax rates come from IRAS's page on individual income tax rates (IRAS, income tax rates (opens in a new tab), read 14 Oct 2026). We checked our engine against the rate table and formula in IRAS's YA2026 income tax calculator for tax resident individuals (opens in a new tab), whose cell notes also give the earned income relief ($1,000 under 55), the $80,000 cap on total reliefs and the meaning of CPF relief ("allowable CPF contribution"). The CPF rates come from the CPF Board's page on how much CPF contributions to pay (opens in a new tab) (20% employee rate for ages 55 and below, from 1 Jan 2026) and the $8,000 Ordinary Wage ceiling (from 1 Jan 2026) from IRAS's page on CPF relief for employees (opens in a new tab); the CPF Board's page on wages for CPF contributions (opens in a new tab) uses the same ceiling in its worked example. Residency tests are from IRAS's rates page.

The who-pays figures are from IRAS's Taxable Individuals by Chargeable Income Group (opens in a new tab) on data.gov.sg (managed by IRAS, covers YA2011 to YA2025, last updated 2 Sep 2026, downloaded 14 Oct 2026). Contains information from this dataset accessed on 14 Oct 2026 from data.gov.sg, made available under the Singapore Open Data Licence version 1.0.

What is not claimed

  • This is not tax advice. Your own assessment depends on your own income and reliefs, and IRAS decides how a rule applies.
  • The picker is our sum, not an IRAS figure. We checked the rates and tax formula against IRAS's calculator file. We did not enter a salary into IRAS's calculator, and the CPF relief is our reading of "allowable CPF contribution" as 20% of pay up to the ceiling.
  • The $2,187.50 and $1,750 starting points, every share of taxpayers or of tax, the running totals and the "in every 100" figures are our sums from IRAS's counts.
  • Net tax assessed in the IRAS data is after rebates, tax credits and tax already deducted at source, so the YA2025 figures include the 60% rebate (capped at $200). We did not remove it. It matters most for the lowest groups.
  • The who-pays data is for income earned in 2024, while the picker is for 2026. The "Your taxable pay" marker compares the two, so it is a rough guide only.
  • The data counts taxpayers, not everyone who earns. Its tax-resident rows start above $20,000 (the row for $20,000 and below is empty), so it cannot say how many people earn too little to be taxed. We left out the non-resident rows.
  • We make no claim about whether any share of tax is fair, or why the numbers are what they are.
  • We did not open CPF's rate tables for permanent residents in their first two years, or for ages 55 and over. We only say they differ.
  • We found no rebate or rate change announced for YA2027. That is what we found, not a statement that none will come.
  • Nothing here says anything about any person or company.

Coverage

The picker works for monthly salaries from $1,000 to $40,000 in steps of $250 (157 steps), for citizens or PRs and for foreigners. The who-pays table covers 15 income groups and 2,363,624 tax residents in YA2025. The IRAS file has 480 rows for YA2011 to YA2025; we use the 15 YA2025 tax-resident rows with taxpayers. The tax-resident group at or below $20,000 has no taxpayers in the file, and 35,775 non-tax residents are left out.

Report an error. Corrections are logged publicly with a date.

How we did it
PythonCross-check against IRAS's calculatorHeadless browserdata.gov.sg API
  1. Typed the rates. We copied the 13 slices from IRAS's page into a small tax engine, and compared it with the rate table and formula in IRAS's YA2026 calculator file at 1,216 chargeable incomes.
  2. Wrote down the pay rules. CPF relief is the employee's contribution (20% of pay up to the ceiling) and earned income relief is $1,000, from the CPF Board and IRAS's calculator notes.
  3. Downloaded the IRAS dataset. We kept the YA2025 tax-resident rows and turned money in S$ thousand into dollars.
  4. Worked out who pays. For each income group we worked out its share of taxpayers, its share of the net tax, its running total and its average tax.
  5. Ran the checks. A script re-counts the dataset with its own loops and confirms every figure the text states. A browser test runs the page's own code at all 157 salaries for both statuses and compares it with the Python engine.
Show the code
"""Checks for the 'Income tax in Singapore' insight page. Own loops, nothing imported from the page's build.
(1) Re-computes the tax for the salaries the page states, from IRAS's rate table, and checks the page says them.
(2) Re-counts IRAS's YA2025 tax-resident rows and checks every who-pays figure the text states.
Usage: python3 -I check_figures.py iras_raw.json page.html"""
import html, json, re, sys

raw = json.load(open(sys.argv[1], encoding='utf-8'))['result']['records']
page = open(sys.argv[2], encoding='utf-8').read()
text = re.sub(r'<script.*?</script>|<style.*?</style>', ' ', page, flags=re.S)
text = re.sub(r'\s+', ' ', html.unescape(re.sub(r'<[^>]+>', ' ', text)))

# 1. tax from IRAS's rates (width of slice, rate), YA2024 onwards
SLICES = [(20000, .0), (10000, .02), (10000, .035), (40000, .07), (40000, .115), (40000, .15), (40000, .18),
          (40000, .19), (40000, .195), (40000, .20), (180000, .22), (500000, .23), (None, .24)]
def tax_on(income):
    tax, left = 0.0, income
    for width, rate in SLICES:
        part = left if width is None else min(left, width)
        tax += part * rate; left -= part
        if left <= 0: break
    return tax
def bill(monthly, citizen):
    cpf = 0.20 * min(monthly, 8000) * 12 if citizen else 0
    taxable = max(0, monthly * 12 - cpf - 1000)
    return taxable, tax_on(taxable)
for monthly, citizen, say in [(3000, True, ['$156', '0.4%']), (5000, True, ['$1,040', '1.7%', '7%']), (8000, True, ['$3,056', '3.2%']),
                              (15000, True, ['$13,920', '7.7%']), (5000, False, ['$1,880', '3.1%']), (8000, False, ['$5,075', '5.3%'])]:
    taxable, t = bill(monthly, citizen)
    for s in say:
        assert s in text, f'page does not say {s} for {monthly} a month'
    assert f'{t / (monthly * 12) * 100:.1f}%' in say or t == 0 or any(f'{t / (monthly * 12) * 100:.1f}%' == s for s in say), (monthly, citizen, t)
assert bill(2187.5, True)[1] == 0 and bill(2187.75, True)[1] > 0 and bill(1750, False)[1] == 0 and bill(1750.25, False)[1] > 0
assert '$2,187.50' in text and '$1,750' in text

# 2. IRAS YA2025, tax residents
rows = [r for r in raw if r['year_of_assessment'] == '2025' and r['resident_type'] == 'Tax Resident' and int(r['number_of_taxpayers']) > 0]
assert len(rows) == 15
def lo_of(g): return int(g.replace(',', '').split(' ')[0])
n = {r['chargeable_income_group']: int(r['number_of_taxpayers']) for r in rows}
t = {r['chargeable_income_group']: int(r['net_tax_assessed']) * 1000 for r in rows}   # S$ thousand -> dollars
N, T = sum(n.values()), sum(t.values())
low = [g for g in n if lo_of(g) <= 40001]            # groups 20,001-25,000 up to 40,001-50,000
high = [g for g in n if lo_of(g) >= 200001]
top = [g for g in n if lo_of(g) >= 1000001]
share = lambda gs, d: sum(d[g] for g in gs) / (N if d is n else T)
assert f'{N:,}' in text and f'{sum(n[g] for g in top):,}' in text
assert f'{round(share(low, n) * 100)} in every 100' in text and f'{round(share(high, t) * 100)} dollars in every 100' in text
hi_n = share(high, n) * 100; hi_txt = f'{hi_n:.1f}' if hi_n < 10 else f'{round(hi_n)}'   # one decimal below 10, as the page does
assert f'{hi_txt} in every 100' in text and f'{share(low, t) * 100:.1f} dollars in every 100'.replace('.0 ', ' ') in text
assert f'{share(top, t) * 100:.1f}%' in text and f'{share(top, n) * 100:.1f}%' in text
print(f'tax: 6 stated bills agree; who pays: {N:,} taxpayers, {round(share(low, n)*100)} in 100 pay {share(low, t)*100:.1f}% of tax up to $50,000; {hi_txt} in 100 pay {round(share(high, t)*100)}% above $200,000. All checks pass.')

What could make this wrong: a rule, rate or ceiling may change after 14 Oct 2026; the CPF relief is our reading of IRAS's wording; your own pay, bonus and reliefs will differ; and the who-pays data is two years older than the picker.

Source: IRAS, CPF Board and data.gov.sg, read on 14 Oct 2026.