Washington State Paycheck Calculator

.wa-paycheck-container { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; max-width: 800px; margin: 20px auto; padding: 25px; border: 1px solid #e0e0e0; border-radius: 12px; background-color: #ffffff; color: #333; box-shadow: 0 4px 12px rgba(0,0,0,0.05); } .wa-paycheck-container h2 { color: #004d40; margin-top: 0; text-align: center; font-size: 24px; } .calc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 25px; } @media (max-width: 600px) { .calc-grid { grid-template-columns: 1fr; } } .input-group { display: flex; flex-direction: column; } .input-group label { font-weight: 600; margin-bottom: 8px; font-size: 14px; } .input-group input, .input-group select { padding: 12px; border: 1px solid #ccc; border-radius: 6px; font-size: 16px; } .calc-btn { background-color: #00796b; color: white; padding: 15px; border: none; border-radius: 6px; font-size: 18px; font-weight: bold; cursor: pointer; width: 100%; transition: background 0.3s; } .calc-btn:hover { background-color: #004d40; } .results-box { margin-top: 30px; padding: 20px; background-color: #f1f8e9; border-radius: 8px; display: none; } .result-row { display: flex; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid #dcedc8; } .result-row:last-child { border-bottom: none; font-size: 20px; font-weight: bold; color: #2e7d32; } .tax-disclaimer { font-size: 12px; color: #666; margin-top: 15px; font-style: italic; } .article-content { margin-top: 40px; line-height: 1.6; color: #444; } .article-content h3 { color: #004d40; border-left: 4px solid #00796b; padding-left: 10px; } function calculatePay() { var gross = parseFloat(document.getElementById("grossPay").value); var frequency = parseFloat(document.getElementById("payFrequency").value); var filingStatus = document.getElementById("filingStatus").value; var waCaresExempt = document.getElementById("waCaresExempt").value; if (isNaN(gross) || gross 609350) fedTaxAnnual = 183647 + (taxableIncome – 609350) * 0.37; else if (taxableIncome > 243725) fedTaxAnnual = 47747 + (taxableIncome – 243725) * 0.35; else if (taxableIncome > 191950) fedTaxAnnual = 31179 + (taxableIncome – 191950) * 0.32; else if (taxableIncome > 100525) fedTaxAnnual = 16290 + (taxableIncome – 100525) * 0.24; else if (taxableIncome > 47150) fedTaxAnnual = 5208 + (taxableIncome – 47150) * 0.22; else if (taxableIncome > 11600) fedTaxAnnual = 1160 + (taxableIncome – 11600) * 0.12; else fedTaxAnnual = taxableIncome * 0.10; } else { // Married Joint if (taxableIncome > 731200) fedTaxAnnual = 188826 + (taxableIncome – 731200) * 0.37; else if (taxableIncome > 487450) fedTaxAnnual = 103463 + (taxableIncome – 487450) * 0.35; else if (taxableIncome > 383900) fedTaxAnnual = 70367 + (taxableIncome – 383900) * 0.32; else if (taxableIncome > 201050) fedTaxAnnual = 32580 + (taxableIncome – 201050) * 0.24; else if (taxableIncome > 94300) fedTaxAnnual = 10416 + (taxableIncome – 94300) * 0.22; else if (taxableIncome > 23200) fedTaxAnnual = 2320 + (taxableIncome – 23200) * 0.12; else fedTaxAnnual = taxableIncome * 0.10; } var fedTaxPerPay = fedTaxAnnual / frequency; // FICA var socialSecurity = gross * 0.062; var medicare = gross * 0.0145; // WA State Specifics // 2024 PFML: 0.74% total, employee pays 71.43% of that = 0.528582% var waPFML = gross * 0.00528; // WA Cares: 0.58% var waCares = 0; if (waCaresExempt === "no") { waCares = gross * 0.0058; } var totalDeductions = fedTaxPerPay + socialSecurity + medicare + waPFML + waCares; var netPay = gross – totalDeductions; // Display Results document.getElementById("resGross").innerText = "$" + gross.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); document.getElementById("resFedTax").innerText = "- $" + fedTaxPerPay.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); document.getElementById("resSocial").innerText = "- $" + socialSecurity.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); document.getElementById("resMedicare").innerText = "- $" + medicare.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); document.getElementById("resPFML").innerText = "- $" + waPFML.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); document.getElementById("resWACares").innerText = "- $" + waCares.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); document.getElementById("resNet").innerText = "$" + netPay.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); document.getElementById("results").style.display = "block"; }

Leave a Comment