The expressions above read these as $const. They are the figures the annual refresh replaces, so they live as data rather than being written into the formulas — which is what makes a year-on-year change a one-line diff instead of an edit to arithmetic.
Constant
Value
salariedBand1
600000
salariedBand2
1200000
salariedBand3
2200000
salariedBand4
3200000
salariedBand5
4100000
salariedBand6
5600000
salariedBand7
7000000
salariedRate0
0
salariedRate1
0.01
salariedRate2
0.11
salariedRate3
0.2
salariedRate4
0.25
salariedRate5
0.29
salariedRate6
0.32
salariedRate7
0.35
eobiEmployeeRate
0.01
Test vectors (8)
Every case is executed against this model on each build, by the Java engine and independently by a JavaScript one. A mismatch of a single cent fails the build, so the page cannot ship advertising a figure the model no longer produces.
Case 1 — N1 Rs200,000 a month: Rs2,400,000 taxable, income tax Rs156,000, EOBI Rs407
given grossMonthly
200000
given annualBonus
0
given eobiInsured
yes
given eobiMinimumWage
40700
expect grossAnnual
2400000
expect incomeTaxAnnual
156000
expect incomeTaxMonthly
13000
expect eobiMonthly
407
expect netMonthly
186593
Case 2 — N1b Rs200,000 a month: net for the year
given grossMonthly
200000
given annualBonus
0
given eobiInsured
yes
given eobiMinimumWage
40700
expect netAnnual
2239116
Case 3 — N2 Rs50,000 a month: Rs600,000 does not exceed the nil band
given grossMonthly
50000
given annualBonus
0
given eobiInsured
yes
given eobiMinimumWage
40700
expect incomeTaxAnnual
0
expect netAnnual
595116
Case 4 — N3 Rs100,000 a month: 1% of the Rs600,000 above Rs600,000 = Rs6,000
given grossMonthly
100000
given annualBonus
0
given eobiInsured
yes
given eobiMinimumWage
40700
expect incomeTaxAnnual
6000
Case 5 — N4 Rs150,000 a month and a Rs300,000 bonus: Rs6,000 + 11% of Rs900,000 = Rs105,000
given grossMonthly
150000
given annualBonus
300000
given eobiInsured
yes
given eobiMinimumWage
40700
expect grossAnnual
2100000
expect incomeTaxAnnual
105000
Case 6 — N5 Rs7,000,000 for the year: the table’s Rs1,424,000 at the top band edge
given grossMonthly
500000
given annualBonus
1000000
given eobiInsured
yes
given eobiMinimumWage
40700
expect incomeTaxAnnual
1424000
Case 7 — N6 Rs1,000,000 a month: Rs1,424,000 + 35% of Rs5,000,000, no surcharge on salary
given grossMonthly
1000000
given annualBonus
0
given eobiInsured
yes
given eobiMinimumWage
40700
expect incomeTaxAnnual
3174000
Case 8 — N7 not insured with EOBI: no contribution
The whole model as JSON — inputs, outputs, formulas, vectors and sources in one re-runnable document.
This model is published under CC BY 4.0: use it, adapt it, build on it, with attribution. The licence covers the model — the expression of each rule and the arrangement of the catalog. The rates and thresholds are law, and nobody licenses those; the sources above are where they come from.