TinyHub
← The build log
Running the practice

Time tracking across clients without losing your mind (or your hours)

If you bill several clients, the hardest part of time tracking isn't the timer — it's attributing every block to the right client without breaking your focus. Here's a workflow that survives a real week.

Most time-tracking advice assumes you have one job. Start a timer in the morning, stop it at night, done. But if you’re a consultant, freelancer, or agency of one, your day isn’t one stream — it’s a braid of five clients, and the whole difficulty is keeping the strands labelled.

Get the attribution wrong and the consequences are real: hours billed to the wrong client, an afternoon that vanishes because you forgot to start anything, a Friday spent reconstructing Tuesday from memory. Here’s a workflow built for the way multi-client work actually feels.

The core problem: attribution, not duration

A timer measures duration. That’s the easy part. The hard part is attribution — making sure each block is tagged to the right client at the moment you do the work, not reconstructed later.

Reconstruction is where hours die. Nobody remembers on Friday whether that 40-minute call on Tuesday was Acme or Coop. So you either under-bill (guessing low to be safe) or you spend unbillable time playing detective. Both cost you money.

The fix is to make attribution automatic and immediate. Three habits get you there.

1. Track against the workspace you’re already in

The single biggest win: start the timer from inside the client’s context, so it already knows who it’s for. If you’re looking at Acme’s tasks, the timer you start is an Acme timer — no dropdown, no decision, no chance to mislabel. Attribution becomes a side effect of where you already are, instead of a separate step you can forget.

2. Track the task, not just the clock

“3.5 hours — Acme” is a number you’ll question in a month. “3.5 hours — Acme — revise Q3 proposal” is a defensible line item. Start the timer from the task you’re doing, and the description writes itself. When invoice day comes, the story is already there, and clients query itemised work far less than round mystery hours.

3. Capture the block even when you forgot to start it

Real weeks are messy — you’ll finish a call and realise nothing was running. The workflow has to allow a retroactive block: “that was 30 minutes, Coop, kickoff call,” added in ten seconds after the fact. A system that only rewards perfect real-time tracking will be abandoned the first busy day. One that lets you patch gaps gracefully survives.

Weekly rhythm that keeps you honest

From tracked to billed

The point of all this precision is that the hours flow straight into an invoice with no re-entry. When every block already carries its client and its task, a client’s billable total is just a filter away — and the invoice is a summary, not a research project. We walk through that hand-off in from timesheet to invoice.

Tracking time across clients is mostly a design problem: reduce the number of moments where you could attribute wrong. TinyHub does that by keeping the timer inside each client’s workspace and letting you start it straight from a task — so the right label is the default, not a discipline. If Fridays feel like detective work, give it a try.

Follow the build

Occasional notes on building TinyHub in the open — what shipped, what's next. No spam, ever.

Stored in the EU, used only for TinyHub updates. Unsubscribe anytime.

You're in. Next build note lands in your inbox.