The Standard Formula (And Why It's Wrong)
Most freelancers calculate hourly rate like this:
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
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
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:
- Time: Use any timer app. Log billable AND non-billable hours, tagged by stream.
- Fees: Export monthly CSV from Stripe, PayPal, or your platform and subtract fees.
- 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 →