Seven Signs Your Agency Is Quietly Losing Money on Projects
Most agencies that lose money on projects don't know it — the signals are operational, not financial, and they show up months before the accounts do. Seven signs to check against your own agency, and the data question that confirms or clears each one.
Agencies rarely lose money loudly. The loud failures — a project blowing up, a client walking out — get noticed and dealt with. The expensive failures are quiet: a book of work that ships on time, keeps clients happy, keeps the team busy, and returns less than it costs to run. Nothing about that failure mode triggers an alarm, because every individual signal looks like health.
The signs are operational before they are financial. They show up in how the agency talks about its numbers, how it handles change requests, and how it makes hiring decisions — months before they show up in the year-end accounts.
This piece lists the seven signs I look for when an agency owner tells me things are "fine, mostly". Each one comes with the question to ask your own data. If three or more of them land, the problem is almost never the team or the clients. It is that nobody is computing real project margin — and you cannot manage a number nobody computes.
There is a particular conversation I have had perhaps thirty times, with owners of agencies between twenty and two hundred people. It starts with "we're doing well — busy as we've ever been" and ends, twenty minutes later, with a version of "though honestly, I couldn't tell you which of our projects actually make money."
Neither statement is a lie. Both are true at the same time, and that is precisely the problem. An agency can be busy, respected, growing, and quietly unprofitable on a third of its book — because the signals that would reveal it are not on any dashboard the agency looks at.
When I ran a 120-person agency's delivery operation, we had every one of the signs below at some point, and noticed most of them late. This piece is the checklist I wish someone had handed me earlier: the seven signs, why each one happens, and the question to put to your own data to confirm or clear it.
Sign 1: you're busier than ever, and the bank balance doesn't move
The team is at capacity. Everyone is billable. New work keeps landing. And the cash position at the end of each quarter looks stubbornly like the one before.
Busyness feels like profit because in the easy case they correlate: an idle team certainly loses money. But once a team is reasonably busy, the question is no longer how many hours are billable — it is what each hour earns against what it costs to deliver. A team can run at 90% utilisation and still lose money: busy on discounted work, busy with seniors delivering junior-priced tickets, busy on generously logged internal hours.
The question to ask your data: what is our real margin per head, per team, this quarter — not utilisation, margin? If you cannot answer within a day, that is the finding.
Sign 2: every project reports green, but the year lands red (or thin)
Each project review says on track. The delivery leads are honest people. And yet the annual accounts return a single-digit net margin that nobody can trace back to any specific project going wrong.
This happens when the agency has a roll-up view but not a project view. Labour margin per project looks fine; overhead is subtracted from total revenue once, at the end, at company level. The overhead never lands on any individual project — so no individual project ever looks responsible for it. The gap between a labour margin and a real project margin at a typical agency runs 25 to 40 percentage points. A book of "55% margin" projects can quite easily produce an 8% year.
The question to ask your data: if we allocate last month's full overhead across last month's projects, pro-rata to revenue, which projects go red?
Sign 3: you learn December's margin in February
The monthly close takes weeks. By the time finance can say what a project cost in December, it is deep into the new year, the team has moved on, and the decisions that number should have informed — staffing, scope, pricing of the renewal — were all taken without it.
Margin that arrives after the project ends is a post-mortem, not a control. The uncomfortable corollary: if your margin figure is only ever produced by the monthly close, then during the months a project is actually running — when someone could still intervene — the agency is flying on estimates and goodwill.
The question to ask your data: for any project currently in flight, what is its margin today? Not last month's. Today's. If the honest answer is "we'll know at close", every in-flight project is unmanaged on the one axis that pays the wages.
Sign 4: the margin number changes depending on who you ask
Finance says the project made 20%. The delivery lead says 45%. The sales director remembers pitching it at 60%. All three are looking at real documents.
This is not dishonesty — it is three different definitions wearing the same word. Sales quotes margin on the estimate. Delivery quotes labour margin from the timesheet at role rates. Finance quotes something closer to the truth, weeks later, with overhead in it. When the same word means three numbers, meetings about profitability turn into meetings about whose spreadsheet is right, and the actual question — should we do this kind of project again, at this price? — never gets answered.
The question to ask your data: do we have one written definition of project margin that sales, delivery and finance all compute the same way? One agency I know printed the formula and taped it to the wall of the meeting room. Crude, effective.
Sign 5: your biggest account is priced on history, not on cost
There is a client the agency has served for years. The rates were set long ago, the relationship is warm, and nobody has re-derived the price from the actual cost of delivery since — because the account is large, and large feels like profitable.
Invoice value and margin contribution are different rankings. Some of the biggest accounts by revenue sit mid-table or lower on real margin, because familiarity breeds scope generosity: the quick favours, the extra calls, the senior people the client specifically asks for. When we finally ran the numbers properly at my agency, we cancelled three client relationships in the first quarter — and one of them had been in our top five by invoiced revenue.
The question to ask your data: rank clients by rolling twelve-month real margin contribution, not by invoiced revenue. Compare the two lists. The differences are the conversation.
Sign 6: change requests ship as favours
A client asks for a small extra. Someone says "of course" — shipping is the priority, the relationship matters, and the paperwork can wait for the next call. The next call has its own agenda. By the end of the project, fifteen or twenty days of work have been delivered that no invoice ever mentions.
Individually these are small, defensible, even good decisions. Collectively they are a category: unbilled scope. Across a portfolio of active projects it compounds into a six-figure annual leak that appears on no margin report — because margin reports are built from invoices and timesheets, and this work, by definition, only ever made it into one of the two.
The question to ask your data: for the last five finished projects, compare hours logged in Jira against hours accounted for on invoices. The gap has a cost. Someone paid it, and it wasn't the client.
Sign 7: hiring decisions are made on busyness, not on margin
The team is stretched, so the instinct is to hire. But "stretched" is a capacity signal, and hiring is a margin decision. Adding a person to a team returning healthy margin per head compounds the health. Adding a person to a team that is busy-but-thin multiplies the thinness — you have just raised the cost base of a book of work that wasn't covering the old cost base.
Agencies that don't compute margin per team make this call on feel, and feel is systematically biased towards hiring: everyone can see the stretched team, nobody can see the thin margin.
The question to ask your data: real margin per head, by team, before every hiring decision. A team returning strong margin per head can absorb another salary. A team returning a rounding error cannot, no matter how busy it looks.
What the seven signs have in common
Read the list again and one thing repeats: none of these problems is caused by bad people, lazy teams or difficult clients. Every one of them is caused by a missing number. The agency is steering by the numbers it has — utilisation, invoice value, the annual close — because the number it needs, real project margin computed continuously, isn't produced by any tool it currently runs.
That is fixable, and the fix is smaller than most owners expect. The inputs already exist: the hours are in Jira, the salaries are in payroll, the overhead is in the management accounts. What is missing is the layer that joins them — each person's hours at their fully-loaded cost, overhead allocated pro-rata onto each project, unbilled scope counted rather than forgiven — and reports the result while the project is still alive.
That layer is what Saldo is: read-only on top of your existing Jira, no workflow changes, real margin per project and per team, continuously rather than at close. If some of the seven signs landed uncomfortably, the 15-minute demo runs on your real Jira data — you will see your own projects ranked by real margin before the call ends, and the numbers stay yours.
The shorter version: agencies don't usually lose money on projects because something dramatic went wrong. They lose it quietly, in the gap between the numbers they watch and the number that matters. The seven signs are what that gap looks like from the inside.
Continue inside Saldo