GigAnalytics
·8 min read·ROIPricingFreelanceCalculator

How to Calculate Your True Hourly Rate as a Freelancer (The Real Formula)

If you bill $75 per hour, that's not your hourly rate. It's your invoice rate. Your true hourly rate — what you actually earn per hour of life you spend on a client — is almost always lower. Sometimes dramatically so.

The Standard Formula (And Why It's Wrong)

Most freelancers calculate hourly rate like this:

Hourly Rate = Revenue ÷ Billable Hours

The problem: this only counts hours you were paid for. It ignores:

  • Time spent writing proposals and pitches (unpaid)
  • Platform fees taken off the top (reducing net income)
  • Admin hours: invoicing, contract review, onboarding emails (unpaid)
  • Revisions and scope-creep hours (often unbilled)
  • Marketing and acquisition time for that client

When you leave these out, you systematically overestimate what you're earning.

The True Hourly Rate Formula

True Hourly Rate = (Revenue − Fees − Ad Spend) ÷ (Billable Hours + Admin Hours + Acquisition Hours)

Let's break each component down.

Revenue

Gross payments received from this stream. Use the deposit amount, not invoice amount — unpaid invoices aren't income.

Fees

Platform fees (Upwork's 10–20%, Fiverr's 20%, Stripe's 2.9% + $0.30), payment processor fees, marketplace commissions. These reduce your net income directly.

Ad Spend

If you spend money on ads, LinkedIn Premium, or job board listings to acquire this work, subtract it.

Billable Hours

Hours you tracked and billed for. This is the number most people already count.

Admin Hours

Every hour that was spent in service of this stream but wasn't billed:

  • Proposal writing (be honest — count every pitch)
  • Onboarding emails and kickoff calls
  • Revision rounds beyond scope
  • Invoice creation and follow-up
  • Status updates and check-in calls

Acquisition Hours

The hours you spent finding this work: outreach, portfolio updates, platform profile maintenance, applying to jobs.

Example: Upwork vs. Direct Clients

Upwork Stream (Month 1):
Revenue: $3,200
Fees (15%): −$480
Net: $2,720
Billable hours: 40 hrs
Proposal writing: +6 hrs
Admin/revisions: +4 hrs
True Hourly Rate: $2,720 ÷ 50 hrs = $54.40/hr
Direct Client Stream (Month 1):
Revenue: $3,400
Fees (Stripe 2.9%): −$99
Net: $3,301
Billable hours: 45 hrs
Outreach + admin: +3 hrs
True Hourly Rate: $3,301 ÷ 48 hrs = $68.77/hr

Direct clients win by $14/hr — despite similar gross revenue. Over a year, that difference compounds significantly.

How to Track This Without Going Crazy

The main barrier to running this calculation is data collection. Here's a minimal viable tracking system:

  1. Time: Use any timer app. Log billable AND non-billable hours, tagged by stream.
  2. Fees: Export monthly CSV from Stripe, PayPal, or your platform and subtract fees.
  3. Spreadsheet: One row per month per stream. Apply the formula above.

Or use a tool like GigAnalytics to automate the import, time logging, and calculation — it's designed specifically for this calculation across multiple streams.

What to Do With the Number

Once you have true hourly rates per stream:

  • Cut or deprioritize streams below your target rate
  • Negotiate fees or raise prices on streams that are close to target
  • Double down on streams with the highest true rate AND highest scaling potential
  • Run pricing experiments to test whether higher rates reduce volume enough to hurt net hourly rate

The Bottom Line

Your invoice rate is a ceiling, not a floor. Your true hourly rate — accounting for every hour and every fee — is what you're actually exchanging your time for.

Calculate it once and you'll never look at income streams the same way again.

Want this calculation automated?

GigAnalytics imports your Stripe, PayPal, or CSV data and calculates true hourly rate per stream automatically.

Try the free demo →