How to Calculate Your Freelance Hourly Rate

.freelance-calc-container { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; max-width: 800px; margin: 20px auto; padding: 25px; border: 1px solid #e1e4e8; border-radius: 12px; background-color: #ffffff; box-shadow: 0 4px 6px rgba(0,0,0,0.05); color: #333; } .freelance-calc-container h2 { color: #2c3e50; text-align: center; margin-bottom: 25px; font-size: 28px; } .calc-section { margin-bottom: 20px; padding: 15px; background: #f8f9fa; border-radius: 8px; } .calc-section-title { font-weight: 700; margin-bottom: 15px; color: #2980b9; border-bottom: 2px solid #d4e6f1; display: block; padding-bottom: 5px; } .input-group { display: flex; flex-wrap: wrap; gap: 15px; margin-bottom: 10px; } .input-field { flex: 1; min-width: 200px; display: flex; flex-direction: column; } .input-field label { font-size: 14px; font-weight: 600; margin-bottom: 5px; color: #444; } .input-field input { padding: 10px; border: 1px solid #ccc; border-radius: 5px; font-size: 16px; } .calc-btn { width: 100%; padding: 15px; background-color: #27ae60; color: white; border: none; border-radius: 6px; font-size: 18px; font-weight: bold; cursor: pointer; margin-top: 20px; transition: background-color 0.3s; } .calc-btn:hover { background-color: #219150; } .result-box { margin-top: 25px; padding: 20px; background-color: #e8f4fd; border-left: 5px solid #3498db; border-radius: 4px; display: none; } .result-box h3 { margin-top: 0; color: #2c3e50; } .result-value { font-size: 32px; font-weight: 800; color: #2c3e50; } .breakdown-item { margin: 5px 0; font-size: 15px; } .article-content { margin-top: 40px; line-height: 1.6; color: #444; } .article-content h3 { color: #2c3e50; margin-top: 30px; }

Freelance Hourly Rate Calculator

Income & Expenses (Annual)
Time & Availability
Billable Efficiency
How much time is actually spent on client work vs admin/marketing?

Your Recommended Hourly Rate:


How to Calculate Your Freelance Hourly Rate

Transitioning from a salaried position to freelancing requires a fundamental shift in how you view your income. You are no longer just an employee; you are a business. This means your hourly rate must cover not only your salary but also your overhead, taxes, and non-billable time.

The calculation is based on four critical pillars:

  • The Gross Income Goal: This is your desired take-home pay adjusted for the reality of self-employment taxes.
  • Business Overhead: Software subscriptions, hardware, health insurance, and office space must be accounted for.
  • Total Workable Time: You cannot work 365 days a year. You must subtract weekends, holidays, and vacation time.
  • Utilization Rate: This is the most overlooked factor. Freelancers spend significant time on "unpaid" tasks like invoicing, prospecting, and learning. Most freelancers are only "billable" 50% to 70% of their working time.

The Mathematical Formula

The logic used in the calculator above follows this path:

1. Calculate Total Required Revenue:
Total Revenue = (Net Salary / (1 - Tax Rate)) + Business Expenses

2. Calculate Billable Hours:
Working Weeks = 52 - Vacation Weeks - (Holidays / 5)
Annual Billable Hours = Working Weeks × Hours Per Week × Utilization %

3. Final Hourly Rate:
Hourly Rate = Total Revenue / Annual Billable Hours

Example Calculation

Imagine you want to earn a net of $70,000. You have $10,000 in expenses and pay 25% in taxes. Your total revenue goal is roughly $103,333. If you take 4 weeks off and have 10 holidays, you have 46 working weeks. At 40 hours a week and a 60% billable rate, you have 1,104 billable hours. Your rate would be approximately $94 per hour.

Why You Should Charge More Than You Think

Many new freelancers simply divide their previous salary by 2,080 hours (the standard full-time work year). This is a mistake. As a freelancer, you don't get paid for sick days, you don't have a company-matched 401k, and you have to pay the "employer half" of social security and medicare taxes. Always aim for a rate that feels slightly uncomfortable—it usually means you've finally priced in the true cost of doing business.

function calculateFreelanceRate() { var netIncome = parseFloat(document.getElementById('desiredNetIncome').value); var expenses = parseFloat(document.getElementById('businessExpenses').value); var taxRate = parseFloat(document.getElementById('taxRate').value) / 100; var vacationWeeks = parseFloat(document.getElementById('vacationWeeks').value); var sickHolidays = parseFloat(document.getElementById('sickHolidays').value); var hoursPerWeek = parseFloat(document.getElementById('hoursPerWeek').value); var utilization = parseFloat(document.getElementById('utilizationRate').value) / 100; if (isNaN(netIncome) || isNaN(expenses) || isNaN(taxRate) || isNaN(vacationWeeks) || isNaN(sickHolidays) || isNaN(hoursPerWeek) || isNaN(utilization)) { alert("Please enter valid numbers in all fields."); return; } // Step 1: Calculate Gross Revenue Needed (pre-tax + expenses) // Formula: (Net Income / (1 – taxRate)) + Expenses var grossIncomeNeeded = (netIncome / (1 – taxRate)) + expenses; // Step 2: Calculate Total Workable Weeks // Average 5 days per work week for holiday deduction var workWeeks = 52 – vacationWeeks – (sickHolidays / 5); // Step 3: Calculate Annual Billable Hours var totalAnnualHours = workWeeks * hoursPerWeek; var billableHours = totalAnnualHours * utilization; // Step 4: Hourly Rate var hourlyRate = grossIncomeNeeded / billableHours; // Safety check for infinity/division by zero if (billableHours <= 0) { alert("Your billable hours are zero or negative. Please adjust your time off or working hours."); return; } // Display Results var resultDiv = document.getElementById('resultDisplay'); var rateDiv = document.getElementById('finalRate'); var grossDiv = document.getElementById('breakdownGross'); var hoursDiv = document.getElementById('breakdownHours'); resultDiv.style.display = "block"; rateDiv.innerHTML = "$" + hourlyRate.toFixed(2) + " / hour"; grossDiv.innerHTML = "Required Annual Revenue: $" + grossIncomeNeeded.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}) + " (to cover taxes and expenses)"; hoursDiv.innerHTML = "Billable Hours Per Year: " + Math.round(billableHours) + " hours (at " + (utilization * 100).toFixed(0) + "% utilization)"; // Scroll to result resultDiv.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); }

Leave a Comment