Payroll Tax Calculator
ANA›Life Services Authority›National 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
- Social Security wage base: $168,600 (2024, per IRS Notice 2023-75).
- Social Security rate: 6.2% each for employee and employer (IRC §3101, §3111).
- Medicare rate: 1.45% each for employee and employer (IRC §3101(b), §3111(b)).
- Additional Medicare Tax: 0.9% on employee wages exceeding $200,000 in a calendar year (IRC §3102(f)); employer does not match this tax.
- FUTA gross rate: 6.0%; net rate shown is 0.6% assuming the maximum 5.4% state unemployment credit (IRS Publication 15).
- FUTA wage base: $7,000 per employee per year (IRC §3306(b)(1)).
More Calculators
- VLSM (Variable Length Subnet Masking) Calculator
- Population Growth Rate Calculator
- Network Latency & Throughput Calculator
- OSHA Recordable Incident Rate Calculator
- Network Bandwidth Calculator
- Water Heater Recovery Time Calculator
- Chapter 13 Repayment Plan Estimator
- Pool Evaporation & Water Loss Calculator
- Pool Turnover Rate Calculator
- Pool Energy Cost Calculator
- Pool Fence Compliance Calculator
- Pressure Washer Cleaning Unit Calculator
Read Next
Study Time Planner Authority Network America › Life Services Authority › National Calculator Authority .calc-container { max-width: 640px;...