Free income tax calculator for India — compare New Tax Regime vs Old Tax Regime, compute in-hand salary, HRA exemption, 80C savings, and LTCG/STCG taxes. Updated for FY 2026-27.
| Tool | URL | Use Case |
|---|---|---|
| Income Tax Calculator | stockcalc.in/calculator/income-tax | New vs Old regime comparison |
| In-Hand Salary | stockcalc.in/calculator/in-hand-salary | CTC to take-home salary breakdown |
| HRA Calculator | stockcalc.in/calculator/hra | HRA exemption under Section 10(13A) |
| LTCG Calculator | stockcalc.in/calculator/ltcg | Long-term capital gains tax |
| STCG Calculator | stockcalc.in/calculator/stcg | Short-term capital gains tax |
| TDS Calculator | stockcalc.in/calculator/tds | TDS on salary & other income |
| Tax Loss Harvesting | stockcalc.in/calculator/tax-loss-harvesting | Offset gains with losses |
| US Stock Tax (India) | stockcalc.in/calculator/us-stock-tax | Tax on US equity investments |
/**
* New Tax Regime — FY 2026-27
* Standard Deduction: ₹75,000 (salaried)
* Rebate u/s 87A: ₹25,000 (if taxable income ≤ ₹7L)
*/
const NEW_REGIME_SLABS = [
{ min: 0, max: 400000, rate: 0 },
{ min: 400000, max: 800000, rate: 0.05 },
{ min: 800000, max: 1200000, rate: 0.10 },
{ min: 1200000, max: 1600000, rate: 0.15 },
{ min: 1600000, max: 2000000, rate: 0.20 },
{ min: 2000000, max: 2400000, rate: 0.25 },
{ min: 2400000, max: Infinity, rate: 0.30 },
];
function calculateNewRegimeTax(grossSalary) {
const standardDeduction = 75000;
const taxableIncome = Math.max(0, grossSalary - standardDeduction);
let tax = 0;
for (const slab of NEW_REGIME_SLABS) {
if (taxableIncome > slab.min) {
const taxableInSlab = Math.min(taxableIncome, slab.max) - slab.min;
tax += taxableInSlab * slab.rate;
}
}
// Rebate u/s 87A — zero tax if taxable income ≤ ₹12L (new regime)
if (taxableIncome <= 1200000) tax = 0;
// Health & Education Cess: 4%
return Math.round(tax * 1.04);
}
// Example: ₹15 LPA CTC
console.log(calculateNewRegimeTax(1500000)); // ₹1,17,000
/**
* Old Tax Regime — FY 2026-27
* Allows 80C (₹1.5L), 80D, HRA, LTA, Standard Deduction (₹50,000)
*/
const OLD_REGIME_SLABS = [
{ min: 0, max: 250000, rate: 0 },
{ min: 250000, max: 500000, rate: 0.05 },
{ min: 500000, max: 1000000, rate: 0.20 },
{ min: 1000000, max: Infinity, rate: 0.30 },
];
function calculateOldRegimeTax(grossSalary, deductions = {}) {
const {
standardDeduction = 50000,
section80C = 0, // max ₹1,50,000
section80D = 0, // health insurance premium
hraExemption = 0,
} = deductions;
const totalDeductions = standardDeduction
+ Math.min(section80C, 150000)
+ section80D
+ hraExemption;
const taxableIncome = Math.max(0, grossSalary - totalDeductions);
let tax = 0;
for (const slab of OLD_REGIME_SLABS) {
if (taxableIncome > slab.min) {
const taxableInSlab = Math.min(taxableIncome, slab.max) - slab.min;
tax += taxableInSlab * slab.rate;
}
}
// Rebate u/s 87A (taxable income ≤ ₹5L)
if (taxableIncome <= 500000) tax = Math.max(0, tax - 12500);
return Math.round(tax * 1.04); // + 4% cess
}
/**
* HRA Exemption — Minimum of 3 conditions (Section 10(13A))
* @param {number} basicSalary - Basic + DA (₹/year)
* @param {number} hraReceived - HRA received from employer (₹/year)
* @param {number} rentPaid - Annual rent paid (₹/year)
* @param {boolean} isMetro - true for Delhi/Mumbai/Kolkata/Chennai
*/
function hraExemption(basicSalary, hraReceived, rentPaid, isMetro) {
const condition1 = hraReceived;
const condition2 = isMetro ? basicSalary * 0.50 : basicSalary * 0.40;
const condition3 = Math.max(0, rentPaid - basicSalary * 0.10);
return Math.min(condition1, condition2, condition3);
}
// → Use the live HRA calculator: https://stockcalc.in/calculator/hra
| Annual Income | Regime to Choose |
|---|---|
| Up to ₹7.75L (salaried) | New Regime (zero tax) |
| ₹8L – ₹15L | Depends on deductions (80C + HRA) |
| Above ₹15L with max deductions | Old Regime may save ₹50K–₹1L |
| Above ₹15L with no deductions | New Regime is better |
→ Compare both with exact numbers: stockcalc.in/calculator/income-tax
| ← All Calculators | Visit StockCalc.in → |