Calculate exactly what you need to charge to hit your income goals.
Your Minimum Recommended Hourly Rate:$0.00
How to Calculate Your Freelance Hourly Rate
One of the biggest mistakes new freelancers make is undercharging. To survive and thrive as a solo professional, you must account for overhead, taxes, and non-billable time. A simple "salary divided by 2,000 hours" calculation usually results in a net loss once you factor in self-employment taxes and software costs.
The Realistic Freelance Formula
Our calculator uses the "Bottom-Up" approach. We start with your goal income and add back the costs of doing business:
Desired Net Income: What you actually want to take home after taxes and expenses.
Business Overhead: Costs like health insurance, software (Adobe, Slack, Zoom), hardware, and office space.
Tax Margin: Since you are the employer, you are responsible for the full tax burden (approx. 25-35% in many regions).
Billable vs. Non-Billable Time: You cannot bill for 40 hours a week. Marketing, invoicing, and admin work take time. Most successful freelancers average 20-30 billable hours per week.
Calculation Example
If you want to earn $70,000 net, have $10,000 in expenses, and pay 25% tax, your Gross Target is approximately $106,666. If you work 48 weeks a year (4 weeks vacation) at 25 billable hours per week, you have 1,200 billable hours. $106,666 / 1,200 = $88.89 per hour.
Pro Tip: Always round up to the nearest $5 or $10 increment. If the calculator says $88.89, charge $90 or $95 to create a buffer for unexpected costs.
function calculateFreelanceRate() {
var salaryGoal = parseFloat(document.getElementById("salaryGoal").value);
var businessExpenses = parseFloat(document.getElementById("businessExpenses").value);
var hoursPerWeek = parseFloat(document.getElementById("hoursPerWeek").value);
var weeksOff = parseFloat(document.getElementById("weeksOff").value);
var taxRate = parseFloat(document.getElementById("taxRate").value);
if (isNaN(salaryGoal) || isNaN(businessExpenses) || isNaN(hoursPerWeek) || isNaN(weeksOff) || isNaN(taxRate)) {
alert("Please enter valid numbers in all fields.");
return;
}
// Calculation logic
// 1. Calculate Gross Required (Before Tax)
// Gross * (1 – TaxRate) = (Salary + Expenses)
// Gross = (Salary + Expenses) / (1 – TaxRate)
var taxDecimal = taxRate / 100;
var totalNeededBeforeTax = (salaryGoal + businessExpenses) / (1 – taxDecimal);
// 2. Calculate Total Billable Hours
var totalWeeks = 52 – weeksOff;
if (totalWeeks <= 0) {
alert("Weeks off cannot be 52 or more.");
return;
}
var totalAnnualHours = totalWeeks * hoursPerWeek;
// 3. Calculate Hourly Rate
var hourlyRate = totalNeededBeforeTax / totalAnnualHours;
// Display results
var resultDiv = document.getElementById("resultArea");
var rateDisplay = document.getElementById("hourlyRateResult");
var textDisplay = document.getElementById("breakdownText");
resultDiv.style.display = "block";
rateDisplay.innerText = "$" + hourlyRate.toFixed(2);
textDisplay.innerText = "To reach your net goal of $" + salaryGoal.toLocaleString() +
", you need to generate approximately $" + totalNeededBeforeTax.toLocaleString(undefined, {minimumFractionDigits: 0, maximumFractionDigits: 0}) +
" in gross revenue across " + totalAnnualHours + " billable hours per year.";
// Smooth scroll to result
resultDiv.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
}