If you ask ten freelance developers how many billable hours they deliver in a year, you'll get eight answers in the 1,800 to 2,000 range and a couple who shrug. Then you'll ask them to look at their time tracker, and the answers will quietly revise downward, sometimes way downward.
Billable hours per year is one of the two inputs to your hourly rate calculation (the other is the income target). Get it wrong and the rate is wrong. This is a step-by-step walkthrough for working out a defensible number rather than guessing.
Why the number matters
Your hourly rate is built from: (gross revenue needed) divided by (billable hours per year). If you set gross revenue accurately but overestimate billable hours by 30%, your rate is 30% too low. You end the year having worked the planned hours but produced 70% of the income you needed. The fix is not to work more; it is to set the rate correctly in the first place.
This matters for fixed-bid quotes too. A fixed-bid project is an hourly rate guess multiplied by an hours guess. If either guess is off, the project loses money. The hours guess is easier to fix once you have a real ratio for billable-to-total work hours.

Photo by Büşranur Aydın on Pexels
Step 1: pick a workweek baseline
Decide how many hours per week you actually want to work on the business. "Full time" is not a fixed number in freelancing. Some people want 40 hours per week, some want 30, some want 50 because they are in an aggressive savings phase.
For this walkthrough, assume 40 hours per week of total time spent on the business.
Step 2: subtract the time you take off
A year has 52 weeks. You will not work all 52 of them. A realistic split for a full-time freelance developer:
- Vacation: 3 to 4 weeks. Most developers take less than they should; plan for 4 weeks if you want to actually take 3.
- Sick or buffer: 1 to 2 weeks. This covers actual illness, a death in the family, a friend's wedding that requires travel, and the week your kid is home with a flu.
- Holidays: 1 to 2 weeks of equivalent. Even if you work some holidays, most clients are unavailable around the major ones, which limits how much you can ship.
Total time off: 5 to 7 weeks. For this walkthrough, use 6 weeks. Working weeks = 52 - 6 = 46.
Step 3: estimate your billable ratio
This is the hard part. Most freelance developers think their billable ratio is 90%. The actual number is closer to 60% to 70%.
The categories of unbilled work:
- Sales and proposals. Prospect calls, proposal writing, scope negotiation, statement-of-work edits.
- Client communication that doesn't bill. Quick Slack questions, email replies, status updates, the standing weekly call that does not have a deliverable.
- Operations. Invoicing, follow-up on late payments, bookkeeping, tax prep, vendor management.
- Marketing. Newsletter writing, social posts, conference talks, blog posts, networking events.
- Learning. Reading docs, watching conference talks, exploring a new library before recommending it to a client.
- Internal tooling. Setting up your own dev environment, automating invoicing, building templates.
If you have never tracked your time, run a free tier of Toggl or Clockify for a quarter and look at the actual ratio. Most full-time freelance developers see somewhere between 55% and 70%. Hourly contractors embedded in a client team often hit 75% to 85% because the client absorbs more of the operational and meeting overhead.
For this walkthrough, use 65% billable.
Step 4: do the multiplication
Billable hours = working weeks * weekly hours * billable ratio
Plugging in: 46 * 40 * 0.65 = 1,196 billable hours per year.
That is the number that goes into your rate calculation. Not 2,080. Not 1,800. About 1,200 for a full-time freelance developer with normal time off and an average billable ratio.
If your math produces something significantly different, check the assumptions: did you allocate any time off? Did you account for sales and admin overhead?
Step 5: sanity-check against revenue
Multiply billable hours by your current rate to get your expected gross revenue at full capacity. Compare to last year's actual revenue.
If billable_hours_estimate * current_rate is much higher than what you actually billed last year, one of two things is true: either your billable hours were lower than estimated (your billable ratio is worse than 65%), or you had down weeks that reduced billable time below capacity.
Both are useful information. The first means the rate floor is even higher than the calculation suggests. The second means you need pipeline depth to keep the calendar full, which is a sales and marketing problem rather than a pricing problem.

Photo by Czapp Árpád on Pexels
Worked example: a senior backend freelancer
A senior backend developer wants a $110,000 take-home, has $24,000/year of benefits cost (marketplace health for two adults, solo 401(k) target, disability), and $8,000/year of business expenses (software, accountant, equipment depreciation). Effective tax rate ~28%.
Profit needed (after tax) = $110,000 + $24,000 = $134,000
Profit needed (before tax) = $134,000 / 0.72 = $186,111
Revenue needed = $186,111 + $8,000 = $194,111
Billable hours per year = 1,196 (from Step 4)
Rate floor = $194,111 / 1,196 = $162.30 per hour
Quoting rate = $162.30 * 1.20 (20% cushion) = $194.76, round to $195.
That is the math. A senior backend freelancer who quotes $125 an hour and wonders why their take-home is below $80,000 has not done this math. The whole problem becomes legible the moment the numbers are written down.
You can shortcut this with this free freelance rate tool, which accepts the same inputs and returns the floor without requiring you to do the algebra. If you want the full reasoning behind why each input is structured the way it is, the deep-dive on how to set a freelance hourly rate that pays what you need explains the underlying methodology.
What to do if the floor is impossible
Sometimes the floor calculation produces a number that is higher than your market will pay. This happens to first-year freelancers and to specialists trying to break into a new niche.
The options:
- Reduce the take-home target temporarily. Year-one freelancers sometimes accept a lower take-home while building a portfolio.
- Take on more billable hours. This works if the ratio is well below 65% because of low pipeline volume; it does not work if you are already at 70% and considering working evenings.
- Reposition the work. A "freelance developer" charging $75 an hour might be a "fractional CTO" charging $200 an hour with different work and different clients. The skill is similar; the market is different.
- Reduce business expenses. Cut the software subscriptions you don't use, find a cheaper accountant, drop the WeWork desk.
None of these is "charge below the floor and hope it works out." That option exists and is a popular one, but it's not on the list because it does not solve the math; it just defers the consequences.
A short timeline for getting the number right
- Year 0 (before going freelance): estimate billable hours conservatively. Use 1,100 to 1,200. Pad the rate accordingly.
- Months 1-3: track time with Toggl, Clockify, or Harvest free tier. Capture the real billable ratio.
- Month 4: recalculate billable hours with real data. Adjust the rate if needed.
- Year-end: look at total billed hours from your invoice records. That is the truest number you can use for next year's rate calculation.
Run this loop annually. The numbers drift over time as your business matures (billable ratio often improves; expenses sometimes grow). The floor changes with them. Update the rate to keep pace, or pick a year to absorb the drift and reset in January.
Knowing the billable hours number is half the rate calculation. The other half is the income target, which deserves the same level of honesty. Together they produce a floor you can defend in a sales call without flinching.
Top comments (0)