Most agencies know their total revenue and total profit — and nothing in between. The result: two or three quietly unprofitable clients hide inside a healthy-looking P&L for years. Here's the framework we build to expose them.
The three views that matter
1. Margin by client. Revenue per client minus the cost to serve them: team hours at loaded cost, contractors, software seats, and pass-through spend. This is the view that finds the "big logo, bad margin" account.
2. Margin by project type. Retainers vs. projects vs. one-off work. Retainers usually look stable but drift — scope grows while the fee doesn't. Measure delivery hours against retainer fees quarterly.
3. Margin by service line. Paid media vs. creative vs. web builds vs. strategy. Almost every agency has one service it should sell more of and one it should fix or drop.
How to build it
- Track delivery time — even roughly. 15-minute precision isn't needed; consistent weekly estimates per client beat perfect data nobody enters.
- Set a loaded cost rate per person: salary + taxes + benefits + overhead share, divided by realistic billable hours (~1,400–1,600/year, not 2,080).
- Code contractors and direct costs to clients in your accounting file — this is a bookkeeping structure decision, not a spreadsheet chore.
- Standard formula: Client revenue − (hours × loaded rate) − direct costs = client gross margin. Target 50%+ gross margin per client to fund overhead and profit.
What to do with the answers
- Below ~30% margin: reprice, restructure scope, or exit. Every hour there is stolen from a better client.
- Scope creep on retainers: document overage hours and renegotiate at renewal with data instead of feelings.
- Star performers: figure out what makes the top accounts profitable and sell more of exactly that.
We build this reporting into the monthly close for agency clients — margin by client delivered every month, no spreadsheet maintenance required.