Wa State Paycheck Calculator

Washington State Paycheck Calculator

Calculate your 2024 take-home pay including WA PFML and WA Cares Fund

Weekly Bi-weekly (Every 2 weeks) Semi-monthly (Twice a month) Monthly Annually
Single Married Filing Jointly Head of Household
(401k, Health Insurance, etc.)

Calculation Summary (Per Pay Period)

Gross Pay:
Federal Income Tax:
FICA (Social Security & Medicare):
WA Paid Family & Medical Leave (PFML):
WA Cares Fund Premium:
Take-Home Pay:

Understanding Washington State Payroll Taxes

Washington is one of the few states in the U.S. that does not have a state personal income tax. While this means your take-home pay is generally higher than in neighboring states like Oregon, Washington employees are still subject to several specific state-mandated payroll deductions.

1. WA Paid Family & Medical Leave (PFML)

For 2024, the total premium rate for Paid Family and Medical Leave is 0.74% of your gross wages. This cost is shared between employers and employees. The employee portion is approximately 0.528% of gross wages, capped at the Social Security wage base ($168,600 for 2024).

2. WA Cares Fund

The WA Cares Fund is a long-term care insurance benefit for Washingtonians. Unless you have an approved exemption, your employer must withhold 0.58% of your total gross wages. Unlike Social Security, there is currently no wage cap on the WA Cares Fund premium.

3. Federal Obligations

Even though there is no state income tax, you are still responsible for:

  • Social Security: 6.2% on wages up to $168,600.
  • Medicare: 1.45% on all wages (plus 0.9% additional for high earners).
  • Federal Income Tax: Based on your IRS W-4 filing status and tax brackets.

Example Calculation

If you earn $5,000 per month as a single filer in WA:

  • Gross Pay: $5,000.00
  • Estimated Fed Income Tax: ~$540.00
  • FICA (7.65%): $382.50
  • WA PFML (0.528%): $26.40
  • WA Cares (0.58%): $29.00
  • Estimated Net Pay: ~$4,022.10
function calculateWAPaycheck() { var grossInput = parseFloat(document.getElementById('wa_gross_pay').value); var frequency = parseInt(document.getElementById('wa_pay_frequency').value); var filingStatus = document.getElementById('wa_filing_status').value; var pretax = parseFloat(document.getElementById('wa_pretax').value) || 0; if (isNaN(grossInput) || grossInput <= 0) { alert("Please enter a valid gross pay amount."); return; } // Convert to Annual for calculations var annualGross = (frequency === 1) ? grossInput : grossInput * frequency; var taxableGross = annualGross – (pretax * (frequency === 1 ? 1 : frequency)); // 2024 Standard Deductions var standardDeduction = 14600; if (filingStatus === 'married') standardDeduction = 29200; if (filingStatus === 'head') standardDeduction = 21900; var federalTaxable = Math.max(0, taxableGross – standardDeduction); // Simple 2024 Federal Tax Brackets (Simplified lookup) var fedTax = 0; var brackets = []; if (filingStatus === 'married') { brackets = [ { cap: 23200, rate: 0.10 }, { cap: 94300, rate: 0.12 }, { cap: 201050, rate: 0.22 }, { cap: 383900, rate: 0.24 }, { cap: 487450, rate: 0.32 }, { cap: 731200, rate: 0.35 }, { cap: Infinity, rate: 0.37 } ]; } else { brackets = [ { cap: 11600, rate: 0.10 }, { cap: 47150, rate: 0.12 }, { cap: 100525, rate: 0.22 }, { cap: 191950, rate: 0.24 }, { cap: 243725, rate: 0.32 }, { cap: 609350, rate: 0.35 }, { cap: Infinity, rate: 0.37 } ]; } var remainingTaxable = federalTaxable; var prevCap = 0; for (var i = 0; i prevCap) { var chunk = Math.min(federalTaxable, brackets[i].cap) – prevCap; fedTax += chunk * brackets[i].rate; prevCap = brackets[i].cap; } } // Social Security (6.2% up to 168600) var ssTax = Math.min(annualGross, 168600) * 0.062; // Medicare (1.45%) var medTax = annualGross * 0.0145; // Washington State Specifics // WA PFML (approx 0.528582% employee share) var waPFML = Math.min(annualGross, 168600) * 0.00528582; // WA Cares (0.58% – no cap) var waCares = annualGross * 0.0058; // Period specific totals var divisor = (frequency === 1) ? 1 : frequency; var periodGross = annualGross / divisor; var periodPretax = pretax; // already per period based on UI logic if (frequency === 1) periodPretax = pretax; // treat as annual if freq is annual var periodFedTax = fedTax / divisor; var periodFica = (ssTax + medTax) / divisor; var periodPFML = waPFML / divisor; var periodCares = waCares / divisor; var netPay = (periodGross – periodPretax) – periodFedTax – periodFica – periodPFML – periodCares; // Display Results document.getElementById('res_gross').innerText = "$" + (periodGross).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); document.getElementById('res_fed_tax').innerText = "-$" + (periodFedTax).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); document.getElementById('res_fica').innerText = "-$" + (periodFica).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); document.getElementById('res_pfml').innerText = "-$" + (periodPFML).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); document.getElementById('res_wa_cares').innerText = "-$" + (periodCares).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); document.getElementById('res_net_pay').innerText = "$" + (Math.max(0, netPay)).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); document.getElementById('wa_results').style.display = 'block'; }

Leave a Comment