New York Take-Home Pay Calculator (2024)
Annual Gross Salary ($)
Filing Status
Single
Married Filing Jointly
NYC Resident?
Yes (NYC Local Tax applies)
No (NY State Only)
Annual Pre-tax Deductions ($)
Calculate My Take-Home Pay
Estimated 2024 Pay Breakdown
Total Federal Tax:
FICA (Social Security + Medicare):
New York State Tax:
NYC Local Tax:
Net Annual Take-Home:
Understanding New York Income Taxes
Living and working in New York involves one of the most complex tax structures in the United States. Unlike many states that only charge a flat state income tax, New York uses a progressive system, and those living within New York City limits are subject to an additional municipal income tax.
How This Calculator Works
This tool estimates your 2024 net pay by factoring in four major categories of payroll deductions:
Federal Income Tax: Based on the 2024 IRS tax brackets ranging from 10% to 37%.
FICA: Includes Social Security (6.2% up to $168,600) and Medicare (1.45%).
New York State Income Tax: New York's progressive rates range from 4% to 10.9% for high earners.
New York City Tax: Residents of the five boroughs (Brooklyn, Bronx, Manhattan, Queens, Staten Island) pay an additional local tax between 3.078% and 3.876%.
Example Scenario
If you earn a gross annual salary of $100,000 as a single filer living in NYC with no extra deductions:
Federal Tax: ~$14,260
FICA: ~$7,650
NY State Tax: ~$5,370
NYC Local Tax: ~$3,530
Total Take-Home Pay: ~$69,190 annually (roughly $2,661 every two weeks).
Disclaimer: This calculator provides estimates based on 2024 tax tables and standard deductions ($14,600 for single, $29,200 for married). It does not account for specific credits like the Child Tax Credit or the Earned Income Tax Credit. Always consult a tax professional for official filings.
function calculateNYIncome() {
var gross = parseFloat(document.getElementById('grossSalary').value) || 0;
var preTaxDeductions = parseFloat(document.getElementById('deductions').value) || 0;
var filingStatus = document.getElementById('filingStatus').value;
var isNyc = document.getElementById('nycResident').value === 'yes';
var taxableIncome = Math.max(0, gross – preTaxDeductions);
// 1. Federal Tax Logic (2024 Estimates)
var fedStandardDeduction = (filingStatus === 'single') ? 14600 : 29200;
var fedTaxable = Math.max(0, taxableIncome – fedStandardDeduction);
var fedTax = 0;
if (filingStatus === 'single') {
if (fedTaxable > 609350) fedTax = 183647 + (fedTaxable – 609350) * 0.37;
else if (fedTaxable > 243725) fedTax = 56079 + (fedTaxable – 243725) * 0.35;
else if (fedTaxable > 191950) fedTax = 39491 + (fedTaxable – 191950) * 0.32;
else if (fedTaxable > 100525) fedTax = 17569 + (fedTaxable – 100525) * 0.24;
else if (fedTaxable > 47150) fedTax = 5454 + (fedTaxable – 47150) * 0.22;
else if (fedTaxable > 11600) fedTax = 1160 + (fedTaxable – 11600) * 0.12;
else fedTax = fedTaxable * 0.10;
} else {
if (fedTaxable > 731200) fedTax = 186362 + (fedTaxable – 731200) * 0.37;
else if (fedTaxable > 487450) fedTax = 101050 + (fedTaxable – 487450) * 0.35;
else if (fedTaxable > 383900) fedTax = 67954 + (fedTaxable – 383900) * 0.32;
else if (fedTaxable > 201050) fedTax = 35139 + (fedTaxable – 201050) * 0.24;
else if (fedTaxable > 94300) fedTax = 10908 + (fedTaxable – 94300) * 0.22;
else if (fedTaxable > 23200) fedTax = 2320 + (fedTaxable – 23200) * 0.12;
else fedTax = fedTaxable * 0.10;
}
// 2. FICA Taxes
var ssTax = Math.min(gross, 168600) * 0.062;
var medTax = gross * 0.0145;
if (gross > 200000 && filingStatus === 'single') medTax += (gross – 200000) * 0.009;
if (gross > 250000 && filingStatus === 'married') medTax += (gross – 250000) * 0.009;
var fica = ssTax + medTax;
// 3. NY State Tax Logic (2024 Estimates)
var nyStandardDeduction = (filingStatus === 'single') ? 8000 : 16050;
var nyTaxable = Math.max(0, taxableIncome – nyStandardDeduction);
var nyTax = 0;
if (nyTaxable > 25000000) nyTax = nyTaxable * 0.109; // Simple high-earner flat impact
else if (nyTaxable > 1077550) nyTax = 69657 + (nyTaxable – 1077550) * 0.0685;
else if (nyTaxable > 161550) nyTax = 8780 + (nyTaxable – 161550) * 0.06;
else if (nyTaxable > 80650) nyTax = 4050 + (nyTaxable – 80650) * 0.0585;
else if (nyTaxable > 13900) nyTax = 541 + (nyTaxable – 13900) * 0.0525;
else if (nyTaxable > 8500) nyTax = 319 + (nyTaxable – 8500) * 0.045;
else nyTax = nyTaxable * 0.04;
// 4. NYC Tax (if resident)
var nycTax = 0;
if (isNyc) {
if (nyTaxable > 50000) nycTax = 1834 + (nyTaxable – 50000) * 0.03876;
else if (nyTaxable > 25000) nycTax = 888 + (nyTaxable – 25000) * 0.03762;
else if (nyTaxable > 12000) nycTax = 388 + (nyTaxable – 12000) * 0.03534;
else nycTax = nyTaxable * 0.03078;
}
var totalTax = fedTax + fica + nyTax + nycTax;
var netAnnual = Math.max(0, gross – preTaxDeductions – totalTax);
var monthly = netAnnual / 12;
var biweekly = netAnnual / 26;
// Display Results
document.getElementById('resFedTax').innerText = '$' + fedTax.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('resFica').innerText = '$' + fica.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('resStateTax').innerText = '$' + nyTax.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('resLocalTax').innerText = isNyc ? '$' + nycTax.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}) : '$0.00';
document.getElementById('resNetAnnual').innerText = '$' + netAnnual.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('resMonthly').innerText = '$' + monthly.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('resBiWeekly').innerText = '$' + biweekly.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('resultArea').style.display = 'block';
}