North Carolina Paycheck Calculator

North Carolina Paycheck Calculator

Calculate your 2024 take-home pay with NC flat-rate taxes

Weekly (52 periods) Bi-Weekly (26 periods) Semi-Monthly (24 periods) Monthly (12 periods)
Single Married Filing Jointly

Paycheck Breakdown (Per Period)

Gross Pay: $0.00
Federal Income Tax: -$0.00
FICA (Soc Sec + Medicare): -$0.00
NC State Tax (4.5%): -$0.00
Estimated Net Pay: $0.00

How North Carolina Payroll Taxes Work

North Carolina utilizes a flat-rate income tax system, which makes it simpler than many other states with progressive brackets. For the 2024 tax year, the state income tax rate is 4.5%. This rate applies to your North Carolina taxable income after your standard deduction.

Key Factors in Your NC Paycheck:

  • Federal Income Tax: Calculated based on the IRS progressive tax brackets (10% to 37%).
  • FICA Taxes: A combined 7.65% for Social Security (6.2% up to the wage base) and Medicare (1.45%).
  • NC Standard Deduction: For 2024, this is $12,750 for single filers and $25,500 for married couples filing jointly.
  • NC Flat Tax: Every dollar of taxable income in North Carolina is taxed at the same 4.5% rate.

Example Calculation:

If you earn $60,000 annually as a single filer in Raleigh, NC:

  1. Gross Period Pay (Bi-weekly): $2,307.69
  2. FICA Withholding: ~$176.54
  3. Federal Tax Withholding: ~$215.00 (varies by W-4)
  4. NC State Tax: ~$88.00 (4.5% after state deduction)
  5. Estimated Take-Home: ~$1,828.15

*Note: This calculator provides estimates based on standard 2024 tax tables and North Carolina flat rates. Actual withholding depends on your specific IRS Form W-4 and NC-4 selections.

function calculateNCPay() { var annualGross = parseFloat(document.getElementById('nc_gross_pay').value); var periods = parseInt(document.getElementById('nc_pay_period').value); var filingStatus = document.getElementById('nc_filing_status').value; var preTaxAnnual = parseFloat(document.getElementById('nc_pre_tax').value) || 0; if (isNaN(annualGross) || annualGross 609350) fedTaxAnnual = 162799 + (taxableFed – 609350) * 0.37; else if (taxableFed > 243725) fedTaxAnnual = 44460 + (taxableFed – 243725) * 0.35; else if (taxableFed > 191950) fedTaxAnnual = 33389 + (taxableFed – 191950) * 0.32; else if (taxableFed > 100525) fedTaxAnnual = 14310 + (taxableFed – 100525) * 0.24; else if (taxableFed > 47150) fedTaxAnnual = 5162 + (taxableFed – 47150) * 0.22; else if (taxableFed > 11600) fedTaxAnnual = 1160 + (taxableFed – 11600) * 0.12; else fedTaxAnnual = taxableFed * 0.10; } else { if (taxableFed > 731200) fedTaxAnnual = 177597 + (taxableFed – 731200) * 0.37; else if (taxableFed > 487450) fedTaxAnnual = 101252 + (taxableFed – 487450) * 0.35; else if (taxableFed > 383900) fedTaxAnnual = 73514 + (taxableFed – 383900) * 0.32; else if (taxableFed > 201050) fedTaxAnnual = 32580 + (taxableFed – 201050) * 0.24; else if (taxableFed > 94300) fedTaxAnnual = 10324 + (taxableFed – 94300) * 0.22; else if (taxableFed > 23200) fedTaxAnnual = 2320 + (taxableFed – 23200) * 0.12; else fedTaxAnnual = taxableFed * 0.10; } // NC State Tax Calculation var taxableNC = Math.max(0, annualGross – preTaxAnnual – ncStandardDeduction); var ncTaxAnnual = taxableNC * ncRate; // Period Calculations var periodGross = (annualGross / periods); var periodFed = (fedTaxAnnual / periods); var periodFica = (totalFicaAnnual / periods); var periodState = (ncTaxAnnual / periods); var periodPreTax = (preTaxAnnual / periods); var periodNet = periodGross – periodFed – periodFica – periodState – periodPreTax; // Display Results document.getElementById('nc_results_box').style.display = 'block'; document.getElementById('res_gross').innerText = '$' + periodGross.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); document.getElementById('res_fed').innerText = '-$' + periodFed.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); document.getElementById('res_fica').innerText = '-$' + periodFica.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); document.getElementById('res_state').innerText = '-$' + periodState.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); document.getElementById('res_net').innerText = '$' + periodNet.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); }

Leave a Comment