National Insurance Class Checker (Employed vs Self-Employed)

ANALife Services AuthorityNational Calculator Authority›National Insurance Class Checker (Employed vs Self-Employed)

.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; } }

National Insurance Class Checker (Employed vs Self-Employed)

Determine which National Insurance (NI) class applies to you based on your employment status and annual earnings, and estimate your NI contributions for the 2024/25 tax year.

Employment Status

-- Select -- Employed Self-Employed Both Employed & Self-Employed Company Director Voluntary (Class 3)

Annual Earnings / Profits (£)

Annual Employment Earnings (£)

Annual Self-Employment Profits (£)

Calculate

(function() { // 2024/25 NI thresholds and rates var LEL = 6396; // Lower Earnings Limit var PT = 12570; // Primary Threshold (Class 1 employee) var ST = 12570; // Secondary Threshold (Class 1 employer) var UEL = 50270; // Upper Earnings Limit var SPT = 6725; // Small Profits Threshold (Class 2 exemption) var LPL = 12570; // Lower Profits Limit (Class 4) var UPL = 50270; // Upper Profits Limit (Class 4)

// Rates var CLASS1_EMP_MAIN = 0.08; // Employee Class 1 main rate (8% 2024/25) var CLASS1_EMP_UPPER = 0.02; // Employee Class 1 above UEL var CLASS1_ER = 0.138; // Employer Class 1 secondary rate var CLASS2_WEEKLY = 3.45; // Class 2 weekly (2024/25) var CLASS3_WEEKLY = 17.45; // Class 3 voluntary weekly var CLASS4_MAIN = 0.06; // Class 4 main rate (6% 2024/25) var CLASS4_UPPER = 0.02; // Class 4 above UPL var WEEKS = 52;

function showErr(id, msg) { var el = document.getElementById(id); if (el) el.textContent = msg; } function clearErr(id) { var el = document.getElementById(id); if (el) el.textContent = ''; }

function calcClass1(earnings) { // Employee contributions var empNI = 0; if (earnings > PT) { var main = Math.min(earnings, UEL) - PT; var upper = Math.max(earnings - UEL, 0); empNI = main * CLASS1_EMP_MAIN + upper * CLASS1_EMP_UPPER; } // Employer contributions var erNI = 0; if (earnings > ST) { erNI = (earnings - ST) * CLASS1_ER; } return { empNI: empNI, erNI: erNI }; }

function calcClass4(profits) { var ni = 0; if (profits > LPL) { var main = Math.min(profits, UPL) - LPL; var upper = Math.max(profits - UPL, 0); ni = main * CLASS4_MAIN + upper * CLASS4_UPPER; } return ni; }

function calcClass2(profits) { // Class 2 abolished from April 2024 for most; treated as £0 if profits >= SPT (credit given automatically) // Still payable voluntarily if below SPT; we show £0 for >= SPT, note for below if (profits >= SPT) return 0; return CLASS2_WEEKLY * WEEKS; // if below SPT, voluntary Class 2 to get credits }

function fmt(n) { return '£' + n.toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g, ','); }

window.natCalc = function() { var status = document.getElementById('nat-status').value;

// Toggle fields var bothFields = status === 'both'; document.getElementById('nat-earnings-field').style.display = (status === 'employed' || status === 'director' || status === 'voluntary') ? '' : 'none'; document.getElementById('nat-employed-earnings-field').style.display = bothFields ? '' : 'none'; document.getElementById('nat-se-profits-field').style.display = bothFields ? '' : 'none'; if (status === 'self-employed') { document.getElementById('nat-earnings-field').style.display = ''; document.getElementById('nat-earnings-field').querySelector('label').textContent = 'Annual Self-Employment Profits (£)'; } else if (status === 'employed' || status === 'director') { document.getElementById('nat-earnings-field').querySelector('label').textContent = 'Annual Earnings (£)'; } else if (status === 'voluntary') { document.getElementById('nat-earnings-field').style.display = 'none'; }

// Clear errors ['nat-status-err','nat-earnings-err','nat-employed-earnings-err','nat-se-profits-err'].forEach(clearErr);

var valid = true; if (!status) { showErr('nat-status-err', 'Please select an employment status.'); valid = false; }

var earnings = 0, seProfits = 0, empEarnings = 0;

if (status === 'employed' || status === 'director' || status === 'self-employed') { earnings = parseFloat(document.getElementById('nat-earnings').value); if (isNaN(earnings) || earnings 1000000) { showErr('nat-earnings-err', 'Amount seems too high. Max £1,000,000.'); valid = false; } } if (status === 'both') { empEarnings = parseFloat(document.getElementById('nat-employed-earnings').value); seProfits = parseFloat(document.getElementById('nat-se-profits').value); if (isNaN(empEarnings) || empEarnings ItemAmount'; html += 'Annual Earnings' + fmt(earnings) + ''; html += 'Employee Class 1 NI' + fmt(r.empNI) + ''; html += 'Employer Class 1 NI (info)' + fmt(r.erNI) + ''; html += 'Total Employee NI' + fmt(r.empNI) + ''; html += ''; html += 'Employer pays an additional ' + fmt(r.erNI) + ' in Class 1 secondary contributions.

';

} else if (status === 'self-employed') { var c4 = calcClass4(earnings); var c2 = calcClass2(earnings); var niClass2 = earnings ItemAmount'; html += 'Annual Profits' + fmt(earnings) + ''; html += 'Class 2 NI (2024/25: abolished for most)' + fmt(c2) + ''; html += 'Class 4 NI' + fmt(c4) + ''; html += 'Total Self-Employed NI' + fmt(c2 + c4) + ''; html += ''; if (earnings >= SPT && earnings ItemAmount'; html += 'Employment Earnings' + fmt(empEarnings) + ''; html += 'Self-Employment Profits' + fmt(seProfits) + ''; html += 'Employee Class 1 NI' + fmt(r2.empNI) + ''; html += 'Employer Class 1 NI (info)' + fmt(r2.erNI) + ''; html += 'Class 2 NI' + fmt(c2b) + ''; html += 'Class 4 NI' + fmt(c4b) + ''; html += 'Total Personal NI' + fmt(total) + ''; html += ''; html += 'If combined earnings exceed the UEL (£50,270), you may be able to defer Class 4 contributions. Contact HMRC.

';

} else if (status === 'director') { var rd = calcClass1(earnings); html += '### Result: Class 1 (Director — Annual Earnings Method) '; html += 'ItemAmount'; html += 'Annual Director Earnings' + fmt(earnings) + ''; html += 'Director Class 1 NI (employee)' + fmt(rd.empNI) + ''; html += 'Employer Class 1 NI (info)' + fmt(rd.erNI) + ''; html += 'Total Director NI' + fmt(rd.empNI) + ''; html += ''; html += 'Directors use the annual earnings period method. Dividends are not subject to NI.

';

} else if (status === 'voluntary') { var annualC3 = CLASS3_WEEKLY * WEEKS; html += '### Result: Class 3 (Voluntary) '; html += 'ItemAmount'; html += 'Class 3 Weekly Rate' + fmt(CLASS3_WEEKLY) + ''; html += 'Annual Class 3 Cost (52 weeks)' + fmt(annualC3) + ''; html += ''; html += 'Class 3 voluntary contributions help fill gaps in your NI record to qualify for State Pension. You can pay up to 6 years back.

'; }

resultEl.innerHTML = html; }; })();

#### Formulas Used (2024/25)

Class 1 (Employee): Earnings £0–£6,396 (LEL): No NI, no credits Earnings £6,396–£12,570 (PT): NI credits only, £0 due Earnings £12,570–£50,270: 8% × (earnings − £12,570) Earnings above £50,270: + 2% × (earnings − £50,270)

Class 1 (Employer / Secondary): 13.8% × (earnings − £12,570) where earnings > £12,570

Class 2 (Self-Employed): Abolished April 2024. Voluntary: £3.45/week if profits < £6,725 (SPT)

Class 4 (Self-Employed): Profits £12,570–£50,270: 6% × (profits − £12,570) Profits above £50,270: + 2% × (profits − £50,270)

Class 3 (Voluntary): £17.45/week × 52 = £907.40/year

#### Assumptions & References

More Calculators

References