Agency operations

Six places agency build margin quietly disappears

Agencies rarely lose money on build work in an obvious way. The project delivers, the client pays, the invoice clears. Then someone runs the numbers at the end of the quarter and the build department has made almost nothing, and nobody can point to the moment it happened.

It happened in about six places, none of which were large enough to notice on their own.

The short version:

  • Margin leaks in six places, each a few percent, none visible alone
  • Time-tracker data from your last ten builds is the fix for bad estimates
  • The real cost of a cheap developer is the senior hours they consume
  • Unsold maintenance returns as free emergency work on closed accounts

Web project estimates miss migration, QA and integrations#

Most build estimates are produced under time pressure, during a pitch, by someone senior enough to be busy. They are usually close on the parts that are visible in the design and badly wrong on the parts that are not.

The pattern we see: page templates get counted, and everything else gets a round number. Content migration, a line item. Integrations, a line item. Browser and device QA, often nothing at all, because it is not a deliverable anyone can picture.

Those three routinely account for a third of the actual hours. On a build quoted at 120 hours, missing them is not a rounding error, it is the margin.

The fix is unglamorous. Keep a record of what your last ten builds actually took, broken down far enough that migration and QA are separate lines. Most agencies have this data in their time tracker and have never looked at it, because looking at it is uncomfortable.

Undefined revision rounds burn agency hours#

“Two rounds of revisions” is in most agency contracts and means very little without a definition of a round.

Without one, a round becomes whatever arrives in the next email. Three notes on Tuesday, four more on Thursday after someone else looked, two more the following week because the client’s own boss saw it. That is seven notes over nine days consuming three separate context switches, and it is being counted as one round.

The version that holds: a round is one consolidated set of feedback, delivered once, within a stated window. Feedback that arrives after the window, or in pieces, is the next round. This sounds rigid written down and is almost never a problem in practice, because it gives the client’s side a reason to gather their own stakeholders before sending, which they would rather do anyway.

Sideways scope creep: same size, double the work#

Obvious scope increases get caught. A client asking for a booking system that was never quoted will trigger a conversation.

What does not get caught is scope moving sideways at constant size. The homepage hero becomes a different hero. The card layout becomes a different card layout. Each swap is roughly the same amount of work as what it replaced, so it does not feel like an increase, and nobody raises a change order for something that is not bigger.

But the replaced version was already built. The work is not the same size, it is double, and it happens two or three times per project without a single conversation about cost.

You do not need to charge for every one of these. You do need to say out loud that it is a change, so the client understands they are spending something. Most will still do it. Some will decide the first version was fine.

Why the cheapest outsourced developer costs the most#

This is the one agencies learn by paying for it.

A build quoted at 35 dollars an hour against one quoted at 85 looks like an easy decision on a spreadsheet. What the spreadsheet does not contain is the time your team spends specifying in more detail than should be necessary, reviewing work that missed the design, explaining the same feedback twice, and eventually fixing things internally because the third attempt still is not right.

That time comes from your senior people, whose cost is the highest in the building, and it is almost never billed to the client. A 35 dollar developer who needs six hours of your project manager and two of your design lead has not saved you anything. They have moved the cost from a line item you can see to one you cannot.

The question worth asking is not the hourly rate. It is how many hours of your team a given developer consumes per hundred hours of their own work. That number varies enormously and is the one that actually determines your margin.

Price website handoff and documentation as real work#

Build ends, project closes, and then someone spends a day and a half writing documentation, recording a walkthrough, and answering the client’s questions for a fortnight. None of it was quoted.

Handoff is real work with a real cost. It should appear in the estimate as its own line, partly to get paid for it and partly because a client who sees it costed will make better decisions about how much of it they want.

It is also the moment where a good build becomes a repeat client. A client who can confidently publish their own pages comes back. One who has to email every time they need a landing page comes back too, but resentfully, and treats the next quote as an expense rather than an investment.

Sell website maintenance with the build, not after it#

The final leak is the one that looks like new revenue.

A build that shipped without a defined maintenance arrangement will return as a series of small urgent requests. A plugin conflict. A form that stopped delivering and nobody knows for how long. A page that needs to go up before a campaign launches tomorrow.

Each is too small to quote properly, so it gets absorbed. Absorbed enough times, it is a part-time job you are doing for free on an account you already closed out.

The alternative is to sell the maintenance arrangement alongside the build, at a price that reflects it being an availability commitment rather than a bucket of hours. Some clients decline, and that is fine, because now the emergency request is a quoted job rather than a favour.

How to audit your agency build margin this quarter#

None of these are dramatic. Each one costs a few percent, and a few percent taken six times is the difference between a build department that funds the agency and one that quietly subsidises the strategy work.

The useful exercise is to take your last three builds, pull the real hours, and mark which of these six applied. Most agencies find four of them. Knowing which four is enough to fix next quarter’s numbers without changing what you sell or what you charge.

Frequently asked questions#

What margin should an agency make on outsourced build work?#

Healthy white-label arrangements typically leave the agency a 40 to 60 percent markup on the build cost. If your realised margin is under 25 percent after counting internal review time, one of the six leaks above is running.

Should agencies bill hourly or fixed price for website builds?#

Fixed price for defined builds, hourly blocks for continuous work. Hourly billing on a defined build rewards slow work and makes your own quote to the client a guess.

How do you define a revision round in a contract?#

One consolidated set of feedback, delivered once, within a stated window. Feedback arriving after the window or in fragments is the next round. Clients rarely object, because the definition gives them a reason to gather their stakeholders before sending.

Written by

Kashti Shah

Founder of KRH Creations, a Houston-based white-label development partner for US digital agencies.

Connect on LinkedIn →

Have a project instead of a question?

We build under your brand, on a US contract, with one Houston-based point of contact. Send a brief and judge us on the estimate.