Ct Paycheck Calculator

Connecticut (CT) Paycheck Calculator

Estimate your take-home pay after Federal and CT state taxes

Weekly Bi-Weekly (Every 2 weeks) Semi-Monthly (Twice a month) Monthly Annual
Single Married Filing Jointly

Estimated Pay Period Results

Gross Pay:
Federal Income Tax:
FICA (Social Security & Medicare):
Connecticut State Tax:
Pre-tax Deductions:
Estimated Take-Home Pay:

Understanding Your Connecticut Paycheck

Living and working in the Constitution State means navigating a unique graduated income tax system. This calculator helps Connecticut employees estimate their actual take-home pay after all mandatory withholdings and voluntary deductions.

How CT State Income Tax Works

Connecticut uses a graduated tax system, meaning your income is taxed at progressively higher rates as you earn more. For the 2024 tax year, Connecticut recently implemented tax cuts for middle-income earners. Rates typically range from:

  • 3.0% on the first tier of taxable income.
  • 5.0% on the second tier.
  • Up to 6.99% for the highest earners.

Key Payroll Deductions in CT

  1. FICA Taxes: This consists of Social Security (6.2%) and Medicare (1.45%) taxes which are standard across the US.
  2. Federal Income Tax: Determined by your filing status and the information provided on your Form W-4.
  3. CT Paid Family and Medical Leave (PFML): Most employees in CT contribute 0.5% of their wages to this state-mandated program (capped at the Social Security wage base).
  4. Pre-tax Deductions: Contributions to a 401(k), 403(b), or health insurance premiums that reduce your taxable income.

Example Calculation

If you earn $75,000 annually in Connecticut and file as Single with no pre-tax deductions:

  • Gross Annual: $75,000
  • Approx. Federal Tax: ~$7,900
  • FICA Taxes: ~$5,737
  • Approx. CT State Tax: ~$3,300
  • Estimated Annual Take-Home: ~$58,063
  • Bi-weekly Take-Home (26 checks): ~$2,233

Note: This calculator provides an estimate based on standard 2024 brackets and deductions. Your actual paycheck may vary based on local taxes, specific CT tax credits (like the CT EITC), or additional insurance premiums.

function calculateCTPaycheck() { var grossInput = document.getElementById("grossPay").value; var frequency = parseFloat(document.getElementById("payFrequency").value); var status = document.getElementById("filingStatus").value; var preTaxInput = document.getElementById("preTax").value; var grossPay = parseFloat(grossInput); var preTax = parseFloat(preTaxInput) || 0; if (isNaN(grossPay) || grossPay 609350) fedTax += (fedTaxable – 609350) * 0.37 + 183647; else if (fedTaxable > 243725) fedTax += (fedTaxable – 243725) * 0.35 + 55578.5; else if (fedTaxable > 191950) fedTax += (fedTaxable – 191950) * 0.32 + 39010.5; else if (fedTaxable > 100525) fedTax += (fedTaxable – 100525) * 0.24 + 17058.5; else if (fedTaxable > 47150) fedTax += (fedTaxable – 47150) * 0.22 + 5653.5; else if (fedTaxable > 11600) fedTax += (fedTaxable – 11600) * 0.12 + 1160; else fedTax += fedTaxable * 0.10; } else { // Married Filing Jointly if (fedTaxable > 731200) fedTax += (fedTaxable – 731200) * 0.37 + 177927; else if (fedTaxable > 487450) fedTax += (fedTaxable – 487450) * 0.35 + 92614.5; else if (fedTaxable > 383900) fedTax += (fedTaxable – 383900) * 0.32 + 59478.5; else if (fedTaxable > 201050) fedTax += (fedTaxable – 201050) * 0.24 + 32580; else if (fedTaxable > 94300) fedTax += (fedTaxable – 94300) * 0.22 + 11307; else if (fedTaxable > 23200) fedTax += (fedTaxable – 23200) * 0.12 + 2320; else fedTax += fedTaxable * 0.10; } // FICA (7.65% up to 168,600, then 1.45% above) var ficaTax = 0; if (annualGross > 168600) { ficaTax = (168600 * 0.062) + (annualGross * 0.0145); } else { ficaTax = annualGross * 0.0765; } // CT State Tax (Graduated 2024 Simplified) var stateTax = 0; var ctTaxable = taxableGross; // CT doesn't use fed standard deduction but has its own exemptions // Simple bracket calculation for CT if (status === "single") { if (ctTaxable > 500000) stateTax += (ctTaxable – 500000) * 0.0699 + 30100; else if (ctTaxable > 250000) stateTax += (ctTaxable – 250000) * 0.069 + 12850; else if (ctTaxable > 200000) stateTax += (ctTaxable – 200000) * 0.065 + 9600; else if (ctTaxable > 100000) stateTax += (ctTaxable – 100000) * 0.06 + 3600; else if (ctTaxable > 50000) stateTax += (ctTaxable – 50000) * 0.055 + 850; else if (ctTaxable > 10000) stateTax += (ctTaxable – 10000) * 0.05 + 300; else stateTax += ctTaxable * 0.03; } else { if (ctTaxable > 1000000) stateTax += (ctTaxable – 1000000) * 0.0699 + 60200; else if (ctTaxable > 500000) stateTax += (ctTaxable – 500000) * 0.069 + 25700; else if (ctTaxable > 400000) stateTax += (ctTaxable – 400000) * 0.065 + 19200; else if (ctTaxable > 200000) stateTax += (ctTaxable – 200000) * 0.06 + 7200; else if (ctTaxable > 100000) stateTax += (ctTaxable – 100000) * 0.055 + 1700; else if (ctTaxable > 20000) stateTax += (ctTaxable – 20000) * 0.05 + 600; else stateTax += ctTaxable * 0.03; } // CT PFML (Paid Family Leave) – 0.5% var ctPFML = Math.min(annualGross, 168600) * 0.005; stateTax += ctPFML; // Final Totals per period var periodGross = annualGross / frequency; var periodFed = fedTax / frequency; var periodFica = ficaTax / frequency; var periodState = stateTax / frequency; var periodNet = periodGross – periodFed – periodFica – periodState – (annualPreTax / frequency); // Display document.getElementById("resGross").innerText = "$" + (annualGross / frequency).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); document.getElementById("resFedTax").innerText = "- $" + periodFed.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); document.getElementById("resFica").innerText = "- $" + periodFica.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); document.getElementById("resStateTax").innerText = "- $" + periodState.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); document.getElementById("resDeductions").innerText = "- $" + (annualPreTax / frequency).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); document.getElementById("resNetPay").innerText = "$" + Math.max(0, periodNet).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); document.getElementById("resultsArea").style.display = "block"; }

Leave a Comment