Payroll Tax Calculator

ANALife Services AuthorityNational Calculator Authority›Payroll Tax Calculator

.calc-container { max-width: 640px; margin: 2rem 0; padding: 1.5rem; background: #fff; border: 1px solid #ddd; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.06); font-family: system-ui, -apple-system, sans-serif; } .calc-container h3 { font-family: Georgia, serif; font-size: 1.15rem; color: #1a1a1a; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-row { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; flex-wrap: wrap; } .calc-row label { min-width: 160px; font-size: 0.9rem; color: #333; font-weight: 500; } .calc-row input[type="number"], .calc-row select { flex: 1; min-width: 120px; max-width: 200px; padding: 0.5rem 0.6rem; border: 1px solid #ccc; border-radius: 4px; font-size: 0.9rem; font-family: system-ui, sans-serif; color: #1a1a1a; background: #fafaf8; } .calc-row input:focus, .calc-row select:focus { outline: none; border-color: var(--ac, #3d5a80); box-shadow: 0 0 0 2px rgba(26,74,138,0.12); } .calc-row .unit { font-size: 0.82rem; color: #888; min-width: 30px; } .calc-btn { display: inline-block; margin-top: 0.5rem; padding: 0.55rem 1.5rem; background: var(--ac, #3d5a80); color: #fff; border: none; border-radius: 4px; font-size: 0.9rem; font-weight: 600; cursor: pointer; font-family: system-ui, sans-serif; } .calc-btn:hover { opacity: 0.9; } .calc-result { margin-top: 1.25rem; padding: 1rem 1.25rem; background: #f0f6fc; border-left: 3px solid var(--ac, #3d5a80); border-radius: 0 6px 6px 0; display: none; } .calc-result.visible { display: block; } .calc-result-label { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; color: #666; margin-bottom: 0.25rem; } .calc-result-value { font-size: 1.6rem; font-weight: 700; color: var(--ac, #3d5a80); } .calc-result-detail { font-size: 0.85rem; color: #555; margin-top: 0.5rem; line-height: 1.5; } .calc-note { margin-top: 1rem; font-size: 0.8rem; color: #888; font-style: italic; } .calc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-top: 0.75rem; } .calc-grid-item { padding: 0.6rem 0.8rem; background: #f8f9fa; border-radius: 4px; border: 1px solid #eee; } .calc-grid-item .label { font-size: 0.75rem; color: #888; text-transform: uppercase; letter-spacing: 0.04em; } .calc-grid-item .value { font-size: 1.1rem; font-weight: 600; color: #1a1a1a; } @media (max-width: 720px) { .calc-row { flex-direction: column; align-items: flex-start; gap: 0.3rem; } .calc-row label { min-width: auto; } .calc-row input[type="number"], .calc-row select { max-width: 100%; width: 100%; } .calc-grid { grid-template-columns: 1fr; } } .calc-chart { margin: 1rem 0; text-align: center; } .calc-chart svg { max-width: 100%; height: auto; } .calc-chart-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem 1.2rem; margin-top: 0.6rem; font-size: 0.8rem; color: #555; } .calc-chart-legend span { display: inline-flex; align-items: center; gap: 0.3rem; } .calc-chart-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; font-style: normal; } .calc-related { max-width: 640px; margin: 2rem 0 1rem; padding: 1.25rem 1.5rem; background: #f8f9fa; border: 1px solid #e8e8e8; border-radius: 8px; } .calc-related h3 { font-family: Georgia, serif; font-size: 1rem; color: #1a1a1a; margin: 0 0 0.75rem; padding-bottom: 0.4rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-related-list { list-style: none; padding: 0; margin: 0 0 0.75rem; display: grid; grid-template-columns: 1fr 1fr; gap: 0.4rem 1.5rem; } .calc-related-list li a { font-size: 0.88rem; color: var(--ac, #3d5a80); text-decoration: none; } .calc-related-list li a:hover { text-decoration: underline; } .calc-browse-all { margin: 0.5rem 0 0; font-size: 0.9rem; font-weight: 600; } .calc-browse-all a { color: var(--ac, #3d5a80); text-decoration: none; } .calc-browse-all a:hover { text-decoration: underline; } @media (max-width: 720px) { .calc-related-list { grid-template-columns: 1fr; } }

Payroll Tax Calculator

Calculate employer and employee payroll taxes including federal Social Security, Medicare (FICA), Federal Unemployment (FUTA), and estimated State Unemployment (SUTA) taxes based on gross wages.

Gross Wages per Pay Period ($)

Pay Periods per Year

Weekly (52) Bi-Weekly (26) Semi-Monthly (24) Monthly (12)

Year-to-Date Gross Wages Paid So Far ($)

State Unemployment (SUTA) Rate (%)

SUTA Wage Base Limit ($)

Calculate

### Payroll Tax Breakdown

Tax Rate Employee Employer

function payCalc() { var gross = parseFloat(document.getElementById('pay-gross').value); var periods = parseInt(document.getElementById('pay-periods').value); var ytd = parseFloat(document.getElementById('pay-ytd').value) || 0; var sutaRate = parseFloat(document.getElementById('pay-suta').value) / 100; var sutaBase = parseFloat(document.getElementById('pay-suta-wage').value);

var resultDiv = document.getElementById('pay-result'); var tbody = document.getElementById('pay-table-body'); var tfoot = document.getElementById('pay-table-foot'); var summary = document.getElementById('pay-summary');

// --- Validation --- if (isNaN(gross) || gross 0.20) { resultDiv.style.display = 'block'; tbody.innerHTML = ''; tfoot.innerHTML = ''; summary.innerHTML = 'SUTA rate must be between 0% and 20%.

'; return; } if (isNaN(sutaBase) || sutaBase $200,000 (employee only) var ADD_MED_THRESH = 200000; var FUTA_RATE = 0.006; // Net FUTA rate after 5.4% FUTA credit (0.060 - 0.054) var FUTA_BASE = 7000; // FUTA wage base

var annualGross = gross * periods;

// --- Social Security (Employee & Employer) --- // Taxable SS wages for this period = wages up to SS_WAGE_BASE minus YTD already paid var ssYtdRemaining = Math.max(0, SS_WAGE_BASE - ytd); var ssTaxableNow = Math.min(gross, ssYtdRemaining); var empSS = ssTaxableNow * SS_RATE; var erSS = ssTaxableNow * SS_RATE; // Employer matches

// --- Medicare (Employee & Employer) --- // All wages subject to Medicare; Additional 0.9% on employee wages > $200,000 YTD var medTaxable = gross; var empMed = medTaxable * MEDICARE_RATE; var erMed = medTaxable * MEDICARE_RATE; // Employer does NOT pay add'l Medicare

// Additional Medicare for employee var addMedYtdRemaining = Math.max(0, ADD_MED_THRESH - ytd); var addMedTaxable = Math.max(0, gross - addMedYtdRemaining); var empAddMed = addMedTaxable * ADD_MEDICARE;

// --- FUTA (Employer only) --- var futaYtdRemaining = Math.max(0, FUTA_BASE - ytd); var futaTaxableNow = Math.min(gross, futaYtdRemaining); var erFUTA = futaTaxableNow * FUTA_RATE;

// --- SUTA (Employer only) --- var sutaYtdRemaining = Math.max(0, sutaBase - ytd); var sutaTaxableNow = Math.min(gross, sutaYtdRemaining); var erSUTA = sutaTaxableNow * sutaRate;

// --- Totals --- var totalEmployee = empSS + empMed + empAddMed; var totalEmployer = erSS + erMed + erFUTA + erSUTA; var totalCombined = totalEmployee + totalEmployer;

// --- Effective Rates --- var effEmpRate = (gross > 0) ? (totalEmployee / gross * 100) : 0; var effErRate = (gross > 0) ? (totalEmployer / gross * 100) : 0;

function fmt(n) { return '$' + n.toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g, ','); } function pct(r) { return (r * 100).toFixed(2) + '%'; }

var rows = [ ['Social Security', pct(SS_RATE), fmt(empSS), fmt(erSS)], ['Medicare', pct(MEDICARE_RATE), fmt(empMed), fmt(erMed)], ['Add'l Medicare (>$200k)', pct(ADD_MEDICARE), fmt(empAddMed),'—'], ['FUTA (net)', pct(FUTA_RATE), '—', fmt(erFUTA)], ['SUTA', pct(sutaRate), '—', fmt(erSUTA)], ];

var html = ''; rows.forEach(function(r) { html += '' + '' + r[0] + '' + '' + r[1] + '' + '' + r[2] + '' + '' + r[3] + '' + ''; }); tbody.innerHTML = html;

tfoot.innerHTML = '' + 'Total' + '' + '' + fmt(totalEmployee) + '' + '' + fmt(totalEmployer) + '' + '';

summary.innerHTML = '' + '' + 'Employee Taxes' + '' + fmt(totalEmployee) + '' + 'Eff. rate: ' + effEmpRate.toFixed(2) + '%' + '' + '' + 'Employer Taxes' + '' + fmt(totalEmployer) + '' + 'Eff. rate: ' + effErRate.toFixed(2) + '%' + '' + '' + 'Total Tax Cost' + '' + fmt(totalCombined) + '' + 'Per pay period' + '' + '' + '' + 'Annual gross wages: ' + fmt(annualGross) + '  |  YTD wages paid: ' + fmt(ytd) + '  |  SS taxable this period: ' + fmt(ssTaxableNow) + '

';

resultDiv.style.display = 'block'; }

#### Formulas Used

Employee Social Security: min(Gross, max(0, $168,600 − YTD)) × 6.2%

Employer Social Security: Same as employee (employer matches 6.2%)

Employee Medicare: Gross × 1.45%

Employer Medicare: Gross × 1.45% (employer does not pay Additional Medicare)

Additional Medicare (Employee only): max(0, Gross − max(0, $200,000 − YTD)) × 0.9%

FUTA (Employer only): min(Gross, max(0, $7,000 − YTD)) × 0.6% (net after 5.4% credit)

SUTA (Employer only): min(Gross, max(0, SUTA Base − YTD)) × SUTA Rate

Total Employee FICA: SS + Medicare + Additional Medicare

Total Employer Payroll Tax: SS + Medicare + FUTA + SUTA

#### Assumptions & References

More Calculators

Read Next

Study Time Planner Authority Network America › Life Services Authority › National Calculator Authority .calc-container { max-width: 640px;...

References