Estimate your self-employment tax and federal income tax liability.
Single
Married Filing Jointly
Net Business Profit:$0.00
Self-Employment Tax (15.3%):$0.00
Federal Income Tax:$0.00
Estimated State Tax:$0.00
Total Tax Liability:$0.00
Estimated Take-Home (Annual):$0.00
How to Calculate Freelance Taxes
Being a freelancer or independent contractor means you are both the employer and the employee. This requires paying Self-Employment (SE) Tax in addition to standard Federal and State income taxes. This calculator helps you estimate the 15.3% SE tax, which covers Social Security and Medicare.
Example Calculation:
If you earn $100,000 and have $20,000 in business expenses:
1. Net Profit: $80,000.
2. SE Taxable amount: $80,000 x 0.9235 = $73,880.
3. SE Tax (15.3%): $11,303.64.
4. Half of SE Tax is deductible from your taxable income for federal rates.
Key Tax Considerations for Freelancers
The 15.3% Rule: 12.4% goes to Social Security (up to a limit) and 2.9% goes to Medicare.
Standard Deduction: For 2024, the standard deduction is $14,600 for singles and $29,200 for married couples. This calculator applies these deductions automatically to your federal income tax estimate.
Quarterly Payments: If you expect to owe more than $1,000 in taxes, the IRS requires estimated quarterly payments (April, June, September, January).
Business Deductions: Don't forget to track home office expenses, software subscriptions, equipment, and travel to lower your net profit.
Simplified 2024 Tax Brackets Used
This calculator uses a progressive tax model based on 2024 federal brackets. It assumes the standard deduction is taken and does not account for specific credits like the Child Tax Credit or QBI deductions, providing a conservative "baseline" estimate.
function calculateFreelanceTax() {
var gross = parseFloat(document.getElementById("grossIncome").value) || 0;
var expenses = parseFloat(document.getElementById("businessExpenses").value) || 0;
var status = document.getElementById("filingStatus").value;
var stateRate = parseFloat(document.getElementById("stateTaxRate").value) || 0;
var netProfit = gross – expenses;
if (netProfit 400) {
// 12.4% SS (up to $168,600 for 2024) + 2.9% Medicare
var ssCap = 168600;
var ssTax = Math.min(taxableSE, ssCap) * 0.124;
var medicareTax = taxableSE * 0.029;
seTax = ssTax + medicareTax;
}
// 2. Federal Income Tax Calculation
// Adjustment: Subtract 50% of SE Tax from Net Profit for AGI
var agi = netProfit – (seTax / 2);
// Deductions (2024)
var deduction = (status === "single") ? 14600 : 29200;
var taxableIncome = agi – deduction;
if (taxableIncome 609350) fedTax = 183647 + (taxableIncome – 609350) * 0.37;
else if (taxableIncome > 243725) fedTax = 56079 + (taxableIncome – 243725) * 0.35;
else if (taxableIncome > 191950) fedTax = 39471 + (taxableIncome – 191950) * 0.32;
else if (taxableIncome > 100525) fedTax = 17495 + (taxableIncome – 100525) * 0.24;
else if (taxableIncome > 47150) fedTax = 5608 + (taxableIncome – 47150) * 0.22;
else if (taxableIncome > 11600) fedTax = 1160 + (taxableIncome – 11600) * 0.12;
else fedTax = taxableIncome * 0.10;
} else {
// Married Joint
if (taxableIncome > 731200) fedTax = 198252 + (taxableIncome – 731200) * 0.37;
else if (taxableIncome > 487450) fedTax = 112939 + (taxableIncome – 487450) * 0.35;
else if (taxableIncome > 383900) fedTax = 79743 + (taxableIncome – 383900) * 0.32;
else if (taxableIncome > 201050) fedTax = 35845 + (taxableIncome – 201050) * 0.24;
else if (taxableIncome > 94300) fedTax = 11216 + (taxableIncome – 94300) * 0.22;
else if (taxableIncome > 23200) fedTax = 2320 + (taxableIncome – 23200) * 0.12;
else fedTax = taxableIncome * 0.10;
}
// 3. State Tax (Flat Estimation)
var stateTax = netProfit * (stateRate / 100);
// Totals
var totalTax = seTax + fedTax + stateTax;
var takeHome = netProfit – totalTax;
// Display Results
document.getElementById("resNetProfit").innerText = "$" + netProfit.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById("resSETax").innerText = "$" + seTax.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById("resFedTax").innerText = "$" + fedTax.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById("resStateTax").innerText = "$" + stateTax.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById("resTotalTax").innerText = "$" + totalTax.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById("resTakeHome").innerText = "$" + takeHome.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById("tax-results").style.display = "block";
}