How to Track Billable Hours as a Freelancer (Without Losing Money)
To track billable hours as a freelancer, log time against a specific client and a work category as the work happens, mark it billable or non-billable at the point of entry, and correct anything you missed the same week. The category matters more than most people realise: it becomes the line item on your invoice, so vague categories produce a vague invoice your client will question.
Most freelancers do not lose money on rates. They lose it on the twenty minutes here and forty minutes there that never got written down. By the time you sit down to invoice, that time is gone — you cannot bill what you cannot remember.
This guide covers what to track, how to structure it so invoicing is nearly automatic, and the specific mistakes that cost the most.
What counts as billable time?
Billable time is work you agreed to do for a client under your rate. Non-billable time is everything else — your own admin, marketing, proposals you wrote to win the work, and internal learning.
The distinction matters practically, not just philosophically. In HeadQrtr, only entries marked Billable are pulled onto an invoice. Non-billable time is still tracked and still shows in your reports, so you can see where your week actually went, but it never reaches a client.
Track non-billable work too. It is the only way to find out that you are spending nine hours a month on admin you could automate or delegate.
The three things to capture on every entry
A time entry with no context is almost useless two weeks later. Capture three things every time.
- What you did — a plain description. "Second round of edits on the launch video" beats "video work".
- Who it was for — the client. This is what groups the time onto the right invoice.
- What kind of work it was — the category. This is what becomes the line item your client reads.
The category is the one people skip, and it is the one that costs them. If every entry is tagged "General", your invoice says "General: 40 hrs". If your entries are tagged Strategy, Content Production and Revisions, your invoice breaks down into three lines the client can actually understand.
How to track time across multiple clients
The failure mode with multiple clients is not forgetting to track — it is tracking to the wrong one. Two habits prevent it.
First, select the client before you start the timer, not after. Selecting afterwards means you are reconstructing from memory, which is exactly the problem you are trying to solve.
Second, stop the timer when you switch tasks, even if you are switching between two jobs for the same client. Two entries with clear descriptions are more defensible than one long block you have to explain later.
What to do when you forget to start the timer
Everyone forgets. The fix is to add the block by hand rather than to guess at invoicing time.
In HeadQrtr you can add an entry after the fact with its own date, start time and end time, or open an existing entry and correct the client, category or billable setting. Each entry can also carry its own hourly rate, which is useful when one piece of work was agreed at a different price.
Do the corrections before you invoice, not after. Once time has been billed on an invoice you have sent, it will not be pulled onto another one — which is a safeguard against double-billing, but it does mean fixing things afterwards is more work.
How tracked time becomes an invoice
This is the part that makes the tracking worth doing. When you create an hourly invoice for a client and set the billing period, the hours are calculated for you. You do not type them in.
Two rules decide what gets counted: the entry must be marked Billable, and it must not already be on an invoice you have sent. That second rule is what stops you accidentally billing the same hours twice.
From there you can break the total into one line per category — so the client sees what they paid for rather than a single number they have to take on trust.
Common mistakes that cost real money
| Mistake | What it costs you |
|---|---|
| Tracking at the end of the day from memory | Consistently under-reports. Nobody remembers the short interruptions, and those add up faster than the long blocks. |
| Leaving everything as one category | Produces a one-line invoice that invites questions and slows payment. |
| Not tracking non-billable work | You never find out where your unpaid hours actually go, so you cannot fix it. |
| Fixing entries after invoicing | Time already billed on a sent invoice will not roll onto the next one. Correct it first. |
| Rounding up generously | Feels harmless, reads as padding when a client compares two months. |
Frequently asked questions
Should I track time if I charge a flat project fee?
Yes. You will not bill by the hour, but you need to know whether the project was actually profitable. Tracking it is how you price the next one correctly instead of repeating a bad quote.
How granular should categories be?
Granular enough that a client reading the invoice understands what they bought, and coarse enough that you will actually use them consistently. Three to six categories per client is usually right. Twenty is not.
What if I work on two clients at once?
You do not, really — you alternate. Stop and start the timer as you switch. Splitting a block between clients after the fact is guesswork, and guesswork is what gets disputed.
Is non-billable time worth tracking?
Yes. It is the only honest measure of what your week costs you. If admin is eating six hours a week, that is a business problem you cannot see without the data.