Calculate the hourly rate you need to charge to meet your annual income goals.
Take-home pay you want after expenses and taxes.
Software, hardware, insurance, coworking, etc.
Income tax + self-employment tax.
Vacation, sick days, and holidays.
Hours actually charged to clients (exclude admin tasks).
Your Target Pricing
Minimum Hourly Rate:$0.00
Gross Annual Revenue Needed:$0.00
Total Billable Hours / Year:0
Estimated Taxes:$0.00
Please enter valid values for all fields.
How to Calculate Your Freelance Hourly Rate
Determining the right hourly rate is one of the biggest challenges for freelancers, consultants, and independent contractors. Unlike a traditional salary, your freelance rate must cover not just your desired take-home pay, but also your business overhead, taxes, and unpaid time spent on administrative tasks.
The Formula: Why You Can't Just Divide by 2,080
A standard full-time employee works approximately 2,080 hours a year (40 hours x 52 weeks). However, as a freelancer, you cannot bill for every hour you work. You need to account for:
Non-Billable Work: Marketing, invoicing, answering emails, and professional development often take up 25-40% of your time.
Time Off: You don't get paid vacation or sick leave. You must build these costs into your rate.
Self-Employment Taxes: You are responsible for both the employer and employee portion of taxes, which can significantly reduce your net income.
Step-by-Step Calculation Logic
Our calculator uses a reverse-engineering approach to find your minimum viable rate:
Determine Total Cash Needs: We add your Target Net Income to your Annual Expenses.
Adjust for Taxes: We calculate the Gross Revenue needed to ensure you have enough left after the government takes its share. The formula is: Gross Revenue = (Net Income + Expenses) / (1 - TaxRate).
Calculate Billable Capacity: We calculate your actual working weeks (52 minus vacation/sick weeks) and multiply by your daily billable hours.
Find the Rate: Finally, we divide your Gross Revenue Requirement by your Total Billable Hours.
Example Scenario
If you want to take home $75,000, have $5,000 in expenses, pay 25% in taxes, and take 4 weeks off:
You need to generate roughly $106,666 in gross revenue.
If you bill 5 hours a day for 5 days a week, you have 1,200 billable hours per year.
Your minimum rate would be approx $89/hour.
Use this tool to experiment with different scenarios. Often, simply increasing your billable efficiency or reducing expenses can have a drastic effect on the rate you need to charge.
function calculateFreelanceRate() {
// Get inputs
var netIncome = document.getElementById('desiredNetIncome').value;
var expenses = document.getElementById('annualExpenses').value;
var taxRate = document.getElementById('taxRate').value;
var weeksOff = document.getElementById('weeksOff').value;
var billableHours = document.getElementById('billableHoursPerDay').value;
var daysPerWeek = document.getElementById('daysPerWeek').value;
// Elements for display
var resultDiv = document.getElementById('results');
var errorMsg = document.getElementById('errorMsg');
// Validation
if (netIncome === "" || expenses === "" || taxRate === "" || weeksOff === "" || billableHours === "" || daysPerWeek === "") {
errorMsg.style.display = 'block';
resultDiv.style.display = 'none';
return;
}
// Parse numbers
var netIncomeNum = parseFloat(netIncome);
var expensesNum = parseFloat(expenses);
var taxRateNum = parseFloat(taxRate);
var weeksOffNum = parseFloat(weeksOff);
var billableHoursNum = parseFloat(billableHours);
var daysPerWeekNum = parseFloat(daysPerWeek);
// Logic Check for realistic numbers
if (weeksOffNum > 52 || daysPerWeekNum > 7 || taxRateNum >= 100) {
errorMsg.innerText = "Please check your inputs for realistic values (e.g., weeks off < 52).";
errorMsg.style.display = 'block';
resultDiv.style.display = 'none';
return;
}
errorMsg.style.display = 'none';
// 1. Calculate Available Working Weeks
var workingWeeks = 52 – weeksOffNum;
// 2. Calculate Total Billable Hours per Year
var totalBillableHours = workingWeeks * daysPerWeekNum * billableHoursNum;
if (totalBillableHours This is simple approximation
// Better Logic: We need (Net + Expenses) to be the "After Tax" amount?
// Usually Expenses are tax deductible. Let's assume input is "Business Expenses" which reduce taxable income.
// Simplified Freelance Logic:
// Gross Revenue = (Net Income) / (1 – TaxRate) + Expenses?
// No, Expenses are paid pre-tax usually.
// Let's use: Revenue – Expenses = Taxable Income.
// Taxable Income * (1 – TaxRate) = Net Income.
// So: (Revenue – Expenses) = Net Income / (1 – TaxRate/100)
// Revenue = [Net Income / (1 – TaxRate/100)] + Expenses
var decimalTax = taxRateNum / 100;
var revenueNeeded = (netIncomeNum / (1 – decimalTax)) + expensesNum;
// Wait, this assumes expenses are not taxed. Correct.
// But taxes are calculated on (Revenue – Expenses).
// So Tax Amount = (Revenue – Expenses) * TaxRate.
// Net = Revenue – Expenses – Tax Amount.
// 4. Calculate Hourly Rate
var hourlyRate = revenueNeeded / totalBillableHours;
// 5. Calculate Estimated Tax Amount for display
var taxableIncome = revenueNeeded – expensesNum;
var taxAmount = taxableIncome * decimalTax;
// Update UI
document.getElementById('hourlyRateDisplay').innerText = "$" + hourlyRate.toFixed(2);
document.getElementById('grossRevenueDisplay').innerText = "$" + revenueNeeded.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('totalHoursDisplay').innerText = totalBillableHours.toLocaleString();
document.getElementById('taxAmountDisplay').innerText = "$" + taxAmount.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
resultDiv.style.display = 'block';
}