Find your real margin per client in 30 minutes
Revenue per client tells you who pays the most, not who makes you money. A simple spreadsheet shows which clients are actually profitable.
To find your agency's real profit margin per client, subtract each client's labor cost (hours × a loaded hourly rate) and direct costs from what they paid, then divide by what they paid. One spreadsheet and last month's numbers take about 30 minutes, and the result often shows that your biggest client isn't your most profitable one.
The biggest retainer can come with the most meetings, revisions and senior time. The spreadsheet makes that visible.
Key takeaways
- Revenue isn't profit. The client who pays the most can be the one who costs the most to serve. You only see it when you count hours.
- Use a loaded hourly rate. Divide each person's full monthly cost by their hours of client work, not their hours at work. Include yourself at what it would cost to hire someone to do your client work.
- Eight columns are enough. Revenue, hours, labor cost, direct costs, gross profit, margin and effective hourly rate per client. Sort by margin, lowest first.
- Compare effective rate with the rate you think you charge. A big gap means scope creep or underpricing. Look at where the hours go before deciding which.
- Don't decide on one month. Run the sheet for three months before acting. Then reduce hours, change scope, raise the price at renewal, or let the client go.
What margin per client is (and what it isn't)
Margin per client is the share of a client's revenue left after paying for the work you do for them: the time your team spends, valued at what that time costs you, plus any costs you pay for that client alone. It tells you which clients fund the agency and which ones it subsidizes.
It isn't your agency's overall profit. Rent, software you use for everyone, sales time and your own admin aren't charged to any single client. Margin per client has to be high enough to cover those overheads and still leave profit, which is why you set a floor rather than aiming for "positive."
It isn't the same as revenue either. A large retainer at a thin margin can be worth less than a small one at a healthy margin, especially if the large one uses the capacity you'd need to take on a better client.
And it doesn't need precise time tracking. Honest estimates are enough to show the big differences, which are the ones that matter.
What you need before you start
- Last month's revenue per client (your invoices).
- Rough hours per client last month, by person. Time-tracking data is best; an estimate is fine for a first pass.
- What each person costs you per hour.
- Costs you pay for one client specifically: tools, freelancers, ad spend you don't pass through, stock media.
Step 1: Work out a loaded hourly cost per person
Take each person's monthly cost (salary or fee, plus payroll taxes and benefits if you pay them) and divide by the hours they spend on client work in a month. If someone costs you $6,000 a month and does about 120 hours of client work, their loaded cost is $50 an hour.
For yourself, use what it would cost to hire someone to do your client work. Using zero is the most common reason owners think their margins are better than they are. Employees and contractors are costed differently; if you're unsure which payroll costs belong in an employee's loaded rate, ask your accountant once and reuse the answer.
Step 2: Set up the spreadsheet
One row per client:
| Column | What goes in it |
|---|---|
| A: Client | Name |
| B: Revenue | What they paid last month |
| C: Hours | Total hours across your team |
| D: Labor cost | Hours × loaded rate, summed across people |
| E: Direct costs | Tools, freelancers, media for this client only |
| F: Gross profit | =B2-D2-E2 |
| G: Margin % | =F2/B2 |
| H: Effective rate | =B2/C2 (revenue per hour worked) |
If people with different rates work on a client, add a second tab with one row per person per client (Client, Person, Hours, Rate, Cost), then sum it back into column D:
=SUMIF(Labor!A:A, A2, Labor!E:E)
Format column G as a percentage and sort by it, lowest first.
Step 3: A worked example
These numbers are hypothetical round numbers, chosen to show how the math works. Labor cost assumes a single $50 loaded rate.
| Client | Revenue | Hours | Labor cost | Direct costs | Gross profit | Margin | Effective rate |
|---|---|---|---|---|---|---|---|
| Client A | $8,000 | 110 | $5,500 | $500 | $2,000 | 25% | $73/hr |
| Client B | $3,000 | 25 | $1,250 | $100 | $1,650 | 55% | $120/hr |
| Client C | $5,000 | 85 | $4,250 | $300 | $450 | 9% | $59/hr |
Client A pays the most. Client B makes the most per hour. Client C pays well but takes almost as much time as Client A and earns very little after costs.
Step 4: Read the results
Margin below your floor. Your floor is the margin each client needs to leave so the agency can pay its overheads and still make a profit. Work it out from your own overheads; it varies a lot by service mix.
Effective rate. If you quote as if your time is worth $100 an hour and a client works out at $59, the gap is scope creep or underpricing.
Where the hours go. For low-margin clients, look at hours by person and task. Often it's the meetings, revisions, approvals and reporting around the work.
Step 5: Decide what to do
| Action | When it fits |
|---|---|
| Reduce hours | The time goes to meetings, approvals or reporting you can batch or template |
| Change the scope | One deliverable takes far more time than it's priced for |
| Raise the price | The work is right but the rate is too low; use the effective rate to size the increase at renewal |
| Let them go | None of the above is realistic, and the client uses capacity a better client could fill |
Steps you can take today
- Export last month's invoices and write down revenue per client.
- Ask your team for hours per client last month; estimates are fine.
- Calculate a loaded hourly rate for everyone, including yourself.
- Build the eight-column sheet above and sort by margin, lowest first.
- For the bottom two clients, write one sentence on why their margin is low.
- Put a reminder in your calendar to update the sheet on the first working day of each month.
FAQ
How do I calculate profit margin per client?
Subtract the client's labor cost and direct costs from their revenue to get gross profit, then divide gross profit by revenue. Labor cost is each person's hours on that client multiplied by their loaded hourly rate.
What is a loaded hourly rate?
It's what a person actually costs you per hour of client work: their full monthly cost, including taxes and benefits you pay, divided by the hours they spend on client work. It's higher than their wage because not every working hour is billable.
What if my agency doesn't track time?
Ask each person to estimate their hours per client for last month. The numbers won't be exact, but they'll show the big differences between clients, which is what you need for a first pass.
What is a good profit margin per client for an agency?
It depends on your overheads and service mix, so work out your own floor: the margin each client must leave to cover overheads and still make a profit. Clients well below that floor need attention.
What should I do about an unprofitable client?
First look at where the hours go, then reduce hours, change the scope or raise the price at renewal. If none of those is realistic, letting the client go can free capacity for a more profitable one.
How often should I review client profitability?
Update the sheet monthly and look at three months together before making big decisions. Single months can be distorted by launches or onboarding work.
Should I include my own time in the calculation?
Yes. Value it at what it would cost to hire someone to do your client work. Counting your time as free makes margins look better than they are.
Get your agency listed on AgencyListed (free)
Buyers use AgencyListed to find agencies by service and city. A complete listing shows them what you do, where you work and who you work with. Verified listings carry a badge, so buyers know the details came from you.
It’s free and takes a few minutes. Not sure if you’re already here? Look up your agency and claim it.