Calculate your maximum allowable contributions to an Individual 401(k) for the current year.
Employee (Elective Deferral)
Employer (Profit Sharing)
Total (Employee + Employer)
Traditional (No Catch-Up)
Traditional (With Catch-Up – Age 50+)
Roth (No Catch-Up)
Roth (With Catch-Up – Age 50+)
Your Maximum Contribution:
—
Understanding Your Individual 401(k) Contributions
The Individual 401(k), also known as a Solo 401(k), is a powerful retirement savings tool for self-employed individuals and small business owners with no full-time employees other than themselves and their spouse. It allows for significant contributions as both an "employee" and an "employer".
Contribution Limits Explained (2024 example, these may vary by year)
The total contribution is generally limited by IRS regulations, which include a base annual limit and specific percentages of your compensation.
1. Employee Contribution (Elective Deferral):
You can contribute up to 100% of your compensation, up to the annual employee limit ($23,000 for 2024).
If you are age 50 or older, you can make an additional "catch-up" contribution ($7,500 for 2024), bringing the total employee limit to $30,500.
This contribution can be made on a pre-tax (traditional) or after-tax (Roth) basis.
2. Employer Contribution (Profit Sharing):
As the "employer," you can contribute up to 25% of your net adjusted self-employment income.
For a Sole Proprietor or Partner, your "net adjusted self-employment income" is your net earnings from self-employment minus one-half of your self-employment taxes. This effectively results in a contribution of approximately 20% of your gross self-employment income.
Total Contribution Limit:
The total contribution (employee + employer) cannot exceed the overall annual limit ($69,000 for 2024, or $76,500 if including catch-up contributions).
How the Calculator Works:
This calculator uses the IRS guidelines to estimate your maximum contributions. It first calculates your net adjusted self-employment income, then applies the employee and employer contribution rules based on your selections.
Key Formulas Used:
Net Earnings from Self-Employment: Gross Earned Income – (Gross Earned Income * 0.9235) * 0.5 (Approx. calculation for self-employment tax deduction)
Employer Contribution Limit: Net Earnings from Self-Employment * 0.25
Employee Contribution Limit (No Catch-up): Lesser of ($23,000 for 2024) or 100% of Earned Income.
Employee Contribution Limit (With Catch-up): Lesser of ($23,000 + $7,500 = $30,500 for 2024) or 100% of Earned Income.
Important Note: The employer contribution is calculated on your net adjusted self-employment income, which is your earned income reduced by the deduction for one-half of your self-employment taxes. A simplified common approximation for this is that the employer contribution is about 20% of your gross earned income. The calculator aims for precision by calculating the deduction for SE tax.
Retirement Savings Goals: Maximizing savings for the future.
Disclaimer: Contribution limits and rules can change annually. This calculator provides an estimate based on current (2024) general guidelines. Consult with a qualified financial advisor or tax professional for personalized advice.
var employeeLimit = 23000; // For 2024
var catchUpContribution = 7500; // For 2024
var totalMaxContribution = 69000; // For 2024
var totalMaxContributionWithCatchup = 76500; // For 2024
function calculate401k() {
var earnedIncome = parseFloat(document.getElementById("earnedIncome").value);
var age = parseInt(document.getElementById("age").value);
var contributionType = document.getElementById("contributionType").value;
var planType = document.getElementById("planType").value;
var resultElement = document.getElementById("contributionResult");
resultElement.textContent = "–"; // Clear previous result
if (isNaN(earnedIncome) || earnedIncome < 0) {
resultElement.textContent = "Please enter a valid earned income.";
return;
}
if (isNaN(age) || age = 50) {
currentEmployeeLimit += catchUpContribution;
allowsCatchUp = true;
}
// Employee contribution cannot exceed earned income
var actualEmployeeContribution = Math.min(currentEmployeeLimit, earnedIncome);
// Calculate total potential contributions
var totalPossibleContribution = actualEmployeeContribution + maxEmployerContribution;
// Check against overall limits
var overallMax = totalMaxContribution;
if (allowsCatchUp) {
overallMax = totalMaxContributionWithCatchup;
}
// Cap the total contribution if it exceeds the overall limit
if (totalPossibleContribution > overallMax) {
totalPossibleContribution = overallMax;
}
// Adjust if employee contribution alone exceeds earned income
if (actualEmployeeContribution > earnedIncome) {
actualEmployeeContribution = earnedIncome;
}
// Final calculation based on user selection
var finalContribution = 0;
var isRoth = planType.includes("roth");
var isCatchupSelected = planType.includes("catchup");
if (isCatchupSelected && age = 50) {
finalContribution = Math.min(earnedIncome, employeeLimit + catchUpContribution);
}
} else {
finalContribution = Math.min(earnedIncome, (age >= 50 ? employeeLimit + catchUpContribution : employeeLimit));
}
} else if (contributionType === "employer") {
finalContribution = maxEmployerContribution;
} else { // total
// For "Total", we need to consider both limits.
// The employee contribution is capped at the elective deferral limit (or with catch-up).
// The employer contribution is capped at ~20% of net adjusted SE income.
// The sum is capped by the overall limit.
var calculatedEmployee = Math.min(earnedIncome, (age >= 50 ? employeeLimit + catchUpContribution : employeeLimit));
var calculatedEmployer = maxEmployerContribution;
var tentativeTotal = calculatedEmployee + calculatedEmployer;
if (tentativeTotal > overallMax) {
// If the sum exceeds the overall limit, we need to prorate or adjust.
// A common approach is to ensure employee limit is met first if possible, then employer.
// However, the IRS rules are complex. For this calculator, we'll cap the *total* calculated amount.
// Ensure employee contribution doesn't exceed earned income directly.
if (calculatedEmployee > earnedIncome) {
calculatedEmployee = earnedIncome;
calculatedEmployer = 0; // Cannot contribute employer if employee already took all income
}
tentativeTotal = calculatedEmployee + calculatedEmployer;
if (tentativeTotal > overallMax) {
finalContribution = overallMax;
// This simplification might not perfectly reflect complex prorations,
// but ensures the total doesn't exceed the limit.
} else {
finalContribution = tentativeTotal;
}
} else {
finalContribution = tentativeTotal;
}
}
// Ensure no contribution exceeds earned income if it's the ultimate constraint
if (finalContribution > earnedIncome) {
finalContribution = earnedIncome;
}
resultElement.textContent = "$" + finalContribution.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 });
}
// Initial calculation on page load if fields are pre-filled
document.addEventListener('DOMContentLoaded', function() {
calculate401k();
});