Most agencies track revenue but not project profit. Learn the 4 levels of profitability tracking that separate thriving agencies from busy-but-broke ones.
You just had your best revenue quarter ever. So why is the bank account empty?
You billed $180K. Your team was slammed. Clients were happy. You even turned away work because you didn't have capacity.
Then you looked at the bank account. $11,400 in profit. That's 6.3%.
You made less per hour than some of your junior designers.
This is the agency profitability crisis, and it's shockingly common. I've seen agencies doing $2M+ in revenue where the founder takes home less than a mid-level employee at a tech company. Not because they're bad at what they do. Because they have no idea which projects make money and which ones quietly eat them alive.
The Uncomfortable Truth About Agency Revenue
Revenue is vanity. Profit is sanity. Cash is reality.
Most agency owners can tell you their top-line revenue within a few thousand dollars. Ask them about profit per project, and you get a shrug, a guess, or a number they clearly just made up.
Here's why that matters: in a typical agency, 20-30% of projects are actually unprofitable. Not low-margin. Unprofitable. They cost more to deliver than the client paid.
But because everything gets averaged together, the profitable projects subsidize the losers, and the owner never realizes they're running a charity on 30% of their engagements.
The fix isn't working harder. It's tracking smarter.
The 4 Levels of Profitability Tracking
Most agencies stop at Level 1. The ones that actually build wealth get to Level 4.
Level 1: Revenue Tracking
This is what almost every agency does. You know what came in.
- Invoice sent: $15,000
- Invoice paid: $15,000
- Revenue this month: $87,000
You know your top line. You probably have a rough sense of expenses. You can tell if this month was "good" or "bad" based on the bank balance.
The problem: Revenue tells you nothing about whether a project was worth taking. A $50,000 project that took 800 hours is a disaster. A $10,000 project that took 30 hours is a home run. Revenue alone can't distinguish between the two.
Who stays here: About 65% of agencies under $3M in revenue.
Level 2: Project-Level Cost Tracking
Now you're tracking time against projects and multiplying by rates.
For each project, you know:
- Total hours logged by each team member
- Each person's billing rate (or cost rate)
- Direct project expenses (stock photos, freelancers, software licenses)
- The resulting gross margin
This is a huge step up. You can now see that Project A had a 55% margin while Project B had a 12% margin. You can start asking why.
The problem: You're still using billing rates, not true costs. Your $75/hour designer doesn't actually cost you $75/hour when you factor in benefits, PTO, training time, office space, and the 30% of their week that's non-billable. Their true cost is probably closer to $110-130/hour when you load in all the overhead.
Who stays here: About 25% of agencies. Better than most, but still flying partially blind.
Level 3: Loaded Cost Tracking
This is where agencies start making real money, because they finally know what things actually cost.
Loaded cost means you take every expense in the business and allocate it down to an hourly rate per team member. Not just salary. Everything.
Here's how you calculate a loaded hourly cost:
Annual salary: $85,000
Benefits (health, dental, 401k): $17,000
Payroll taxes: $6,500
PTO (15 days × daily rate): $4,904
Training & development: $2,000
Equipment & software: $3,600
Office/overhead allocation: $8,000
Management overhead: $5,000
─────────────────────────────────────────
Total loaded cost: $132,004
Available working hours: 2,080
Non-billable time (30%): -624
Actual billable hours: 1,456
Loaded cost per billable hour: $90.66
Now when that designer spends 40 hours on a project, you know the true cost is $3,626, not $3,000 (at their $75/hour salary rate) or $2,000 (at some made-up internal rate).
The problem: This is backward-looking. You know what happened after the project is done. By then, the damage is already done.
Who gets here: About 8% of agencies. These agencies typically run 25-35% net margins.
Level 4: Predictive Margin Analysis
This is where elite agencies operate. Before a project starts, they forecast the margin based on:
- Scope definition (hours by role)
- Loaded costs per role
- Historical accuracy on similar projects (did the last 5 website builds come in at estimate, or 40% over?)
- Risk factors (new client, vague scope, aggressive timeline)
- A scope creep buffer based on actual data
You quote $25,000 for a project. Before you say yes, you already know:
- Estimated cost: $14,200
- Predicted margin: 43.2%
- Risk-adjusted margin (based on scope creep history): 31.8%
- Minimum acceptable margin: 25%
- Verdict: Green light, with a change order trigger at 120% of estimated hours
Who gets here: Maybe 2-3% of agencies. These are the ones that scale past $5M without the founder having a nervous breakdown.
The "Busy But Broke" Math
Let me show you exactly how an agency can look successful and be dying.
Scenario: Digital agency, 8 team members
Annual revenue: $500,000
Team utilization rate: 80%
Average billing rate: $125/hr
Total billable hours delivered: 4,000
Looks great, right? Let's keep going.
Total payroll (8 people): $340,000
Benefits & taxes: $54,400
Office & overhead: $38,000
Software & tools: $18,000
Insurance: $6,000
Marketing & sales: $12,000
─────────────────────────────────────────────────
Total expenses: $468,400
Net profit: $31,600
Net margin: 6.32%
$500K in revenue. 80% utilization. And the owner made $31,600 before their own salary.
Now here's the thing that guts you: this agency wasn't lazy. 80% utilization is actually pretty good. The team was busy. Clients were being served. Revenue was coming in.
So where did the money go?
Three places:
1. Scope creep consumed 22% of delivered hours
Of those 4,000 billable hours, about 880 were scope creep that never got billed. That's $110,000 in labor that was given away for free. If even half of that had been billed or prevented, the agency would have had $86,600 in profit (17.3% margin).
2. Unbilled internal time was higher than assumed
The 80% utilization was self-reported. Actual tracked billable time was closer to 68% when you removed meetings, internal projects, and "quick favors" for clients that never made it to a timesheet. Those missing hours represent another $60,000 in absorbed cost.
3. Three projects were underwater
Two retainer clients hadn't had their scope renegotiated in 18 months. One project went 3x over estimate because the client changed direction twice. Combined loss on those three: roughly $45,000.
None of this is unusual. This is the default outcome for agencies that don't track project profitability.
Your Project Profitability Tracking System
You don't need enterprise software to start. You need a spreadsheet, discipline, and the willingness to look at numbers that might make you uncomfortable.
Here's the structure:
The Project Tracking Table
| Field |
Example |
Notes |
| Project name |
Acme Corp Website Redesign |
One row per project |
| Client |
Acme Corp |
For client-level rollups |
| Project type |
Website |
Helps benchmark similar work |
| Contract value |
$28,000 |
What the client is paying |
| Start date |
2026-01-15 |
For timeline tracking |
| Target end date |
2026-03-15 |
Original scope deadline |
| Actual end date |
2026-04-02 |
When it actually wrapped |
| Estimated hours |
180 |
Original SOW estimate |
| Actual hours |
247 |
From time tracking |
| Hours variance |
+67 (37% over) |
Red flag indicator |
| Direct costs |
$1,400 |
Stock photos, hosting, etc. |
| Freelancer costs |
$3,200 |
Subcontracted work |
| Loaded labor cost |
$22,329 |
Actual hours x loaded rate |
| Total project cost |
$26,929 |
All costs combined |
| Gross profit |
$1,071 |
Revenue minus total cost |
| Gross margin |
3.8% |
Target: 40%+ |
| Change orders billed |
$0 |
Should have been $8,375 |
| Scope creep hours |
67 |
Hours beyond original SOW |
| Scope creep cost |
$6,052 |
At loaded rate |
That last row is the killer. $6,052 in labor given away because nobody tracked scope against the SOW and triggered a change order conversation.
The Weekly Check
Every Friday, spend 15 minutes on each active project:
- Hours burned vs. budget: Are you on track? If you've burned 60% of hours but only completed 40% of deliverables, you have a problem. Today. Not at the end of the project.
- Scope additions: Did the client ask for anything this week that wasn't in the SOW? Log it. Every single time. Even the "small" ones.
- Projected final margin: Based on current burn rate, what will this project's margin be when it's done? If it's trending below your minimum, act now.
This 15-minute weekly check is the single highest-ROI habit an agency owner can build. I've seen it save agencies $50,000-150,000 per year in leaked profit.
Scope Creep: The Silent Profit Killer
I've worked with dozens of agencies on their operations. Scope creep is the number one reason projects go unprofitable. Not bad estimates. Not high salaries. Not expensive tools. Scope creep.
And it's not usually the big, obvious scope changes. It's the death by a thousand cuts:
- "Can you also make that responsive for tablets?" (4 hours)
- "We just need one more revision round." (6 hours)
- "Can you quickly set up the analytics tracking too?" (8 hours)
- "The CEO wants to see a version with a different color palette." (3 hours)
- "We forgot to mention we need a Spanish version of the landing page." (12 hours)
Each one feels small. Each one feels like good client service. Each one is reasonable in isolation. Together, they're $8,000-15,000 in free labor on a single project.
How to Stop the Bleeding
1. Define scope with painful specificity
Not "website redesign." Instead: "Redesign of 8 pages (Home, About, Services, Contact, Blog Index, Blog Post Template, Case Study Index, Case Study Template) with 2 rounds of revisions per page, desktop and mobile breakpoints, delivered as WordPress theme files."
Every undefined edge is a place scope will creep.
2. Track every out-of-scope request immediately
Don't wait until the end of the project to figure out what was extra. The moment a client asks for something outside the SOW, log it. Even if you decide to eat the cost as a goodwill gesture, you need to know the number.
3. Set a change order trigger at 110% of estimated hours
When a project hits 110% of its hour budget, it automatically triggers a conversation. Not at 150%. Not at 200%. At 110%. By 150%, you've already lost.
4. Make change orders feel normal, not adversarial
The best agencies position change orders as a positive: "Great news -- your project is evolving beyond the original scope, which means we're building something even better. Here's what the additional work looks like."
Clients who push back on every change order are usually clients who weren't profitable to begin with. If you're tracking project profitability properly, you have the data to make that call. For a deeper look at systematizing these kinds of operational controls, see our agency operations playbook.
The Numbers That Actually Matter
If you're going to track project profitability, don't drown in metrics. Focus on these five:
1. Project Gross Margin
Project Gross Margin = (Revenue - Total Project Cost) / Revenue
Target: 40-55% for most agencies. If you're below 30% consistently, you have a pricing problem, a scope problem, or both.
2. Realization Rate
Realization Rate = Billed Revenue / (Hours Worked × Standard Billing Rate)
This tells you what percentage of your work actually gets billed. Top agencies hit 85-95%. Struggling agencies are often at 60-70%. Every percentage point matters. Understanding the unit economics behind your service model makes this metric significantly more actionable.
3. Scope Creep Percentage
Scope Creep % = (Actual Hours - Estimated Hours) / Estimated Hours
Track this per project and as a rolling average. If your average scope creep is above 15%, you have a systemic problem with scoping, client management, or both.
4. Estimate Accuracy by Project Type
Over time, you'll see patterns. Maybe your website builds consistently come in at 130% of estimate, but your brand projects hit 105%. That data lets you pad your estimates intelligently -- or fix the scoping process for specific project types.
5. Profit per Client (Annual)
Zoom out from project-level and look at client-level profitability. Some clients are profitable on paper but consume so much management overhead that they're actually underwater. If a client generates $60,000 in revenue but requires 15 hours/month of account management that isn't billed, you need to know that.
Getting Started This Week
You don't need to jump to Level 4 overnight. Here's the minimum viable profitability tracking you can set up today:
Day 1: Start tracking time. Every hour, every team member, every project. No exceptions. If your team pushes back, explain that you can't protect their jobs if you can't prove the work is profitable.
Day 2: Calculate your loaded cost per hour for each role. Use the formula above. Be honest about overhead allocation. If you're not sure about a number, estimate high.
Day 3: Build the tracking spreadsheet. One row per active project. Fill in the columns from the table above.
Day 4: Run the numbers on your last 3 completed projects. This will probably be uncomfortable. That's the point.
Day 5: Set up the weekly Friday review. 15 minutes per active project. Track hours burned vs. budget, log scope changes, project final margin.
Within 30 days, you'll know exactly which projects are making you money and which ones are killing you. Within 90 days, you'll have enough data to fix your pricing, tighten your scoping, and start saying no to the projects that were never going to be profitable.
And if you want to make sure cash actually shows up in the bank account and not just on paper, pair this system with a solid cash flow forecasting process. Profitability on the income statement means nothing if your cash cycle is broken.
Frequently Asked Questions
What's a healthy project profit margin for an agency?
It depends on your service type and overhead structure, but most well-run agencies target 40-55% gross margin per project. After overhead allocation (rent, admin, sales, marketing), you should aim for 15-25% net margin. If you're below 20% gross margin on a project, something went wrong -- either the pricing was too low, scope expanded without a change order, or the team spent more hours than estimated. Track enough projects and you'll develop benchmarks specific to your agency and project types.
How often should I review project profitability?
Weekly, at minimum. A quick 15-minute check every Friday on each active project is the bare minimum. You're looking at hours burned versus budget, any scope additions from the week, and projected final margin. Monthly, do a deeper review: compare projected margins to actuals on completed projects, look for patterns across project types and clients, and update your loaded cost rates if anything has changed. Quarterly, review client-level profitability and make pricing or scope adjustments.
What tools do I need to track project profitability?
At the simplest level, a spreadsheet and a time tracking tool. Toggl, Harvest, or Clockify for time tracking paired with a Google Sheet using the structure outlined above will get you 80% of the way there. As you grow past 10-15 people, consider tools like Productive, Scoro, or Mavenlink that integrate time tracking with project financials. The tool matters far less than the discipline. I've seen agencies with $50,000 project management platforms that have worse profitability data than agencies using a well-maintained spreadsheet.
How do I handle fixed-price projects versus hourly?
Fixed-price projects actually make profitability tracking more important, not less. With hourly billing, scope creep gets billed automatically. With fixed-price, every extra hour comes directly out of your margin. For fixed-price projects, estimate hours by role before quoting, apply a scope creep buffer (15-25% based on your historical data), and track hours against that budget rigorously. If you're consistently going over on fixed-price work, either your estimates are too optimistic or your scope definitions aren't specific enough.
My team resists time tracking. How do I get buy-in?
Be honest about why you're doing it. "We need to track time so we know which projects are profitable and which ones aren't. If we can't prove our work is profitable, we can't give raises, we can't hire, and we can't invest in better tools." Frame it as a business survival issue, not a surveillance tool. Keep the tracking simple -- project name and hours, not minute-by-minute activity logs. And share the results with the team. When they see that Project X ate 40% more hours than estimated because of constant client revisions, they become allies in pushing for change orders instead of silently absorbing the extra work.
What's the first sign a project is going to be unprofitable?
The earliest warning sign is hours burned versus deliverables completed. If you're 50% through the hour budget but only 30% through the deliverables, the project is heading underwater. The second sign is unlogged scope additions -- when the client is asking for extras and your team is saying yes without flagging it. The third sign is timeline extension. Projects that slip past their deadline almost always blow their budget too, because the extended timeline means more meetings, more status updates, more context-switching for your team, and more "while we're at it" requests from the client.
Stop guessing whether your projects are profitable. If you want help building a profitability tracking system for your agency -- or diagnosing why your margins are stuck despite growing revenue -- book a call with us. We'll look at your numbers together and show you exactly where the money is going.
Related Reading