Gross margin
What is left of a client fee after the cost of delivering the work.
Revenue minus direct delivery costs, meaning the salaries of the people on the account, contractors, and software billed to it, expressed as a percentage of revenue. It excludes overheads such as rent and leadership salaries, which belong below the gross margin line.
Gross margin % = (revenue − direct delivery cost) ÷ revenue × 100
Key takeaways
- Exclude pass-through media spend from revenue, or every paid media account shows a wonderful margin that is mostly the client budget.
- Per-client margin is the number that reveals which accounts subsidise which, and the one most agencies never calculate.
- The unprofitable account is usually the largest, the oldest, or the founder own. Those are the three nobody questions.
- Healthy on average and terrible on two accounts is not a healthy business, it is two problems and an average.
- The worst three by margin are almost always the three the delivery team finds most stressful. That is not a coincidence.
What belongs above the line
Gross margin only means anything if the boundary is drawn consistently, and in agencies that boundary is drawn in several incompatible ways.
Above the line, in direct delivery cost, belongs anything that exists because this account exists: the salaried time of the people working on it, contractors and freelancers, and software licences billed specifically to the work. Below it, in overheads, belongs rent, leadership salaries, finance, central tooling and new business.
Pass-through media spend belongs in neither, because it is not revenue. An agency managing a hundred thousand a month of ad budget for a five thousand fee has five thousand of revenue on that account. Including the media makes the margin percentage look extraordinary and makes the agency price itself against a number that is mostly somebody else money passing through its bank account.
The test for the boundary: if this client left tomorrow, would this cost go away. Freelancer hours would. The office would not. That question resolves most of the ambiguous cases in a sentence.
Per client, which is where it becomes useful
An agency-wide gross margin is a number for a bank manager. The version that changes decisions is per client, and it is the calculation most agencies have never done.
The reason is mundane: it needs hours tracked against accounts and salaries allocated to those hours, and if either is missing the number cannot be produced. Which means the agencies that most need the insight are the ones least equipped to get it.
What it reveals is nearly always uncomfortable and nearly always actionable. A handful of accounts carry the business, a handful lose money, and the rest are unremarkable. The losses are rarely where anybody expected.
The pattern worth knowing in advance: the unprofitable account is usually the largest, the oldest, or the one belonging to a founder. Those are the three nobody questions, which is exactly why scope on them has drifted for years without anybody raising it.
What the average conceals
An agency reporting a healthy blended margin can be carrying two accounts that lose money on every hour, and the blend will keep looking fine for as long as the profitable accounts hold.
That is not a healthy business with a rounding issue. It is a business with two problems and a statistic obscuring them, and the exposure is real: if one of the profitable accounts churns, the losses stop being covered and the picture changes in a single month.
The distribution matters more than the mean, and the practical version is a ranked list rather than a chart. Every client, sorted by margin, worst first. It takes one page and it is the most informative page in an agency management pack.
Reviewed quarterly, that list produces a short and specific agenda: reprice these two, renegotiate scope on this one, and understand why this one is better than we thought. None of those actions is available from a blended figure.
The allocation that quietly breaks the number
Once hours exist, they have to be costed, and the shortcut almost everybody takes is a blended hourly rate across the team. That shortcut hides the single most expensive pattern in agency delivery.
Senior people cost several times what junior people cost. Allocating everybody at an average makes an account staffed by the two most expensive people in the building look identical to one staffed by juniors, and it is frequently the cheap account that is soaking up the senior time, because it is the difficult one.
Costing at actual salary, even roughly banded, makes that visible immediately. The usual finding is that seniority has drifted toward the accounts that complain rather than the accounts that pay, which is a rational response by individuals and a bad outcome for the business.
And the last correlation worth naming: the worst three accounts by margin are almost always the three the delivery team finds most stressful. That is not coincidence, it is the same fact observed from two directions, and either one can be used to find the other.
What it means for an agency
Calculate it per client, quarterly, and look at the worst three. That list is almost always the same as the list of accounts the delivery team finds most stressful, which is not a coincidence.
Where it goes wrong
- Including media spend in revenue and reporting a margin that describes nothing.
- Allocating a senior person time at an average rate, which hides that the expensive people are on the cheap accounts.
- Reporting the blended figure, which keeps looking fine while two accounts lose money on every hour.
- Putting overheads above the line, which turns gross margin into net and removes the comparison between accounts.
In short
Gross margin per client is the one report that reliably changes what an agency does, and it is usually missing for want of two inputs it already half collects. The ranked list it produces is short, uncomfortable, and almost always the same list the delivery team would have written from memory.
Frequently asked questions
What counts as direct delivery cost for an agency?
Anything that exists because the account exists: the salaried time of people working on it, contractors and freelancers, and software billed specifically to the work. Rent, leadership salaries, finance and new business sit below the line as overheads. The test is whether the cost would go away if the client left tomorrow.
Should media spend be included in agency revenue?
No. Pass-through ad budget is not the agency revenue, and including it makes the margin percentage look extraordinary while describing the client budget rather than the business. An agency managing a hundred thousand a month for a five thousand fee has five thousand of revenue, and pricing itself against the larger number is how it ends up underpricing everything.
What is a good gross margin for an agency?
Benchmarks are less useful here than the distribution. An agency with a healthy blended figure can be carrying two accounts that lose money on every hour, and the blend holds only while the profitable ones do. A ranked list of every client by margin, worst first, is more informative than any benchmark and produces a specific agenda rather than a comparison.
Why calculate gross margin per client?
Because the blended number cannot tell you which accounts subsidise which, and the unprofitable one is usually the largest, the oldest or the founder own, which are the three nobody questions. It needs hours tracked against accounts and salaries allocated to those hours, which is why the agencies that most need the insight are often the least equipped to produce it.
Related terms
Last reviewed
Keplent keeps track of these for you.
It holds what each client agreed to, watches what their campaigns actually did, and tells you in plain sentences what needs you this week.
Join the waitlist