Margins don’t drop for no reason. They leak out in small amounts nobody notices, like the micro-transactions on my kids’ Roblox accounts. An estimate that was light to begin with. An out-of-scope request you absorbed because you were feeling nice. Hours worked and never billed. A senior designer doing work you budgeted for a junior one. Each leak is too small to argue about. Together, they explain how an agency can be fully booked and still barely profitable.
None of this shows up on your income statement. It shows up in the gap between what a project was supposed to earn and what it actually earned. That’s where to look.
What margin leakage actually is
Two numbers define it. It’s hope vs. reality.
Margin at estimate is the margin you designed into a project before it started: estimated fee minus estimated cost, divided by the fee. It’s what you were shooting for when you priced the work.
Project margin is what the project actually earned after labor and expenses. Leakage is the distance between the two.
Here’s an example with round numbers. You sell a $50,000 website at a fixed fee. Your estimate puts labor cost at $22,500, so margin at estimate is 55 percent. The team ends up working 25 percent more hours than planned. Cost climbs to $28,125, and project margin drops to about 44 percent. Nobody lost the client. Nobody missed the launch. Eleven points of margin are gone, and the project still gets called a success.
The leaks come from four places.
The estimate was light before anyone started
People are notoriously bad at predicting how long their own work will take, and the error mostly runs one way. In a 1994 study in the Journal of Personality and Social Psychology, Roger Buehler, Dale Griffin, and Michael Ross asked honors students when they’d finish their theses. The average prediction was 33.9 days. The average actual was 55.5. Fewer than half finished by the date they gave for the case where “everything went as poorly as it possibly could.”
Agency estimates come from the same optimistic people, usually while trying to land on a number the client will accept. The bad estimate isn’t the leak. Every estimate is wrong. The leak is never checking. If nobody compares estimated hours to actual hours, by role, when a project closes, the next estimate gets built on the same assumptions as the last one.
Scope grew and nobody wrote a change order
In a 2025 survey of 273 managers and executives at U.S. agencies, Ignition found that 78 percent rarely or only sometimes charge for out-of-scope work, and 30 percent say scope creep costs them more than $5,000 a month. Ignition sells billing software, so it has a stake in the answer, but the pattern won’t surprise anyone who’s run an agency.
It rarely looks like a big new request. It looks like a third round of revisions on a two-round contract, one more page template, a check-in call that turns into a workshop. Each one is small enough that asking for money feels petty. That’s exactly why it leaks.
I’ve lived it. Years ago, my agency redesigned the website for a well-known e-commerce brand. The statement of work capped us at 297 hours, split into buckets for definition, concepting, and delivery. The client’s internal reviews kept going, round after round, and the concepting hours were gone before our design “blitz” (our name for it back then) was finished. We had a plan for exactly this: issue a change order or cut deliverables. I went back through the invoices recently, and no change order ever went out. I’m fairly sure we ate the overrun, because they were a big name and we wanted them. No single round was worth a fight. All of them together were.
Most of the fix happens before the contract, which I covered in Project Definition Before Discovery and You Should Be Intentionally Vague in Your Contracts. Once work starts, the rule is simple. A request outside the agreed scope gets a change order or a deliberate decision to give it away. Either is fine. Absorbing it by default isn’t.
Hours were worked and never billed
Unbilled time comes in two forms. The first is work that never makes it onto a timesheet, which is most of the argument in Nobody Likes Timesheets. Keep Them Anyway. The second is hours that get logged and then quietly trimmed before the invoice goes out.
Two numbers catch the second one. Givebacks are logged hours you didn’t charge for, divided by billable hours. I’d keep that under 10 to 15 percent. Realization is what you invoiced divided by what those billable hours were worth at your standard rate. Healthy is 85 to 95 percent.
Writing off hours isn’t automatically wrong. Doing it on purpose to protect a good relationship is a business decision. It turns into leakage when nobody decides. A project manager trims the invoice because the total looks high, the client never learns there was a discount, and you get no credit for the generosity.
The wrong people did the work
Fixed fees hide this one best. Every estimate assumes a mix of roles. Say a job was priced with a mid-level designer doing most of the production, and a senior designer ends up doing it because she was free, or because the client asked for her. The hours can land right on the estimate and the cost still runs over, because senior hours cost more.
That last part is more common than it sounds. At my agency, some clients came to us specifically because of a few people on the team: the ones who spoke at conferences and wrote the articles everyone passed around. Our line was that there was no B team, and that was true. Everybody was vetted and at the top of their game. But now and then we’d put one of the well-known names on a project anyway, mostly so the client felt they were getting what they’d signed up for. It was annoying, and it was almost never in the estimate.
If a client is buying a specific person, price that person. Otherwise you’re paying for their visibility out of your own margin.
My metrics page says never to quote a blended rate without knowing the staffing mix behind it. The same goes for checking one after the project wraps.
Why busy agencies miss it
Busy feels like profitable. It isn’t the same thing. Promethean Research’s 2026 State of Digital Services surveyed 119 digital agency owners and managers and put average after-tax net margin at 13 percent for 2025. Respondents ranked profit margins alongside sales and lead generation as their biggest concerns heading into 2026. Across professional services more broadly, Service Performance Insight’s 2026 benchmark of 509 organizations found billable utilization fell to 66.4 percent in 2025, the lowest in the survey’s history, according to Certinia’s summary of the report.
Neither number tells you where your own agency is leaking. That’s the point. Firm-wide totals blend the projects that made money with the ones that didn’t, and the income statement does the same thing. Leakage only shows up project by project, and only if you have hours, cost rates, and revenue tied to each project.
How to find your leaks
Pull every project that closed in the last twelve months. For each one, put margin at estimate next to project margin and sort by the gap. Then look hard at the worst ten. Same client? Same type of project? Same contract structure? Same role running over? Most businesses find one client, one contract type, or one role eating the margin, and they’re usually surprised which.
Once you know the pattern, the fix is almost always one of the four above. Estimate that role or project type differently. Put a change-order step where requests come in. Decide givebacks out loud. Staff to the plan you priced.
If you can’t run this exercise because hours, cost rates, or project revenue aren’t tracked, that’s your first finding.
When a gap isn’t a leak
Some gaps are on purpose. A first project priced low to win a relationship, a portfolio piece, a pilot you wanted to learn from: write down the margin you expect to give up before you start, and judge the project against that number instead of your usual target. A planned loss is an investment. An unplanned one is a leak.
Retainers leak differently. A capped retainer bleeds month by month when the cap gets hit early and the work keeps going, so check those monthly rather than waiting for an end date that may never come.
Margin doesn’t vanish. It walks out in pieces you agreed to without noticing. Go count them.
