Sole Proprietor / Single-Member LLC
Partnership
S-Corp / C-Corp
$
2023
2024
2025
Your Estimated Solo 401(k) Contributions
Employee Contribution (Elective Deferral):—
Employer Contribution (Profit Sharing):—
Total Maximum Contribution:—
Note: These are estimates based on IRS limits. Actual contribution amounts may vary.
Understanding Your Solo 401(k) Contribution Limits
The Solo 401(k) plan is a powerful retirement savings tool for self-employed individuals and small business owners with no full-time employees (other than themselves and a spouse). It allows you to make contributions in two capacities: as an employee and as an employer. This dual contribution feature can significantly boost your retirement savings.
Contribution Calculations Explained
The maximum amount you can contribute depends on your business structure, your net business income (or W-2 salary for S-corps), and the current IRS contribution limits.
Key Terms:
Net Business Income: For sole proprietors and partnerships, this is generally your business's gross income minus your business deductions, but *before* deducting your own self-employment tax deduction and your 401(k) contributions. For S-corps, it refers to the W-2 salary you pay yourself.
Employee Contribution (Elective Deferral): This is a contribution you make as an "employee" of your own business. For 2024, you can contribute up to 100% of your compensation, with a maximum limit of $23,000. If you are age 50 or older, you can make an additional catch-up contribution of $7,500, bringing the total employee contribution to $30,500. For 2023, the limits were $22,500 and $7,500 respectively ($30,000 total).
Employer Contribution (Profit Sharing): This is a contribution made by your business "on behalf of" you as the employee. For sole proprietors and partnerships, this is calculated as up to 25% of your net adjusted self-employment income (which is your net business income reduced by one-half of your self-employment taxes). For S-corps and C-corps, it's up to 25% of your W-2 salary.
Total Maximum Contribution: The sum of your employee and employer contributions. This total is subject to an overall IRS limit. For 2024, the overall limit is $69,000 (or $76,500 if age 50 or older), an increase from $66,000 for 2023.
Calculation Logic:
Business Type Adjustment: The calculation base differs based on business structure.
Employee Contribution Calculation:
The lesser of:
100% of your compensation (up to the IRS deferral limit for the year).
The IRS elective deferral limit for the selected year ($23,000 for 2024, $22,500 for 2023).
Add the catch-up contribution ($7,500 for 2024 and 2023) if the individual is age 50 or older (this calculator assumes under 50 for simplicity, but the limits reflect the potential).
Employer Contribution Calculation:
Sole Proprietor/Partnership:
Calculate your net adjusted self-employment income: (Net Business Income – (Net Business Income / (1 + 0.9235)) / 2)
Employer Contribution = Net Adjusted Self-Employment Income * 0.25 (or 20% of net business income before SE tax deduction for simpler approximation). This calculator uses the 20% of net adjusted SE income derived from the 25% limit.
S-Corp/C-Corp: Employer Contribution = Your W-2 Salary * 0.25
Total Contribution: Employee Contribution + Employer Contribution.
Overall Limit Check: The total contribution cannot exceed the overall IRS limit for the selected year ($69,000 for 2024, $66,000 for 2023). If the calculated total exceeds this, the total contribution is capped at the overall limit.
This calculator provides an estimate. Consult with a financial advisor or tax professional for personalized advice.
function getYearLimits(year) {
var limits = {
'2023': { employeeMax: 22500, catchUp: 7500, totalMax: 66000 },
'2024': { employeeMax: 23000, catchUp: 7500, totalMax: 69000 },
'2025': { employeeMax: 23000, catchUp: 7500, totalMax: 69000 } // Assuming 2025 limits are same as 2024 for example
};
return limits[year] || limits['2024']; // Default to 2024 if year not found
}
function formatCurrency(amount) {
if (isNaN(amount) || amount === null) return '–';
return '$' + Math.max(0, amount).toFixed(2).replace(/\d(?=(\d{3})+\.)/g, '$&,');
}
function calculateSoloKContributions() {
var netBusinessIncome = parseFloat(document.getElementById('netBusinessIncome').value);
var businessType = document.getElementById('businessType').value;
var sCorpSalaryInput = document.getElementById('s-corp-salary');
var sCorpSalary = businessType === 'corporation' ? parseFloat(sCorpSalaryInput.value) : 0;
var contributionYear = document.getElementById('contributionYear').value;
var yearLimits = getYearLimits(contributionYear);
var employeeDeferralLimit = yearLimits.employeeMax;
var catchUpContribution = yearLimits.catchUp; // Assumed age 50+ for maximum calculation
var totalContributionLimit = yearLimits.totalMax;
var employeeContribution = 0;
var employerContribution = 0;
var calculatedTotalContribution = 0;
// Basic validation
if (isNaN(netBusinessIncome) || netBusinessIncome <= 0) {
alert("Please enter a valid Net Business Income.");
return;
}
if (businessType === 'corporation' && (isNaN(sCorpSalary) || sCorpSalary netBusinessIncome * 0.20) { // Capped at ~20% of gross net income before SE tax deduction
employerContribution = netBusinessIncome * 0.20;
}
} else if (businessType === 'corporation') {
baseForEmployer = sCorpSalary;
employerContribution = baseForEmployer * 0.25; // Up to 25% of W-2 salary
}
employerContribution = Math.max(0, employerContribution); // Ensure non-negative
// Total Contribution Calculation and Limit Check
calculatedTotalContribution = employeeContribution + employerContribution;
var actualTotalContribution = Math.min(calculatedTotalContribution, totalContributionLimit);
// Adjust contributions if total exceeds overall limit
if (calculatedTotalContribution > totalContributionLimit) {
// If employer contribution is the excess, reduce it first
var excess = calculatedTotalContribution – totalContributionLimit;
if (employerContribution >= excess) {
employerContribution -= excess;
} else {
// If employer contribution isn't enough to cover the excess, zero it out and reduce employee contribution
var remainingExcess = excess – employerContribution;
employerContribution = 0;
employeeContribution -= remainingExcess;
employeeContribution = Math.max(0, employeeContribution); // Ensure employee contribution is not negative
}
actualTotalContribution = employeeContribution + employerContribution; // Recalculate total after adjustments
}
document.getElementById('employeeContribution').innerText = formatCurrency(employeeContribution);
document.getElementById('employerContribution').innerText = formatCurrency(employerContribution);
document.getElementById('totalContribution').innerText = formatCurrency(actualTotalContribution);
document.getElementById('result-section').style.display = 'block';
}
// Show/hide S-Corp salary input based on business type
var businessTypeSelect = document.getElementById('businessType');
var sCorpSalaryGroup = document.getElementById('s-corp-salary-group');
businessTypeSelect.addEventListener('change', function() {
if (this.value === 'corporation') {
sCorpSalaryGroup.style.display = 'flex';
} else {
sCorpSalaryGroup.style.display = 'none';
document.getElementById('s-corp-salary').value = "; // Clear the value
}
});
// Initial check on page load
if (businessTypeSelect.value === 'corporation') {
sCorpSalaryGroup.style.display = 'flex';
} else {
sCorpSalaryGroup.style.display = 'none';
}