Carmax Car Payment Calculator

Freelance Hourly Rate Calculator

Calculate exactly what you need to charge to hit your income goals.

Include taxes, software, health insurance.
Exclude admin, marketing, and breaks.
Your Required Hourly Rate:
$0.00

How to Calculate Your Freelance Hourly Rate

Setting the right freelance rate is the difference between running a sustainable business and burning out. Many new freelancers make the mistake of simply doubling their previous employee salary, but this ignores the "hidden" costs of self-employment.

The Reality of Billable vs. Non-Billable Hours

In a standard 40-hour work week, you are rarely working for clients for the full 40 hours. Freelancers must account for:

  • Administrative Tasks: Invoicing, bookkeeping, and contract management.
  • Marketing & Sales: Networking, pitching clients, and updating your portfolio.
  • Professional Development: Learning new skills and maintaining certifications.

Most successful freelancers find their "billable" hours range between 20 to 30 hours per week.

Factoring in Business Expenses

As a freelancer, you are your own employer. You must cover costs that companies usually handle, such as:

  • Self-Employment Tax: You are responsible for both the employer and employee portions of social security and medicare.
  • Health Insurance: Private plans can be a significant monthly expense.
  • Software & Hardware: Subscriptions like Adobe Creative Cloud, Slack, Zoom, and laptop upgrades.
  • Retirement Savings: Don't forget to contribute to your Solo 401k or SEP IRA.

Example Calculation

If you want to take home $80,000 a year, have $20,000 in annual expenses (including taxes), work 25 billable hours per week, and take 4 weeks off per year:

  1. Total Revenue Needed: $80,000 + $20,000 = $100,000.
  2. Weeks Worked: 52 – 4 = 48 weeks.
  3. Total Billable Hours: 48 weeks × 25 hours = 1,200 hours.
  4. Hourly Rate: $100,000 / 1,200 hours = $83.33 per hour.
function calculateFreelanceRate() { var targetIncome = parseFloat(document.getElementById('targetIncome').value); var annualExpenses = parseFloat(document.getElementById('annualExpenses').value); var billableHours = parseFloat(document.getElementById('billableHours').value); var vacationWeeks = parseFloat(document.getElementById('vacationWeeks').value); var resultBox = document.getElementById('freelance-result-box'); var hourlyResult = document.getElementById('hourlyResult'); var breakdownText = document.getElementById('breakdownText'); if (isNaN(targetIncome) || isNaN(annualExpenses) || isNaN(billableHours) || isNaN(vacationWeeks)) { alert("Please enter valid numbers in all fields."); return; } if (vacationWeeks >= 52) { alert("Vacation weeks must be less than 52."); return; } if (billableHours <= 0) { alert("Billable hours must be greater than 0."); return; } var totalRevenueNeeded = targetIncome + annualExpenses; var workingWeeks = 52 – vacationWeeks; var totalYearlyHours = billableHours * workingWeeks; var rate = totalRevenueNeeded / totalYearlyHours; hourlyResult.innerText = "$" + rate.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); breakdownText.innerHTML = "To reach your goal, you need to generate $" + totalRevenueNeeded.toLocaleString() + " in gross revenue annually across " + totalYearlyHours + " billable hours."; resultBox.style.display = 'block'; resultBox.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); }

Leave a Comment