Complex example
This checker aims to calculate the net tax payable by an individual. This example is modelled after the IRAS 2020 Income Tax Calculator for Tax Resident Individuals.
What this example features:
Use of Max/Min functions
Several levels of calculations informed by other calculations
Different methods of building logic
Making bands with logic
Calculator structure
Calculations must be done in order as previous calculations are used in later calculations.
*Net employment income + Trade, Business, Profession or Vocation income + *Other income = Total income
Total income - Approved donations = Assessable income
Assessable income - *Total personal reliefs = Chargeable income
Calculate tax payable on chargeable income
Tax payable on chargeable income - Parenthood tax rebate = Net Tax Payable
*Net employment income = + Employment income - Employment expenses
*Other income = + Dividends + Interest + Rent from Property + Royalty, Charge, Estate/Trust Income + Gains or Profits of an Income Nature
*Total personal reliefs (Capped at $80,000) = + Earned income relief + Spouse/handicapped child relief + Qualifying/handicapped child relief + Working mother's child relief + Parent/handicapped parent relief + Grandparent caregiver relief + Handicapped brother/sister relief + CPF/provident Fund relief + Life Insurance relief + Course fees relief + Foreign domestic worker levy relief + CPF cash top-up relief (self, dependant and Medisave account) + Supplementary Retirement Scheme (SRS) relief + NSman (Self/wife/parent) relief
Step 1: Set questions
Step 2: Total income logic
Net employment income
= Employment income (N1) - Employment expenses (N2)
If the outcome is positive, i.e. employment income > expenses, we want to factor that into our formula.
If the outcome is negative, i.e. employment income < expenses, we don't want to factor a negative number into our calculation. Instead, we will take it as zero.
Thus the max function helps us to choose: Between (N1-N2) and 0, take the higher number
Total income
We'll add the above Net employment income result (O1) to the rest of the inputs to calculate the total income.
= Net employment income (O1) + Trade, Business, Profession or Vocation income (N3) + Other income ( + Dividends (N4) + Interest (N5) + Rent from Property (N6) + Royalty, Charge, Estate/Trust Income (N7) + Gains or Profits of an Income Nature (N8) )
Step 3: Assessable income logic
= Total income (O2) - Approved donations (N9)
If the outcome is positive, i.e. total income > approved donations, we want to factor that into our formula.
If the outcome is negative, i.e. total income > approved donations, we don't want to factor a negative number into our calculation. Instead, we will take it as zero.
Thus the max function helps us to choose: Between (O2-N9) and 0, take the higher number
Step 4: Chargeable income logic
= Assessable income - Personal reliefs
Personal reliefs (Capped at $80,000)
Some of the personal reliefs have a cap to them. Hence for these inputs, we'd want to ensure that we do not factor in a number larger than the cap.
Thus the min function helps us to choose: Between (Eligible relief) and (Max cap of relief), take the lower number
min(N10, 12000)
+ min(N11, 5500)
+ N12
+ N13
+ min(N14, 28000)
+ min(N15, 3000)
+ N16
+ N17
+ min(N18, 5000)
+ min(N19, 5500)
+ min(N20, 6360)
+ min(N21, 14000)
+ min(N22, 35700)
+ min(N23, 5750)
The max cap of total personal reliefs is also $80,000. Hence, the min function helps us to choose: Between (Total personal reliefs) and (80000), take the lower number
min(total personal reliefs, 80000)
We can combine these two into the formula below:
Chargeable income
= Assessable income (O3) - Total personal reliefs (O4)
If positive, take that number. If negative, take it as 0.
Step 5a: (Method 1) Tax payable on Chargeable income logic
Tax is charged based on the band your chargeable income falls within. See the table below:
Tax is only charged for chargeable incomes > $20,000. Higher chargeable incomes have a higher base tax payable, and additional tax based on the difference between the base value and the next band value.
For example, if your chargeable income is $35,000, you fall into the second band:
Here's what it would look like:
First band: Tax Payable on first $30,000 = Tax charged on first $20,000 + (Next $10,000 x 2% Income Tax Rate) = 0 + (Chargeable income [O5] - 20000) x 0.02
Second band: Tax Payable on $30,000 to $40,000 = Tax charged on first $30,000 + (Next $10,000 x 3.5% Income Tax Rate) = 200 + (Chargeable income [O5] - 30000) x 0.035
Tenth band: Tax Payable on $320,000 onwards = Tax charged on first $320,000 + (Next $ x 22% Income Tax Rate) = 44550 + (Chargeable income [O5] - 320000) x 0.22
Tax Payable on Chargeable Income
To calculate the gross tax payable, we can simply add up all the outcomes from each band together.
Here's what that formula would look like a chargeable income of $165,000:
Gross tax payable = O6 + O7 + O8 + O9 + O10 + O11 + O12 + O13 + O14 + O15 = 0 + 0 + 0 + 0 + 0 + (13950 + ((165000 - 160000) * 0.18)) + 0 + 0 + 0 + 0 = $14,850 gross tax payable
However this is not the only way of building our logic. There are many ways we can interpret the table, and hence there are also other ways to translate it into logic. Let's look at an alternative example below.
Step 5b: (Method 2) Tax payable on Chargeable income logic
Another way to look at the total tax payable is to break down your chargeable income into the different increments, and applying the relevant tax rate to that increment.
For example, $400,000 chargeable income can be broken down into:
Hence, we can simply add all of the tax for each increment together.
Instead of using the entire band range as our IF statement conditions, as long as chargeable income (O5) is higher than the minimum value in the band, we want to apply the tax rate to O5. Hence, we only need to set IF O5 > 20000
.
Because O5 can either cross the full increment value or its partial value, we would use a min function to choose the lower of the 2 values: Either the partial increment tax, or the full increment tax.
Else if chargeable income doesn't fall within the range set, i.e. the condition is not fulfilled, we don't want anything to be added, hence it should be taken as 0.
Here's what it would look like:
First increment: Tax Payable on first $30,000 ($10,000 increment)
If chargeable amount > 20,000,
= Tax charged on O5 - 20000 (Should be less than $10,000) OR Tax charged on $10,000
= ( Chargeable income [O5] - 20000 ) * 0.02
OR 10000 * 0.02
= Take whichever is lower
Second increment: Tax Payable on $30,000 to $40,000 ($10,000 increment)
If chargeable amount > 30,000,
= Tax charged on O5 - 30000 (Should be less than $10,000) OR Tax charged on $10,000
= ( Chargeable income [O5] - 30000 ) * 0.035
OR 10000 * 0.035
= Take whichever is lower
Tenth increment: Tax Payable on $320,000 onwards (No more increments)
If chargeable amount > 320,000,
= Tax charged on O5 - 320000
= ( Chargeable income [O5] - 320000 ) * 0.035
Tax Payable on Chargeable Income
As mentioned above, to calculate the gross tax payable we add up each increment tax together.
Here's what that formula would look like a chargeable income of $165,000:
Gross tax payable = O6 + O7 + O8 + O9 + O10 + O11 + O12 + O13 + O14 + O15 = (10000*0.02) + (10000*0.035) + (440000*0.07) + (40000*0.115) + (40000*0.15) + (5000*0.18) + 0 + 0 + 0 + 0 = $14,850 gross tax payable
Step 6: Net tax payable logic
= Tax payable on chargeable income (O16) - Parenthood tax rebate (N24)
Preview
You can try out this checker here.
Last updated