Seattle Tax Rate Calculator

Freelance Hourly Rate Calculator

Your Recommended Rates:

Hourly Rate: $0.00
Day Rate (8 hours): $0.00
To achieve a net salary of after taxes and expenses, you need to bill a total gross of annually.

How to Calculate Your Ideal Freelance Hourly Rate

Transitioning from a full-time employee to a freelancer requires a fundamental shift in how you view your income. You are no longer just an "employee" of your own brand; you are the business. This means you must account for overhead, taxes, and non-billable time.

1. The Desired Salary (Net)

This is the amount of money you want to take home for personal use after all business expenses and taxes have been paid. For example, if you earned $70,000 at a corporate job, you might aim for the same as a baseline for your freelance career.

2. Accounting for Business Expenses

Freelancers face costs that employees do not. These include software subscriptions (Adobe Creative Cloud, Zoom, Slack), hardware, office space, marketing, insurance, and professional services like accounting. Total these annually to ensure they are covered by your clients, not your personal pocket.

3. The Reality of Billable vs. Non-Billable Hours

A common mistake is assuming a 40-hour work week. In reality, freelancers spend significant time on "non-billable" tasks: lead generation, invoicing, self-promotion, and administrative work. Most successful freelancers find that 20 to 25 hours per week of actual billable client work is a sustainable target.

4. The "Tax Man" Factor

As a freelancer, you are responsible for both the employer and employee portions of social security and Medicare, plus federal and state income taxes. Depending on your location, setting aside 25-35% of your gross income for taxes is a standard recommendation.

The Calculation Formula

Total Gross Needed = (Salary + Expenses) / (1 – Tax Rate Percentage)
Total Billable Hours = (52 – Vacation Weeks) * Weekly Billable Hours
Hourly Rate = Total Gross Needed / Total Billable Hours

Example Scenario

  • Target Take-Home: $80,000
  • Annual Expenses: $10,000
  • Tax Rate: 25%
  • Vacation: 4 weeks
  • Hours/Week: 25 hours

In this scenario, you would need a gross income of $120,000 to meet your goals. With 1,200 billable hours per year, your minimum hourly rate should be $100.00/hour.

function calculateFreelanceRate() { var desiredSalary = parseFloat(document.getElementById("desiredSalary").value); var businessExpenses = parseFloat(document.getElementById("businessExpenses").value); var billableHours = parseFloat(document.getElementById("billableHours").value); var vacationWeeks = parseFloat(document.getElementById("vacationWeeks").value); var taxRate = parseFloat(document.getElementById("taxRate").value) / 100; if (isNaN(desiredSalary) || isNaN(businessExpenses) || isNaN(billableHours) || isNaN(vacationWeeks) || isNaN(taxRate)) { alert("Please enter valid numbers in all fields."); return; } if (taxRate >= 1) { alert("Tax rate must be less than 100%"); return; } // Step 1: Calculate total gross income needed to hit the net salary after taxes and covering expenses // Formula: (Net Salary + Expenses) / (1 – TaxRate) var totalGrossNeeded = (desiredSalary + businessExpenses) / (1 – taxRate); // Step 2: Calculate total billable hours in a year var weeksInYear = 52; var workingWeeks = weeksInYear – vacationWeeks; var totalYearlyHours = workingWeeks * billableHours; if (totalYearlyHours <= 0) { alert("Billable hours and working weeks must be greater than zero."); return; } // Step 3: Calculate the hourly rate var hourlyRate = totalGrossNeeded / totalYearlyHours; var dayRate = hourlyRate * 8; // Display results document.getElementById("hourlyOutput").innerHTML = "$" + hourlyRate.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); document.getElementById("dayRateOutput").innerHTML = "$" + dayRate.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); document.getElementById("grossNeededOutput").innerHTML = "$" + totalGrossNeeded.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); document.getElementById("netSalaryText").innerHTML = "$" + desiredSalary.toLocaleString(); document.getElementById("rateResult").style.display = "block"; // Smooth scroll to result document.getElementById("rateResult").scrollIntoView({ behavior: 'smooth', block: 'nearest' }); }

Leave a Comment