income-tax-sg
v0.1.1
Published
Calculate individual income tax for Singapore tax residents
Maintainers
Readme
income-tax-sg
Calculate individual income tax for Singapore tax residents.
Installation
npm install income-tax-sgUsage
Calculate tax from chargeable income
import { calculateTaxFromChargeableIncome } from "income-tax-sg";
const tax = calculateTaxFromChargeableIncome(120_000);
// 7950Calculate tax from income breakdown
import { calculateTax } from "income-tax-sg";
const result = calculateTax({
employmentIncome: 150_000,
employmentExpenses: 2_000,
otherIncome: 5_000,
donations: 1_000,
personalReliefs: 20_000,
taxRebates: 200,
});
// {
// chargeableIncome: 130500,
// grossTax: 9525,
// netTaxPayable: 9325
// }All fields in the params object are optional and default to 0. Several fields are grouping categories — you should sum the relevant items before passing them in:
otherIncome— the total of all non-employment income, including:- Trade, business, profession or vocation income
- Dividends
- Interest
- Rent from property
- Royalty, charge, estate/trust income
- Gains or profits of an income nature
donations— approved donations (before the 2.5× tax deduction multiplier, which is applied automatically)personalReliefs— the total of all personal reliefs claimed, including:- Earned income relief
- Spouse relief / spouse relief (disability)
- Qualifying child relief (QCR) / child relief (disability)
- Working mother's child relief
- Parent relief / parent relief (disability)
- Grandparent caregiver relief
- Sibling relief (disability)
- CPF/provident fund relief
- Life insurance relief
- CPF cash top-up relief (self, dependant and Medisave account)
- Supplementary Retirement Scheme (SRS) relief
- NSman (self/wife/parent) relief
Note: the $80,000 overall relief cap is applied automatically.
taxRebates— the total of all tax rebates, including:- Parenthood tax rebate
- Any other applicable tax rebates
Assessment year
Both functions accept an optional assessment year parameter (default: 2026). Must be an integer >= 2026.
calculateTaxFromChargeableIncome(120_000, 2026);
calculateTax({ employmentIncome: 120_000 }, 2026);Calculation logic
- Net employment income = employment income − employment expenses (floored at 0)
- Total income = net employment income + other income
- Assessable income = total income − (donations × 2.5)
- Chargeable income = assessable income − personal reliefs (capped at $80,000)
- Gross tax = progressive tax on chargeable income
- Net tax payable = gross tax − tax rebates (floored at 0)
Sources
- IRAS — Individual Income Tax Rates
- IRAS — Income Tax Calculator for Tax Resident Individuals (YA2026)
License
ISC
