Back to notes

November 16, 2025 · 5 min read

An Honest Review of Time Tracking My Freelance Work for a Full Year

I tracked every billable minute for twelve months expecting better invoices. What I actually got was a map of which clients and project types were quietly bleeding me dry.

FreelanceProcess

I started tracking time because I wanted better invoices. What I got instead was a very uncomfortable spreadsheet about which work I should stop taking.

The habit itself was easy: a timer running against a project code, logged in fifteen-minute increments, exported monthly. The hard part was looking at the totals honestly instead of explaining them away. A "quick GTM audit" I'd quoted at six hours averaged eleven across the five I'd done that year. Not because the clients were difficult — because the quote never accounted for the half-day of just figuring out what was already broken before I could audit anything.

The categories that lied to me

Fixed-price retainers looked profitable in the invoice column and terrible in the time log. One retainer client paid well on paper but consumed four extra hours a month in Slack messages that weren't technically billable because the scope said "ongoing support" with no cap. Another client, on an hourly rate I thought was too low, turned out to be my best-margin account because the work was narrow and they never asked for anything outside it.

The invoice tells you if a client paid. The time log tells you if the engagement was actually worth taking.

What changed because of it

  • I stopped quoting flat audits and started quoting a range with a stated hour cap, billed hourly past it.
  • I added "discovery and access setup" as its own line item instead of folding it into the first deliverable's estimate.
  • I raised my rate specifically for GTM/server-side migration work, since it consistently ran 40-60% over estimate.
  • I started reviewing the log quarterly instead of just exporting it for invoices, which is where the real pattern-spotting happens.

The number that mattered most wasn't total hours worked — it was realized hourly rate per project type, computed after the fact. Once I had that broken out, two client categories I liked working with turned out to be subsidizing two I didn't. I didn't drop anyone over it, but I priced the next round of proposals very differently.

If you're freelancing without a time log, you're not actually pricing your work — you're pricing your guess about your work, and guesses don't get more accurate just because you've made a lot of them.