Calculate your Universal Social Charge liability based on Budget 2024 bands.
Under 70
70 or Over
No
Yes
PAYE Employee
Self-Employed
Calculation Results (2024 Rates)
Gross Income:€0.00
Applied Rate Strategy:Standard
Weekly USC:€0.00
Monthly USC:€0.00
Total Annual USC:€0.00
*Calculations include Budget 2024 rate reductions (4.5% to 4%) and band expansions.
Understanding USC Rates 2024
The Universal Social Charge (USC) is a tax payable on gross income in Ireland. Budget 2024 introduced significant changes to the bands and rates to reduce the burden on middle-income earners.
2024 Standard Rates & Bands
If your total annual income is more than €13,000, you pay USC on your full income. If it is €13,000 or less, you are exempt.
Income Band (Annual)
Rate
First €12,012
0.5%
Next €13,748 (€12,012 to €25,760)
2%
Next €44,284 (€25,760 to €70,044)
4% (Down from 4.5%)
Balance over €70,044
8%
Self-Employed Surcharge
Self-employed individuals with an income exceeding €100,000 pay an additional 3% surcharge on the excess, bringing the top rate to 11% for income over that threshold.
Reduced Rates: Individuals aged 70 or over, or those holding a full medical card, whose aggregate income is €60,000 or less, pay a maximum rate of 2% (0.5% on the first €12,012 and 2% on the balance). If income exceeds €60,000, standard rates apply to the full income.
Key Changes in Budget 2024
The 4.5% rate was reduced to 4%.
The entry point for the 4% rate was increased to €25,760 (previously €22,920), aligning with the increase in the national minimum wage.
function calculateUSC() {
// 1. Get Inputs
var incomeInput = document.getElementById("uscGrossIncome").value;
var ageCat = document.getElementById("uscAgeCategory").value;
var medicalCard = document.getElementById("uscMedicalCard").value;
var empType = document.getElementById("uscEmploymentType").value;
// 2. Validate Input
var income = parseFloat(incomeInput);
if (isNaN(income) || income < 0) {
alert("Please enter a valid gross income amount.");
return;
}
// 3. Define Constants for 2024
var EXEMPTION_THRESHOLD = 13000;
// Standard Bands 2024
var BAND1_LIMIT = 12012;
var BAND2_LIMIT = 25760; // 12012 + 13748
var BAND3_LIMIT = 70044; // 25760 + 44284
// Rates
var RATE1 = 0.005; // 0.5%
var RATE2 = 0.02; // 2%
var RATE3 = 0.04; // 4% (Budget 2024 change)
var RATE4 = 0.08; // 8%
var SURCHARGE_RATE = 0.03; // 3%
var SURCHARGE_THRESH = 100000;
// Reduced Rate Limit
var REDUCED_INCOME_LIMIT = 60000;
var totalUSC = 0;
var strategyText = "Standard Rates";
// 4. Logic Implementation
// Check Exemption
if (income <= EXEMPTION_THRESHOLD) {
totalUSC = 0;
strategyText = "Exempt (Income ≤ €13,000)";
} else {
// Check for Reduced Rates Eligibility
// (Over 70 OR Medical Card) AND Income <= 60k
var isEligibleReduced = (ageCat === "over70" || medicalCard === "yes");
if (isEligibleReduced && income BAND1_LIMIT) {
totalUSC += BAND1_LIMIT * RATE1;
// Balance @ 2%
totalUSC += (income – BAND1_LIMIT) * RATE2;
} else {
totalUSC += income * RATE1;
}
} else {
// Standard Rate Calculation
strategyText = "Standard Rates 2024″;
if (isEligibleReduced && income > REDUCED_INCOME_LIMIT) {
strategyText += " (Income > €60k, reduced rate N/A)";
}
var remainingIncome = income;
// Band 1: First 12,012
var band1Taxable = Math.min(remainingIncome, BAND1_LIMIT);
totalUSC += band1Taxable * RATE1;
remainingIncome -= band1Taxable;
// Band 2: Next 13,748 (up to 25,760)
if (remainingIncome > 0) {
var band2Width = BAND2_LIMIT – BAND1_LIMIT;
var band2Taxable = Math.min(remainingIncome, band2Width);
totalUSC += band2Taxable * RATE2;
remainingIncome -= band2Taxable;
}
// Band 3: Next 44,284 (up to 70,044)
if (remainingIncome > 0) {
var band3Width = BAND3_LIMIT – BAND2_LIMIT;
var band3Taxable = Math.min(remainingIncome, band3Width);
totalUSC += band3Taxable * RATE3;
remainingIncome -= band3Taxable;
}
// Band 4: Balance (over 70,044)
if (remainingIncome > 0) {
totalUSC += remainingIncome * RATE4;
}
}
// Self-Employed Surcharge Calculation
// Applies to income > 100,000 regardless of age (unless exempt entirely, but we are in the else block)
if (empType === "self" && income > SURCHARGE_THRESH) {
var surchargeAmount = (income – SURCHARGE_THRESH) * SURCHARGE_RATE;
totalUSC += surchargeAmount;
strategyText += " + 3% Surcharge";
}
}
// 5. Output Results
var formatter = new Intl.NumberFormat('en-IE', {
style: 'currency',
currency: 'EUR',
minimumFractionDigits: 2
});
document.getElementById("resIncome").innerText = formatter.format(income);
document.getElementById("resStrategy").innerText = strategyText;
document.getElementById("resAnnual").innerText = formatter.format(totalUSC);
document.getElementById("resMonthly").innerText = formatter.format(totalUSC / 12);
document.getElementById("resWeekly").innerText = formatter.format(totalUSC / 52);
// Show results
document.getElementById("uscResults").classList.add("visible");
}