Time tracking for freelance developers: a practical guide
Last updated: July 2026
Developer time is unusually hard to track. The billable day is a mix of coding, debugging, reading docs, deploys and plain thinking — spread across parallel projects and, increasingly, several terminals of AI agents. This is a practical guide to capturing it accurately without turning tracking into a second job.
Why developer time resists tracking
Most time trackers were designed for linear, single-task work. Developers do not work that way. You context-switch constantly, run two or three projects in parallel, and do a lot of billable work that is not typing — architecture, code review, a client call, watching a deploy. A manual timer assumes you will faithfully stop and restart it through all of that. In practice you do not, and the gap shows up as under-billing at the end of the month.
Automatic vs manual
The trade-off is coverage versus control. Manual timers capture roughly 70–80% of actual billable hours — the rest is lost to forgotten clicks. Activity-based automatic tracking, which watches what you actually do and drops idle time, captures around 95–98%. Estimates put the manual shortfall at 15–40% of billable time. To make that concrete: at $100/hour and 30 billable hours a week, even a 15% gap is over $23,000 a year left on the table.
Manual tracking's appeal is that it is the source of truth you consciously approve; automatic tracking's appeal is that it does not depend on your memory. The piece that makes automatic honest is idle detection — pausing after a few minutes of no input so a lunch break never lands on a client's bill.
Local vs cloud
For a freelancer under NDA or handling a client's private code, where the data lives is not a detail. Cloud trackers put your project names, window titles and sometimes screenshots on a third party's servers behind an account. Local trackers keep all of it on your Mac. The trade-off is real: cloud tools give you cross-device and team sync and polished dashboards; local tools give you privacy and no account to manage.
If sync and team reporting are what you need, a cloud tracker like Toggl Track is a fair pick and we say so. If confidentiality and staying local matter more, Timing, trackmy.codes and Døgn all keep your data on the machine.
A hybrid workflow that actually holds
The setup most working developers land on is a hybrid:
- Let automatic capture run all day for coverage — especially across context-switches and AI coding sessions, where manual timers leak worst.
- Keep a manual timer for the one or two things you must not misattribute.
- Spend ten minutes once a week reviewing the auto-generated entries: approve the accurate ones, fix anything miscategorised, delete what is not billable.
For AI work specifically, let the tracker record each session on its own line so five terminals do not collapse into one ambiguous block you cannot untangle later.
Close the loop to an invoice
Tracking only pays off when it becomes an invoice with almost no friction — otherwise the record rots and you go back to estimating. Tag entries by client and project as you go, keep a one-line description on each, and at month's end either export or, with Døgn, push the finished entries straight to a draft invoice via a signed webhook. That last step is the difference between tracking that funds itself and tracking that becomes a chore you abandon. See how Døgn ties tracked time to the invoice.
Questions, answered
Automatic or manual time tracking for developers?
A hybrid works best: automatic capture for coverage — especially across context-switches and AI coding sessions — plus a manual timer for the few entries you must control, with a short weekly review to keep the data honest.
How much billable time do freelancers typically lose?
Estimates put the manual-tracking shortfall at 15–40% of billable hours, with manual timers capturing around 70–80% versus 95–98% for activity-based automatic tracking. At $100/hour that gap is easily thousands of dollars a year.
Is a local time tracker better for client confidentiality?
If you are under NDA or handling private code, generally yes — a local tracker keeps project names, window titles and any screenshots off third-party servers. Timing, trackmy.codes and Døgn are all local; most cloud trackers store that data behind an account.
How do I handle several projects at once?
Use a tracker with per-project entries and, ideally, parallel timers, and let AI coding sessions be recorded per-session. That way three projects across five terminals stay on separate lines instead of collapsing into one block you cannot bill accurately.