UK National Insurance Contributions Calculator
ANA›Life Services Authority›National Calculator Authority›UK National Insurance Contributions 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; } }
UK National Insurance Contributions Calculator
Calculate your UK National Insurance Contributions (NICs) for the 2024/25 tax year based on your employment status and earnings.
Employment Type
Employee (Class 1) Self-Employed (Class 4 + Class 2) Employer (Secondary Class 1)
Annual Gross Income (£)
Employee Annual Gross Income (£) (for employer NIC calculation)
View Results As
Annual Monthly Weekly
Calculate
function ukNicUpdateFields() { var type = document.getElementById('uk-nic-employment-type').value; var empField = document.getElementById('uk-nic-employer-field'); var incomeLabel = document.querySelector('label[for="uk-nic-income"]'); if (type === 'employer') { empField.style.display = 'none'; incomeLabel.textContent = 'Employee Annual Gross Income (£)'; } else { empField.style.display = 'none'; incomeLabel.textContent = 'Annual Gross Income (£)'; } }
function ukNicCalc() { var resultDiv = document.getElementById('uk-nic-result'); resultDiv.style.display = 'none'; resultDiv.innerHTML = '';
var type = document.getElementById('uk-nic-employment-type').value; var incomeVal = document.getElementById('uk-nic-income').value.trim(); var period = document.getElementById('uk-nic-pay-period').value;
// Validate income if (incomeVal === '' || isNaN(incomeVal) || Number(incomeVal) ⚠ Please enter a valid annual gross income (0 or above).'; return; }
var income = parseFloat(incomeVal);
// 2024/25 NIC thresholds and rates // Employee (Class 1 Primary) var primaryThreshold = 12570; // Annual PT var upperEarningsLimit = 50270; // Annual UEL var employeeRateLow = 0.08; // 8% between PT and UEL (from Jan 2024) var employeeRateHigh = 0.02; // 2% above UEL
// Employer (Class 1 Secondary) var secondaryThreshold = 9100; // Annual ST var employerRate = 0.138; // 13.8% above ST
// Self-Employed Class 4 var lowerProfitsLimit = 12570; // Annual LPL var upperProfitsLimit = 50270; // Annual UPL var class4RateLow = 0.06; // 6% between LPL and UPL (from Apr 2024) var class4RateHigh = 0.02; // 2% above UPL
// Self-Employed Class 2 var smallProfitsThreshold = 12570; // SPT - if profits >= SPT, Class 2 is treated as paid via SA var class2WeeklyRate = 3.45; // £3.45/week (2024/25) var class2Annual = class2WeeklyRate * 52; // £179.40
var nic = 0; var breakdown = []; var html = '';
if (type === 'employee') { // Class 1 Primary NIC var band1 = 0, band2 = 0; if (income > primaryThreshold) { var mid = Math.min(income, upperEarningsLimit); band1 = (mid - primaryThreshold) * employeeRateLow; } if (income > upperEarningsLimit) { band2 = (income - upperEarningsLimit) * employeeRateHigh; } nic = band1 + band2;
breakdown = [ { label: 'Income below Primary Threshold (£' + primaryThreshold.toLocaleString() + ')', amount: 0, note: '0% — no NIC' }, { label: 'Income between PT and UEL (£' + primaryThreshold.toLocaleString() + ' – £' + upperEarningsLimit.toLocaleString() + ')', amount: band1, note: '8%' }, { label: 'Income above UEL (£' + upperEarningsLimit.toLocaleString() + '+)', amount: band2, note: '2%' }, ];
} else if (type === 'self-employed') { // Class 4 var c4band1 = 0, c4band2 = 0; if (income > lowerProfitsLimit) { var mid4 = Math.min(income, upperProfitsLimit); c4band1 = (mid4 - lowerProfitsLimit) * class4RateLow; } if (income > upperProfitsLimit) { c4band2 = (income - upperProfitsLimit) * class4RateHigh; } var class4Total = c4band1 + c4band2;
// Class 2 var class2Total = 0; var class2Note = ''; if (income >= smallProfitsThreshold) { class2Total = class2Annual; class2Note = '£3.45/week × 52 weeks (profits ≥ SPT of £' + smallProfitsThreshold.toLocaleString() + ')'; } else { class2Note = 'Not applicable — profits below Small Profits Threshold (£' + smallProfitsThreshold.toLocaleString() + ')'; }
nic = class4Total + class2Total;
breakdown = [ { label: 'Class 4 — Profits below LPL (£' + lowerProfitsLimit.toLocaleString() + ')', amount: 0, note: '0% — no NIC' }, { label: 'Class 4 — Profits between LPL and UPL (£' + lowerProfitsLimit.toLocaleString() + ' – £' + upperProfitsLimit.toLocaleString() + ')', amount: c4band1, note: '6%' }, { label: 'Class 4 — Profits above UPL (£' + upperProfitsLimit.toLocaleString() + '+)', amount: c4band2, note: '2%' }, { label: 'Class 2 — Flat rate', amount: class2Total, note: class2Note }, ];
} else if (type === 'employer') { // Employer Secondary Class 1 var empBand = 0; if (income > secondaryThreshold) { empBand = (income - secondaryThreshold) * employerRate; } nic = empBand;
breakdown = [ { label: 'Employee earnings below Secondary Threshold (£' + secondaryThreshold.toLocaleString() + ')', amount: 0, note: '0% — no employer NIC' }, { label: 'Employee earnings above ST (£' + secondaryThreshold.toLocaleString() + '+)', amount: empBand, note: '13.8%' }, ]; }
// Period divisor var divisor = 1, periodLabel = 'Annual'; if (period === 'monthly') { divisor = 12; periodLabel = 'Monthly'; } if (period === 'weekly') { divisor = 52; periodLabel = 'Weekly'; }
var nicPeriod = nic / divisor; var incomePeriod = income / divisor; var effectiveRate = income > 0 ? (nic / income * 100) : 0;
// Build result HTML html += '### Results (' + periodLabel + ') '; html += ''; html += ''; html += 'Band / Component'; html += 'Rate'; html += 'NIC (' + periodLabel + ')'; html += '';
for (var i = 0; i '; html += '' + row.label + ''; html += '' + row.note + ''; html += '£' + (row.amount / divisor).toFixed(2) + ''; html += ''; }
html += '';
html += ''; html += '' + periodLabel + ' Gross Income: £' + incomePeriod.toLocaleString('en-GB', {minimumFractionDigits:2, maximumFractionDigits:2}) + ''; html += 'Total NIC (' + periodLabel + '): £' + nicPeriod.toLocaleString('en-GB', {minimumFractionDigits:2, maximumFractionDigits:2}) + ''; html += 'Total NIC (Annual): £' + nic.toLocaleString('en-GB', {minimumFractionDigits:2, maximumFractionDigits:2}) + ''; html += 'Effective NIC Rate: ' + effectiveRate.toFixed(2) + '%'; html += '';
resultDiv.innerHTML = html; resultDiv.style.display = 'block'; }
#### Formulas Used (2024/25 Tax Year)
Employee (Class 1 Primary NIC):
- 0% on earnings up to the Primary Threshold (PT): £12,570/year
- 8% on earnings between PT and Upper Earnings Limit (UEL): £12,570 – £50,270/year
- 2% on earnings above UEL: £50,270+/year
Employer (Secondary Class 1 NIC):
- 0% on employee earnings up to Secondary Threshold (ST): £9,100/year
- 13.8% on employee earnings above ST: £9,100+/year
Self-Employed (Class 4 + Class 2):
- Class 4: 0% up to Lower Profits Limit (LPL) £12,570
- Class 4: 6% between LPL and Upper Profits Limit (UPL) £12,570 – £50,270
- Class 4: 2% above UPL £50,270+
- Class 2: £3.45/week (£179.40/year) if profits ≥ Small Profits Threshold (£12,570)
Effective Rate = (Total Annual NIC ÷ Annual Gross Income) × 100
#### Assumptions & References
- All thresholds and rates are based on the 2024/25 UK tax year (6 April 2024 – 5 April 2025).
- Employee Class 1 Primary NIC rate was reduced from 10% to 8% effective 6 April 2024.
- Self-Employed Class 4 NIC rate was reduced from 8% to 6% effective 6 April 2024.
- Source: GOV.UK — National Insurance rates and categories
- Source: HMRC NIC rates
More Calculators
- Humidity and Cooling Load Calculator
- Oregon Fuel Cost Comparison Calculator — compare natural gas, electric, oil, and heat pump costs using Oregon utility rates
- Ventilation Rate Calculator — calculate required fresh air exchange rates per Oregon mechanical code and ASHRAE 62.2
- Oregon Rebate Savings Estimator — estimate Energy Trust of Oregon and utility rebates for qualifying HVAC equipment upgrades
- Energy Savings Calculator (Old vs New HVAC System)
- AC Unit Size Calculator (BTU for Phoenix Climate)
Read Next
Study Time Planner ANA › Life Services Authority › National Calculator Authority › Study Time Planner .calc-container { max-width: 640px; margin:...