Guide · 8-minute read
How to track billable hours so nothing slips.
Most freelancers and small agencies lose 10-30% of potential billable revenue not to scope creep or rate negotiation, but to hours that were real and never got logged. This guide is the system we'd recommend for tracking billable time cleanly, regardless of which tool you use.
Last updated May 27, 2026
Why the slip happens
Billable hours leak in six predictable categories: the 20-minute client call you took on Wednesday and never logged; the email back-and-forth that adds up over a week; the 'quick research' that turned into two hours; the strategy thinking you did in the shower (we won't pretend you can't bill for thinking); the spec edits done at 11pm; and the post-mortem you wrote up but didn't track. All real work. Most lost to bad reconciliation a week later.
The fix isn't a smarter time tracker. It's a system that makes logging the hour cheaper than not logging the hour, plus a backstop for the times the system fails.
Two ways to track that actually work
Option one — start a timer. The timer is the gold standard because it captures actual elapsed time, not a guess. The problem is starting it; if it takes more than one click, you'll skip it. A good tool puts the timer in the chrome of every page you'd already be on (a top bar widget, an extension, a system tray).
Option two — log it manually at the end of each work block. This is the catch-all. When you finish a focused stretch, log the duration before context-switching. Tools that parse '1.5h', '1:30', and '45m' all the same way make this faster than starting a timer in the first place.
Auto-trackers that watch what app you're in and infer billable time are not in this list on purpose. They surface time you can't actually bill for (browsing for snacks, slack, code review you didn't ask for), and the result is invoices that look wrong to clients.
The decision belongs at log time, not invoice time
The biggest leverage move in a billing setup is deciding 'is this billable?' at the moment you log the entry — not at the moment you build the invoice. By invoice time, you've lost context: was that 45-minute meeting client work or internal? Was the research truly for project A or just adjacent?
Pick a default per project (most projects default to billable). Override per entry when it doesn't apply. The combined rule is: every entry has an explicit billable status at log time, and that status survives unchanged into the invoice.
Rounding without losing money
Most agencies bill in 15-minute increments — round up at the entry level so a 17-minute call bills as 30 minutes (0.5h × rate). Hoursmith rounds time-derived invoice lines up to the nearest 15-minute unit; manual flat-fee lines pass through as entered.
Two important caveats. First: round up, not 'nearest.' If a client calls you for 8 minutes you bill 15, not 0. Otherwise the math systematically under-counts. Second: do the rounding at the invoice line, not at every entry — otherwise three 8-minute calls in a day each round to 15 minutes (totalling 45) when the actual 24 minutes would round to 30. The rule is 'sum, then round.'
The daily cadence
Log at the end of each work block, not at the end of the day. End of work block, while context is fresh, while you remember what 'finished the dashboard wireframes' actually included. End of day reconstruction is a known source of slip.
Build the habit by parking it next to an existing habit. Log time → save the file → close the editor → next thing. Or log time → close the meeting tab. Habit-stacking beats discipline.
The weekly backstop
No system catches 100% of entries. Reserve 10 minutes at the end of each week — Friday afternoon or Monday morning, your call — to walk back through your calendar and inbox, looking for client work you forgot to log. Most weeks you'll find 1-3 entries. That's the backstop paying for itself.
Don't try to skip this step by promising yourself you'll catch them as you go. You won't.
What to do with the time once it's tracked
Tracked time only matters if it ends up on an invoice. The crucial property of a good billing tool is that 'generate invoice' pulls every billable un-invoiced entry from a client — automatically, grouped by project, rounded the way you bill, priced at each project's rate.
If your current tool requires you to copy hours into a spreadsheet to invoice, half the value of tracking just leaked out. The integration between tracking and invoicing is the whole point.
How Hoursmith does it
How Hoursmith does it
Hoursmith's timer lives in the top-bar widget and is server-side anchored — close the tab, switch to your phone, the timer's still running. Manual entry parses '1.5h', '1:30', '45m', and '1h 30m' identically. Each entry knows its project, its billable status, and the project's rate at log time.
When you generate an invoice from a client, Hoursmith pulls every billable un-invoiced entry, rounds time-derived lines up to 15 minutes, groups by project, prices at each project's rate. Flat-fee lines pass through. Sent invoices lock the entries; sent invoices are immutable.
Free tier covers unlimited tracking and 5 invoices a month. Studio and Agency add the rest of the loop. Read /features/time-tracking for the full feature page.