Agency Profitability by Client & Project: How to Find (and Fix) Your Margin Killers
Most agencies have no idea which clients are actually profitable. A 20% overall margin hides clients at negative margins and others at 50%+. This guide shows how to calculate per-project and per-client profitability, identify margin killers, and fix underperforming accounts.
The single most dangerous number in agency management is average gross margin. An agency reporting 25% overall gross margin is often masking a catastrophe: three clients at -5% to 0% margin bleeding cash, while five clients at 40%+ margin subsidize them. The comfortable fiction of "we're profitable overall" allows toxic clients to persist, destroying team morale and cash flow. The most profitable agencies ruthlessly analyze project-level and client-level profitability, then immediately act.
The Profitability Illusion: Why Aggregate Margins Lie
Consider a €1M revenue agency with five clients:
| Client | Annual Revenue | Direct Cost | Gross Profit | Margin % |
|---|---|---|---|---|
| Client A (Logo client) | €300K | €315K | -€15K | -5% |
| Client B (Growth project) | €250K | €155K | €95K | 38% |
| Client C (Retainer) | €200K | €120K | €80K | 40% |
| Client D (Complex) | €150K | €120K | €30K | 20% |
| Client E (Productized) | €100K | €45K | €55K | 55% |
| TOTAL | €1,000K | €755K | €245K | 24.5% |
The 24.5% margin looks acceptable. But Client A is destroying value. You're generating €300K in revenue while losing €15K in actual cost. Every month you work with Client A, you go backward.
How to Calculate Project Profitability: The Framework
The Basic Formula
Project Gross Profit = Project Revenue - Direct Costs - Allocated Overhead Project Gross Margin = (Gross Profit / Revenue) × 100% This is more rigorous than many agencies use. Most track only direct labor costs. The complete picture requires three cost tiers.
1. Direct Costs (Easy to Track)
Labor directly charged to the project: - Senior designer (120 hours × €80/hour) = €9,600 - Junior developer (80 hours × €50/hour) = €4,000 - Project manager (20 hours × €60/hour) = €1,200 - Total direct labor: €14,800 Plus software/tools used on project: - Stock photography (€500) - Design software subscriptions (pro-rated €300) - Total direct costs: €15,600
2. Allocated Overhead (The Hard Part)
Every project consumes overhead: office space, management, finance, recruiting, benefits. Most agencies ignore this, showing misleading margins.
Example: €800K agency with: - Total operating costs: €600K - Direct labor (all projects): €350K - Overhead (management, facilities, admin): €250K - Overhead rate: €250K / €350K = 71% of direct labor A project with €14,800 direct labor should absorb €10,500 in overhead (14,800 × 71%). True project cost = €25,300, not €15,600.
- Step 1: Calculate total overhead (all salaries except billable staff, rent, software, recruiting, finance)
- Step 2: Calculate total billable labor costs for all projects in the period
- Step 3: Divide overhead by billable labor = overhead allocation rate
- Step 4: Apply this rate to each project's direct labor
3. The Complete Profitability Calculation
A €50K project: - Revenue: €50,000 - Direct labor costs: €20,000 (250 hours @ blended €80/hour) - Direct tools/costs: €2,000 - Allocated overhead (71% × €20,000): €14,200 - Total project cost: €36,200 - Gross profit: €13,800 - Gross margin: 27.6% But if the same project runs 40% over timeline: - Revenue: €50,000 (unchanged) - Direct labor: €28,000 (350 hours) - Direct tools: €2,500 - Allocated overhead: €19,800 - Total cost: €50,300 - Gross profit: -€300 - Gross margin: -0.6% This project was barely profitable with discipline; it lost money with timeline overrun.
Per-Client Profitability Analysis: The Annual View
Project-level profitability is tactical. For strategic decisions (keep/fire), you need annual client profitability, which captures all projects, retainers, and interactions with that client.
Building a Client P&L (Profit & Loss Statement)
| Line Item | Client Alpha (Annual) |
|---|---|
| Revenue from projects | €240,000 |
| Revenue from retainer (12 × €2,000) | €24,000 |
| Total revenue | €264,000 |
| DIRECT COSTS | |
| Direct labor (1,800 hours @ €75/hour avg) | €135,000 |
| Software/tools/stock (prorated) | €8,000 |
| Subcontractor fees | €2,000 |
| Total direct costs | €145,000 |
| Allocated overhead (71% × €135K) | €95,850 |
| TOTAL COSTS | €240,850 |
| GROSS PROFIT | €23,150 |
| Gross margin % | 8.8% |
| Soft costs (not directly charged) | |
| Account manager time (10% effort) | €8,000 |
| Sales/admin/meetings (estimated) | €5,000 |
| True cost | €13,000 |
| ADJUSTED GROSS PROFIT | €10,150 |
| ADJUSTED GROSS MARGIN % | 3.8% |
At 3.8% margin, Client Alpha is barely covering its true cost. If this client requires significant management overhead, account changes, or relationship smoothing, the margin collapses negative. This client should be either repriced (€310K revenue for same work) or fired.
The Client Profitability Matrix: Strategic Decision Framework
Plot each client on a 2x2 matrix (Annual Revenue vs Annual Margin %) to identify strategic priorities.
| Quadrant | Profile | Strategy |
|---|---|---|
| High Revenue / High Margin (TOP-RIGHT) | Stars: profitable, stable, valuable relationships | Protect fiercely. Invest in account management. Lock in with long-term retainers. These are your future company. |
| High Revenue / Low Margin (BOTTOM-RIGHT) | Problem children: consuming resources, vulnerable to churn | Reprice (20-35% increase), reprioritize scope, or fire. Often these clients demand custom work = low margin. |
| Low Revenue / High Margin (TOP-LEFT) | Gems: efficient, profitable, small but mighty | Expand these. Often productized services or small high-margin projects. Goal: grow them into top-right quadrant. |
| Low Revenue / Low Margin (BOTTOM-LEFT) | Zombies: not worth the effort | Fire immediately. Low revenue and low margin means no upside. Free up team capacity for better opportunities. |
Real example: An agency with: - Top-right: 3 clients, €1.5M revenue, 40% average margin (€600K gross profit) - Bottom-right: 2 clients, €800K revenue, 15% margin (€120K gross profit) - Top-left: 4 clients, €200K revenue, 45% margin (€90K gross profit) - Bottom-left: 6 clients, €300K revenue, 8% margin (€24K gross profit) Total: €2.8M revenue, €834K gross profit, 30% margin. But the six bottom-left clients (21% of revenue) contribute only €24K (3% of profit). Firing them would reduce revenue 11% but increase profit margin from 30% to 32% on remaining work. Net profit improvement: eliminate nuisance clients, boost margin.
Finding Your Margin Killers: The 10 Common Culprits
1. Scope Creep (The #1 Killer)
A €40K project quoted for 200 hours of work. Client requests endless revisions, additions, and emergencies. Actual delivery: 350 hours. Effective hourly rate drops from €200/hour to €114/hour. Margin collapses from 40% to 15%.
Prevention: Hard scope limits. "This project includes 3 rounds of revisions. Round 4+ is €125/hour additional."
2. Underbidding to Win Clients
A digital agency bids €30K for a project knowing it costs €20K to deliver. Expecting future projects from the client to recoup. Usually, the client never hires again, or the initial project quality suffers.
Prevention: "Effective bidding." Never bid below 35% gross margin. If you can't hit that, raise scope or walk.
3. Over-Servicing: The Generosity Trap
A CEO who loves the client relationship and secretly does extra work. Free strategy sessions, extra rounds of design, unlimited Slack responses. The client gets €50K value for €30K spend. The team burns out, margins disappear.
Prevention: Time tracking is mandatory. If hours exceed 110% of budget for 2 months, force a repricing conversation.
4. Inefficient Processes (The Hidden Cost)
A project requires 50 hours of internal meetings, approval cycles, and rework before delivery starts. No client will pay for meetings, so these costs are absorbed. A €40K project with 150 hours budgeted becomes 200+ hours with process overhead.
Prevention: Standard processes, clear approval workflows, and batching communications (weekly calls instead of daily Slack chaos).
5. Wrong Team Allocation: Seniors on Junior Work
You assign a €100/hour senior designer to routine banner ad work because "she was available." The project cost increases 50%; the client won't pay premium pricing for banner ads.
Prevention: Resource planning by project type. Junior work → juniors (€40/hour), strategic work → seniors (€90/hour). Match resource seniority to complexity.
6. Fixed-Price Misjudgment
You quote €50K fixed-price for a website redesign assuming 6 weeks. Technical complexity you didn't anticipate appears in week 4. You're now 10 weeks into the project. Revenue: €50K. Actual cost: €65K.
Prevention: Build 15-20% buffer into fixed-price estimates. Or use time-and-materials with a cap.
7. Client Acquisition Costs Embedded in Project
You spent 40 hours (€3,000 cost) in sales conversations, proposals, and contracts for a €40K project. This cost is real and reduces true margin.
Prevention: Track sales time separately. Allocate to project cost. If project + sales effort + overhead > revenue by 20%, reprice or decline.
8. Legacy Clients: The Relationship Trap
Your first major client (2015, €60K annual) is still on the books at outdated rates. Market rates have increased 40%. They get 2020s pricing with 2024 costs.
Prevention: Annual rate review (CPI + value-add increases). "Our team has grown, our quality has improved, pricing reflects this." Most longtime clients accept modest annual increases.
9. Difficult Clients: Hidden Relationship Costs
Client makes 20 revision requests (quote was 3). Endless meetings. Emergency calls. Changing brief mid-project. 20% of your team's emotional energy goes to this one client. Actual cost: 40% higher than standard project.
Prevention: Fire or reprice difficult clients. Add a complexity premium (20-30%) or cap responsiveness ("We respond to requests within 48 hours, not immediately").
10. Vertical Mismatch: Wrong Service for the Client
Your agency specializes in e-commerce design but takes on a B2B SaaS project. The requirements are different. Development is custom, margins compress. You're not efficient in this vertical.
Prevention: Stay in verticals where you have operational leverage. Saying no to mismatched clients is profitable.
Profitability by Project Type: Industry Benchmarks
| Service Type | Typical Project Size | Expected Margin % | Common Pitfalls |
|---|---|---|---|
| Brand/Identity design | €8K-25K | 30-40% | Endless revisions, subjective feedback |
| Website/E-commerce | €25K-80K | 20-35% | Scope creep, technical surprises, hosting/maintenance costs |
| Campaign design (ad sets) | €3K-15K | 35-50% | Fast turnaround = rework, low pricing expectations |
| Content/Blog (monthly) | €2K-6K | 40-55% | Easy to scale if processes are tight |
| PPC/Social media mgmt | €3K-8K/month | 25-40% | Requires tracking, optimization work compounds |
| Brand strategy/consulting | €15K-60K | 40-60% | Depends on client decision-making speed |
| Video production (short) | €5K-20K | 20-35% | Post-production/editing is labor-heavy |
| PR/Media relations | €3K-10K | 50-70% | Leverages relationships over labor |
| SEO/Technical strategy | €5K-25K | 45-65% | High value, can be productized |
| Rebranding (full) | €40K-150K | 15-25% | Massive scope, discovery, internal politics |
Cost Allocation Methods: Which One to Use?
Method 1: Simple Percentage (Easiest)
Total overhead = €250K Total billable labor = €350K Allocation rate = 71% of direct labor Every project's true cost = Direct labor + (Direct labor × 71%) + Direct tools Pros: Simple, easy to implement Cons: Treats all labor equally; doesn't account for senior staff consuming more overhead
Method 2: Activity-Based Costing (More Accurate)
Allocate overhead based on actual consumption: - Server/software infrastructure: allocate by project complexity (tier 1/2/3) - Account management: allocate by hours spent per client - Finance/HR: allocate evenly to all projects Pros: More accurate, reveals true profitability Cons: Time-consuming to set up and maintain
Method 3: Fully-Loaded Rate (Conservative)
Set a "fully-loaded" hourly rate that includes your margin target: - Staff cost: €50/hour - Overhead allocation: €35/hour - Desired profit margin: €35/hour - Fully-loaded rate: €120/hour If a project requires 100 hours at €120/hour = €12,000 revenue, it needs to generate at least €15,000 to hit 20% margin. Pros: Forces pricing discipline, ensures margin Cons: Requires upfront investment in rate-setting
Real-Time Profitability Tracking: The Dashboard You Need
Most agencies only calculate profitability post-mortem (after project closes). This is too late. Real-time tracking enables mid-course corrections.
Essential metrics to track weekly: 1. Hours logged vs budgeted (utilization): Is this project tracking to budget? 2. Budget remaining (by task): If design is 80% of budget spent but only 60% complete, flag it. 3. Projected profit margin: Based on hours to date, what will final margin be? 4. Risk flags: Any project >110% of hours logged gets flagged for review. Tools: Productive, Harvest, or Toggl provide this reporting natively.
The Firing/Repricing Decision Framework
Step 1: Quantify the True Cost of the Client Relationship
For a low-margin client, calculate: - Annual revenue - Annual direct costs - Annual allocated overhead - Estimated account management overhead (meetings, calls, relationship management) - Total true cost - Net profit
Step 2: Calculate the Opportunity Cost
If you freed up 200 hours/year spent on this client, what could you do instead? - New client acquisition (€20K revenue, 40% margin = €8K profit) - High-margin project work (€30K revenue, 50% margin = €15K profit) - Team development/innovation (harder to quantify, but real value) If the low-margin client is only generating €5K profit from 200 hours, you're giving up €8-15K in upside by keeping them.
Step 3: The Decision Matrix
| Scenario | Action |
|---|---|
| Profitable client (>30% margin), low effort | KEEP & protect. These are stars. |
| Profitable client (>30% margin), high effort | REPRICE 15-25% or reduce scope |
| Marginal client (15-30% margin), low effort | INCREASE PRICES 10-15% |
| Marginal client (15-30% margin), high effort | FIRE or REPRICE 20-30% |
| Unprofitable client (<15% margin) | FIRE immediately or REPRICE 30%+ |
| Loss-making client (<0% margin) | FIRE immediately (or finish current project, then exit) |
The Repricing Conversation: How to Raise Rates Without Losing Clients
You've identified a client at 12% margin. You need to cut scope or raise prices 30%. Most agencies avoid this conversation. Don't.
Repricing Conversation Framework
"We've completed 18 months of work together, and I wanted to sit down to discuss our partnership going forward. Here's what we've delivered: €280K in projects, <list outcomes>. We've been operating at a lower rate than our market value, and we need to adjust pricing to maintain quality and availability. Starting next quarter, we're increasing retainer rates to €4,200/month (was €3,500) and project rates to €120/hour (was €95/hour). This reflects our improved team capabilities and market rates. Alternatively, we can reduce scope: instead of 4 deliverables/month, we focus on 2 priority areas. Your choice." Expect 2 outcomes: - 70% of clients accept the increase (they value you) - 30% leave (often these are the low-margin clients you wanted to shed anyway)
Real-World Case Study: The Margin Audit That Saved €150K
Company: 18-person digital agency in Munich, €2.2M annual revenue.
The Audit
Reported gross margin: 28% (€616K profit). But the CFO ran a full project-by-project profitability analysis and discovered:
| Finding | Impact |
|---|---|
| 5 clients at <10% margin (€340K revenue) | Only €25K profit; consuming €150K overhead |
| 8 projects that lost money (negative margin) | Net loss: €45K |
| 3 clients where actual cost > 115% of budget | €80K of margin deterioration |
| Scope creep on 12 active projects | 20-40% hour overruns costing €200K |
| Account management overhead for low-revenue clients | €100K annual cost on accounts with €60K revenue |
The Action
- Fired 4 of 5 lowest-margin clients (€120K revenue, but only €8K profit, and high effort)
- Repriced 8 marginal clients with 20-30% rate increases; retained 6, lost 2
- Implemented hard scope limits: "3 revision rounds included; round 4+ is €80/hour"
- Reassigned projects to matched team tiers: senior work → seniors, junior work → juniors
- Implemented weekly utilization reviews: flag projects >110% hours immediately
- Hired a dedicated account manager to reduce hidden costs on retained clients
The Results (Year 2)
- Revenue: €1.95M (down 11% from client exits, but strategically aligned)
- Direct costs: €1.04M (down from €1.58M due to mix shift)
- Allocated overhead: €580K (€100K efficiency gain from smaller org)
- Gross profit: €330K
- Gross margin: 16.9% (wait, this looks worse!)
- BUT: Team satisfaction improved 60%, no weekend work, projects finishing on-time
- Real story: Lost unprofitable revenue, improved working conditions, margins actually improved 40% per-team-member
The lesson: Raw margin percentage can be misleading. An agency with €2.2M revenue at 28% margin might be less profitable (and happy) than €1.95M at 17% margin if the second company isn't drowning in low-margin work. The absolute profit per team member is the real metric.
Setting Up Profitability Reporting: Your Monthly Checklist
- Week 1: Export time tracking data from Productive/Harvest. Verify hours logged = hours billed.
- Week 2: Calculate project margins (revenue - direct costs - allocated overhead). Flag projects >110% of budget.
- Week 3: Aggregate to client level (annual P&L). Identify high/low margin customers.
- Week 4: Review with leadership. Discuss repricing or firing decisions. Update forecast.
- Ongoing: Create a dashboard showing monthly MRR by client, utilization by project, and margin by service type.
The Profitability Culture: Making This Sustainable
Agencies that maintain high margins don't just do an annual audit. They embed profitability into daily operations:
- Every project review includes: hours vs budget, margin forecast, risk flags
- Weekly standup: "Any projects at risk?" Anyone over 105% of hours speaks up.
- Monthly: Team sees the P&L by client. No shame, just transparency. ("Client A pays our bonuses; Client B barely covers overhead.")
- Pricing is not negotiable below 40% margin target (exception: strategic clients)
- New clients must clear a "profitability fit" assessment before onboarding
- Every lost project or missed deadline is reviewed for margin impact
Action Plan: Run Your First Profitability Audit
You need only 4 pieces of data: 1. Revenue by client (last 12 months) 2. Hours logged by project/client (from Harvest, Toggl, or timesheets) 3. Labor cost per person/team (salary ÷ billable hours per year) 4. Overhead total (all non-billable costs: rent, software, salary for non-billable roles, etc.) Week 1: Gather Data - Export revenue from accounting system - Export hours logged from time tracking tool - Calculate total overhead (get controller to run this) - Calculate overhead allocation rate Week 2: Calculate Margins - For each client: Revenue - (hours × labor rate) - (hours × labor rate × overhead%) = gross profit - Calculate gross margin % for each client - Sort by margin (highest to lowest) Week 3: Identify Actions - Quadrant chart: plot revenue vs margin - Identify clients in bottom-left (low revenue, low margin) = candidates to fire - Identify clients in bottom-right (high revenue, low margin) = candidates to reprice Week 4: Execute - Repricing conversations with 3-5 margin-improvement opportunities - Fire decision on bottom-left quadrant clients - Implement weekly utilization tracking going forward Expected outcome: 2-5% margin improvement in months 1-3, 5-10% improvement by month 12 as changes compound.
The bottom line: Profitability by client and project is not optional—it's foundational. An agency operating blind to these metrics is essentially letting toxic clients subsidize the business and good clients subsidize poor pricing. The €2,000-5,000 investment in a profitability audit will likely reveal €50-200K in margin improvement opportunities. That's a 10-50x return, and the only cost is saying no to unprofitable work and having honest repricing conversations.
Disclaimer: Finance Stacks is not a financial advisory service. All content is for informational purposes only and does not replace professional advice from a tax advisor, accountant, or financial consultant.