AgencyFinanceJune 20265 min read

Where Media Agency Hours Disappear — And Why Margin Follows

Media agencies track campaign performance in extraordinary detail. But when it comes to tracking their own team's hours against client work, the data is usually thin — a weekly timesheet total per person, maybe broken down by client. That level of aggregation hides the real profitability picture.

P PrashantWorkDesignOS · Systems for agencies
Media agency time tracking and margin
Key takeaway

A weekly timesheet total per person tells you what happened. Task-level tracking tells you whether it was profitable. Only one of those changes how you price, scope, and staff the next campaign.

Media agencies track campaign performance in extraordinary detail. Ad spend by channel, attribution by touchpoint, creative performance by variant. But when it comes to tracking their own team's hours against client work, the data is usually thin — a weekly timesheet total per person, maybe broken down by client.

That level of aggregation hides the real profitability picture.

Two uses for time data — only one improves margin

There is a practical difference between tracking time for billing and tracking time for profitability — and most media agencies only do the first.

Billing-focused tracking tells you how many hours a client has consumed in a given period. That's enough to check whether a retainer is on pace or to generate a monthly invoice. It doesn't tell you which service types are profitable and which are slowly eroding margin.

Profitability-focused tracking asks: for each deliverable — creative briefs, campaign builds, performance reports, attribution analysis — how many hours did it actually take versus what was estimated? When that data exists at the task level through solid task management, patterns become visible. A media agency that sees performance reporting consuming 30% of total campaign hours has a decision to make: restructure the reporting process, adjust what's in the retainer, or reprice.

Without task-level data, that decision never gets made. The same inefficiency repeats across every client cycle.

Why teams stop logging

Two failure modes are common.

First, friction. Media teams move fast across platforms, channels, and campaign cycles. If logging requires a separate project tracking software at the end of a busy day, hours get reconstructed from memory — and memory underestimates the work that wasn't directly billable: the extra revision round on the creative brief, the mid-cycle platform access call, the attribution conversation that ran long.

Second, the data goes nowhere. If hours are logged but never surfaced in a meaningful review — never compared against estimate, never flagged when a retainer is over-consumed — the team stops connecting the log to outcomes.

Tracking work hours becomes admin, not intelligence — until it surfaces in a decision that actually matters.

The structure that makes it work

Connecting project time tracking to the task level is straightforward. Every task needs:

  • An estimated hour budget
  • An assigned owner
  • A billable hours field logged at completion

Across a full campaign cycle — brief, creative development, trafficking, live optimisation, reporting — those fields produce a deliverable-by-deliverable breakdown of where hours actually go. That's the data that makes time tracking and invoicing honest: the invoice reflects what was delivered, and the estimate on the next proposal comes from real history rather than intuition.

Template

Agency OS handles this in one workspace — hours logged at the task level, connected to projects and client records, so nothing lives in a disconnected timesheet at month-end.

Retainers are where over-servicing hides

Campaign retainers are particularly vulnerable. The monthly scope feels defined — creative assets, campaign management, reporting — but in practice, client requests accumulate. An extra channel gets added. The performance report gets rebuilt mid-month. Attribution questions extend into a second call.

None of that surfaces in a billing-level total. It only surfaces when task-level hours are reviewed against estimates — and by then, the month is over.

The fix is mechanical: map every retainer scope item into tasks with hour estimates. Log at completion. Review weekly. When a specific deliverable type — platform access setup, live campaign optimisation calls, or creative brief revisions — consistently runs over estimate, the scope conversation with the client has data behind it.

The next step

The value of project management and time tracking working together isn't tighter control over the team. It's better decisions: on pricing, on which client types are actually profitable, and on where scope creep is costing the most.

Pick one client. Break their current scope into tasks with estimates. Log for four weeks. The picture that emerges will be more actionable than anything in a billing summary.

Share this article
The monthly systems letter

One practical workflow idea, every month.

No fluff, no spam — just one idea you can deploy in your workspace that week.