Skip to content
1 min readVerbial, Editorial

Agency profitability: hours × rate is lying to you

Why the standard profitability report overstates revenue and hides idle time, and how to compute real margin from contracted revenue and absorbed cost.

The revenue trap

If the team logs $22,000 of billable value against a $15,000 retainer, the client paid $15,000. A report that shows $22,000 of revenue has just booked a $7,000 giveaway as income. The account looks more profitable the more you over-service it.

The cost trap

Dividing a salaried person's monthly cost by the hours they logged makes every hour more expensive in a slow month. The same 60 hours of SEO cost $6,667 when the person logged 90 hours and $4,286 when they logged 140. Project margin swings on facts that have nothing to do with the project, and bench time is hidden inside client costs.

The fix

Recognise contracted revenue per period. Cost salaried people at a fixed monthly capacity (a standard 40-hour week) so the rate is stable, and report what was not absorbed as idle. Then every department, client and person table reconciles to payroll, and idle time becomes a number a manager can act on.

  • Revenue = retainer + pre-paid overage, straight-lined across the period; cash when you have it.
  • Cost = hours × hourly cost for hourly staff; hours × (monthly cost ÷ 173.3h) for salaried staff.
  • Idle = monthly cost − absorbed cost. Report it on its own line.

Questions this article answers

What is a good gross margin for a marketing agency?
50–60% on labour is healthy; below 40% usually means over-servicing or under-pricing. Measure it from contracted revenue and fully loaded cost because an hours-times-rate report will overstate it.
How do you account for idle time in agency profitability?
Cost salaried people at a fixed monthly capacity, attribute cost to clients only for the hours actually logged, and report the remainder as idle on its own line. It belongs to no client and no department, and hiding it inside client costs is what makes every margin look better than it is.
Keep reading

Put the numbers to work.

Verbial computes the retainer pacing, servicing gap and real margin these articles describe using your own data, on day one.