Ask any agency owner if their time tracking data is accurate and you'll get a shrug. Ask them if they use it to price retainers, decide which clients to fire, and calculate whether the new SEO package makes money — and they'll say yes without hesitation.
That gap is expensive. Most agency time tracking data is wrong by 20-30%, and the errors aren't random. They lean in a consistent direction: they make you look more profitable than you are, right up until the month your cash flow disagrees.
The four ways timesheets lie
1. Retroactive logging is memory, not measurement
If your team fills in timesheets on Friday at 4:45pm, you are not collecting data. You are collecting a reconstruction. And reconstructions are tidy — 2 hours here, 1 hour there, everything in neat half-hour blocks that add up suspiciously close to 40.
Real work doesn't look like that. A technical SEO audit for a mid-size ecommerce client is 25 minutes in Screaming Frog, a 12-minute Slack detour about a different client's Core Web Vitals, 40 minutes writing findings, an unscheduled call with the dev lead, then 15 minutes re-checking a redirect chain you'd already checked.
When someone reconstructs that on Friday, the Slack detour vanishes. The unscheduled call gets attributed to the client it was about rather than the client it was billed to. The re-check disappears entirely because it felt like a mistake, and nobody logs their mistakes.
2. Rounding is always in the same direction
A 22-minute task becomes "half an hour." A 38-minute task becomes "half an hour." Sounds like it evens out — it doesn't, because people round down on things they feel took too long and up on things they feel were quick wins. The bias tracks self-perception, not the clock.
Across a 10-person team logging 8 entries a day, a 6-minute average rounding error is 4 hours a day of phantom or missing time. Over a month that's roughly 80 hours — two full weeks of one person, invisible.
3. The invisible work never gets a code
Here's a test. Look at your timesheet categories. Do you have codes for:
- Reading and replying to client emails outside of scheduled work blocks
- Internal handover conversations between the strategist and the content writer
- The 20 minutes spent finding last quarter's keyword research because nobody filed it
- Reworking a deliverable after a vague client comment
- The Monday standup, the Thursday pipeline review, the quarterly all-hands
Most agencies have "Admin" and hope for the best. So people either dump everything into Admin (making it useless) or spread it across client codes (making those useless). Either way, you lose the single most valuable insight available: which clients generate more unbillable overhead than others.
I've seen a £4,000/month retainer that looked like a 45% margin turn out to be a 12% margin once the client's habit of sending 15 separate one-line emails a day was actually logged. Nobody was hiding it. There was just nowhere to put it.
4. Utilisation targets teach people to lie
If you tell a team they must hit 85% billable utilisation, you will get 85% billable utilisation. You will not get accurate data. You'll get internal meetings quietly logged to whichever client is on retainer and unlikely to query hours.
This is the most damaging lie because it's structural. You've made honesty career-limiting. No tooling fixes that — only changing the target does.
What broken time data actually costs you
Bad time tracking doesn't fail loudly. It fails as a slow drift in the wrong direction:
- You price new retainers off fantasy delivery costs. If a local SEO package actually takes 22 hours a month and your data says 16, you've built a 37% cost overrun into every new contract you sign.
- You can't tell a hard client from an unprofitable one. Those are different problems with different solutions — one needs a conversation, the other needs a price rise.
- Scope creep becomes undetectable. Creep shows up as gradual hour inflation. If your baseline is noise, you can't see the signal until someone is burnt out.
- Capacity planning becomes guesswork. You say yes to a new client because the numbers say you've got 30 hours spare. You didn't.
This is why time data belongs in the same conversation as the rest of your agency KPIs that actually matter. Hours logged is an activity metric. Hours-to-margin per service line is a business metric.
How to fix agency time tracking without becoming a surveillance state
Track in the moment, or don't bother
The single highest-leverage change: timers started when work starts, not reconstructed later. Not because it's more disciplined — because it removes memory from the equation entirely.
This only works if starting a timer takes under five seconds and attributing it to a client and deliverable takes one click. If your tool requires selecting a project, then a phase, then a task, then a billable flag, people will batch it up on Friday and you're back where you started. Friction is the enemy here, which is worth weighing when you compare PM and time tracking tools — the winner is whichever one your team will actually use at 3pm on a busy Wednesday.
Track to deliverables, not tasks
Task-level tracking sounds rigorous and is a trap. Nobody wants 14 timer switches an hour.
Deliverable-level is the right granularity for agencies. For a typical SEO retainer that's maybe six buckets:
- Technical audit & fixes
- Content production
- Link acquisition
- Reporting & analysis
- Client comms & meetings
- Strategy & planning
Six buckets is enough to tell you that content production on Client A takes 3x what it takes on Client B — which is the insight that changes your pricing. Fifty buckets tells you nothing you'll ever read.
Give client comms its own line, always
Make "client communication" a first-class billable category on every project, not admin overhead. This is the change with the fastest payback. Within two months you'll be able to see, in hours, which clients cost 4 hours a month to manage and which cost 14.
That number is the foundation of every difficult pricing conversation you'll have. It's much easier to deliver uncomfortable news in a client meeting when you can say "your account consumes 11 hours a month in ad-hoc requests" rather than "you email us a lot."
Replace utilisation targets with variance targets
Stop measuring "how billable were you." Start measuring "how close was estimated to actual." Variance targets reward accurate estimation and accurate logging simultaneously. Under-logging hurts your variance score just as much as over-logging.
Aim for ±15% on deliverable-level estimates within a quarter. Anyone consistently at ±5% is probably padding estimates; anyone at ±40% needs help scoping, not discipline.
Run a 10-minute Friday reconciliation — for gaps, not entries
You still need a weekly review, but change what it's for. It's not "fill in your timesheet." It's "here are the gaps in your logged week — were those genuinely non-work, or did you forget a timer?"
Showing someone that Tuesday 2-4pm is unaccounted for prompts real recall ("that was the Zoom with the dev team"). Asking them to reconstruct Tuesday from scratch prompts invention.
Reconcile against retainer capacity monthly, not quarterly
A retainer that's 40% over budget in week two is fixable. Discovered in month three, it's a write-off or an awkward conversation. Monthly reconciliation against retainer scope is the mechanism that turns time data into a decision — see our practical guide to agency retainer management for how to structure that review.
Inside PeakKR we tie tracked time directly to retainer allocation per phase, so an overrun surfaces as a visible burn rate rather than a month-end surprise. Whatever tool you use, the principle holds: time data that isn't compared against a budget on a short cycle is just archaeology.
What honest data looks like
Expect your numbers to get worse before they get better. When a team of eight fixes this properly, the typical pattern is:
- Reported billable utilisation drops from ~85% to ~68%
- Two or three retainers reveal themselves as barely breaking even
- Client comms turns out to be 12-18% of total delivery hours
- One service line you

Nick Quirk

