Determine exactly how much you need to charge clients to sustain your lifestyle and business. Unlike a salaried employee, a freelancer must cover overhead costs, self-employment taxes, and unpaid time off. Simply dividing your previous salary by 2,080 (standard 40-hour work weeks) often leads to undercharging and financial strain.
Key Factors in Your Rate
Billable vs. Non-Billable Hours: You cannot bill for every hour you work. Administration, marketing, and accounting are unpaid tasks. If you work 40 hours a week, you might only have 25-30 billable hours.
Business Expenses: Software subscriptions, hardware upgrades, internet, and home office costs must be factored into your rate, or they come directly out of your pocket.
Taxes: As a freelancer, you are responsible for the full burden of taxes (employer and employee portions in many jurisdictions). Always overestimate your tax burden to be safe.
Time Off: You don't get paid vacation. To take 4 weeks off a year, you must earn enough in the remaining 48 weeks to cover that time.
How It Is Calculated
This calculator uses a reverse-engineering method:
First, we calculate your Total Gross Need by adding your desired net income and expenses, then adjusting for taxes.
Next, we calculate your Total Capacity by subtracting your weeks off from 52 and multiplying by your weekly billable hours.
Finally, we divide the Total Gross Need by your Total Capacity to find the minimum hourly rate required to hit your goals.
function calculateFreelanceRate() {
// 1. Get Input Values
var netIncome = parseFloat(document.getElementById('annualNetIncome').value);
var expenses = parseFloat(document.getElementById('annualExpenses').value);
var weeklyHours = parseFloat(document.getElementById('billableHours').value);
var weeksOff = parseFloat(document.getElementById('weeksOff').value);
var taxRate = parseFloat(document.getElementById('taxRate').value);
// 2. Validate Inputs
if (isNaN(netIncome) || isNaN(expenses) || isNaN(weeklyHours) || isNaN(weeksOff) || isNaN(taxRate)) {
alert("Please fill in all fields with valid numbers.");
return;
}
if (weeklyHours <= 0) {
alert("Billable hours must be greater than 0.");
return;
}
// 3. Perform Calculations
// Calculate Working Weeks
var workingWeeks = 52 – weeksOff;
if (workingWeeks <= 0) {
alert("Weeks off cannot equal or exceed 52.");
return;
}
// Calculate Total Billable Hours per Year
var totalBillableHours = weeklyHours * workingWeeks;
// Calculate Gross Revenue Needed (Accounting for Taxes)
// Formula: Net + Expenses = Gross * (1 – TaxRate)
// Therefore: Gross = (Net + Expenses) / (1 – TaxRate)
var totalCashNeeded = netIncome + expenses;
var taxFactor = 1 – (taxRate / 100);
// Avoid division by zero if tax is 100% (unlikely but possible edge case)
var grossRevenueNeeded = 0;
if (taxFactor <= 0) {
alert("Tax rate is too high to calculate a viable income.");
return;
} else {
grossRevenueNeeded = totalCashNeeded / taxFactor;
}
// Calculate Hourly Rate
var hourlyRate = grossRevenueNeeded / totalBillableHours;
// 4. Update UI
document.getElementById('hourlyRateDisplay').innerHTML = '$' + hourlyRate.toFixed(2) + ' / hour';
document.getElementById('grossRevenueDisplay').innerText = 'Gross Annual Revenue Needed: $' + Math.ceil(grossRevenueNeeded).toLocaleString();
document.getElementById('totalHoursDisplay').innerText = 'Total Billable Hours: ' + Math.floor(totalBillableHours).toLocaleString() + ' / year';
// Show Results Div
document.getElementById('fhrcResult').style.display = 'block';
}