How to Track Billable Hours as a Freelancer
Most freelancers undercharge — not because they set their rates too low, but because they forget to log the hours they've already worked. Here's how to fix that, from the simplest methods to the most reliable.
Why billable hours disappear
Freelance billing should be simple: track your hours, invoice for what you worked. But in practice, the hours don't track themselves. You spend 45 minutes on a client call, 20 minutes reviewing a document, another half hour answering emails — and at the end of the week, none of it made it into a time log.
Research consistently shows that freelancers lose 10–20% of billable work simply because it was never recorded. For someone billing $75/hour at 30 hours a week, that's $900–$1,800 per month in unrecorded work. Over a year, that gap becomes significant.
The root cause isn't laziness — it's friction. Every system that requires you to "remember to start a timer" or "log your hours at end of day" will fail eventually, because memory is unreliable and context-switching is hard. The fix has to reduce friction, not add more of it.
Method 1: Manual time logs (and why they fail)
The oldest approach: keep a spreadsheet or notebook and write down hours as you work. Simple in theory. In practice, people forget to record anything until end of day, then try to reconstruct what they did from memory. The result is rounded estimates, not accurate records.
Manual logs also tend to miss small tasks — the 10-minute fix, the quick question, the brief review. Those small tasks add up to real time over a week, but they feel too minor to bother recording. So they don't get recorded, and they don't get billed.
Manual logging works fine if you're billing in large blocks (half-day or full-day chunks). For anyone billing in smaller increments, or working across multiple clients in a day, manual tracking introduces too much estimation error.
Method 2: Timer apps (and their real problem)
Dedicated time trackers like Toggl, Harvest, or Clockify are built exactly for this. You start a timer when you begin a task, stop it when you finish. The data is precise and exportable.
The problem isn't the tool — it's the habit. You have to remember to start the timer before you begin, and stop it when you finish. Miss either step and the entry is wrong. Many freelancers find that they forget to start the timer for half their tasks, or leave it running through lunch and a client call.
Timer apps work well for people who can build a consistent habit around them. For everyone else, they generate a mix of accurate entries and gaps, which requires manual cleanup anyway. The overhead adds up, particularly if you're already using a task manager and now running a parallel system.
Method 3: Task-based time tracking (the better approach)
If you already use a task manager to plan your work — like Todoist — you can tie time tracking directly to task completion instead of running separate timers. The idea: when you complete a task, that completion event becomes your time record. You add the duration, and you're done.
This approach works because it fits an existing habit. You were already completing tasks. All you add is a duration. You're not managing a parallel system — you're enriching the one you already use.
This is exactly how Tidst works. Connect Tidst to your Todoist account, and every completed task from your client projects appears in The Queue. Add the time for each task, approve it, and the entry is logged. The whole review takes a few minutes, and nothing gets missed because the task completions are captured automatically.
How to set up reliable billable hour tracking with Tidst
- Connect Tidst to Todoist. Authorize via OAuth — no API keys, no setup complexity. Takes under a minute.
- Select the projects you want to track. Enable your client projects; leave personal tasks out. Tidst only captures completions from the projects you've enabled.
- Set hourly rates per project. Different clients at different rates. Tidst calculates the revenue value of your time automatically.
- Use time labels for speed. Add labels like @30min or @60min to tasks in Todoist before you complete them. When those tasks land in The Queue, the duration is pre-filled. You just approve the entry.
- Review The Queue daily or weekly. It takes two minutes. Every completed task from your enabled projects is there — nothing falls through the cracks.
- Export reports for invoicing. Pull a PDF or CSV report per project per period, and use that as the basis for your invoice.
What about tasks completed on mobile?
One limitation of browser-based timer tools is that they only work when you're at your computer. If you complete tasks on your phone, iPad, or Apple Watch, those completions don't get recorded. This is a real gap for freelancers who work across devices.
Tidst connects via the Todoist API, not a browser extension, so completions from every device are captured. Whether you check off a task on your phone during a commute or mark something done on your Apple Watch, it will appear in The Queue. Every completion from every device, in one place.
The goal: a complete record, not a perfect habit
The best time tracking system isn't the most sophisticated one — it's the one you actually use. If a tool requires too much discipline to use consistently, it won't produce accurate records.
Task-based tracking through Tidst works because it doesn't ask you to change your behavior. You use Todoist the way you already do. The time tracking happens as a byproduct of your existing workflow. And because every task completion is captured, you end up with a complete record of your billable work — not an estimate based on memory.
Learn more about how time tracking in Todoist works or see the workflow for going from time tracking to invoice.
Stop losing billable hours
Tidst connects to Todoist and turns every completed task into a time entry. No timers, no manual logs, no guessing.
Try Tidst free for 14 daysNo credit card required