← All posts
Client Management9 min read

Why Agency Projects Run Over Budget: Where the Extra Hours Go

Agency projects run over budget on small requests nobody logs, rework after late feedback and hand-offs, more than on bad estimates. How to spot it early.

Why Agency Projects Run Over Budget: Where the Extra Hours Go

Agency projects run over budget so often that most agencies keep a ready explanation: the estimate was wrong. So the next quote gets a buffer, and the next project runs over anyway. On a fixed-fee job, the hours that sink the margin usually come from three places no estimate covers: small requests nobody logs, rework after late feedback, and hand-offs between people. All three show up while the project is still running if every request is a row instead of a message, such as a row on the project's sheet in Atwork.

How often do agency projects run over budget?

Close to half of all projects do. In PMI's 2018 Pulse of the Profession, a survey of 4,455 project practitioners, only 57% of projects finished within their initial budgets, and 52% experienced scope creep, up from 43% five years earlier.

PMI's figures span many industries. Agency-only data is thinner, and most of it comes from vendors who sell time tracking. The most useful is a 2018 survey by Function Point and the Agency Management Institute, based on more than 400 responses from North American creative agencies and in-house marketing teams. In it, 49% said their agency has no repercussions for over-servicing.

On a fixed fee, the overrun is yours. The client's price does not move, so every extra hour comes straight off the margin. Choosing between project and retainer pricing is choosing who carries that risk. This post is about what happens once you carry it.

Is the estimate really the problem?

The estimate is a smaller cause than agencies think. When PMI asked practitioners why their projects failed, inaccurate cost estimates (28%) and inaccurate task time estimates (25%) ranked below changes in project objectives (37%) and inaccurate requirements gathering (35%). In our experience, estimates are usually close for the work they describe. The overrun lives in the work they never described.

Primary cause of failed projectsRespondents naming it
Change in organization's priorities39%
Change in project objectives37%
Inaccurate requirements gathering35%
Inaccurate cost estimates28%
Poor change management28%
Inaccurate task time estimate25%

Source: PMI Pulse of the Profession 2018, six of the 16 causes it named. Respondents could pick up to three, so the column does not add up to 100%.

The estimate is not innocent, and agencies say so themselves. In the Function Point survey, 49% named projects not being scoped or budgeted properly as the main barrier to effective project management, and 44% were not confident in the accuracy of their time tracking. If you can't trust the actual hours, you can't tell an estimate that was wrong from work that grew.

Padding the next estimate pays for this project's leaks in advance. It doesn't find them.

Where do the extra hours go?

The extra hours go into three kinds of work that sit outside every estimate: small requests that get done but never logged, rework after feedback that arrives late, and hand-offs where one person briefs another. Each one is too small to raise on the day it happens. Together they are where a fixed-fee project's margin goes.

A stacked bar chart for an example fixed-fee site rebuild sold at 120 hours: planned work took 118 hours, then small requests added 16, rework 12 and hand-offs 8, for 154 hours in total, 34 hours or 28% over the fee
A stacked bar chart for an example fixed-fee site rebuild sold at 120 hours: planned work took 118 hours, then small requests added 16, rework 12 and hand-offs 8, for 154 hours in total, 34 hours or 28% over the fee

Take phase one of a site rebuild, sold at 120 hours. The planned work came in at 118. The estimate was two hours out. The project was thirty-four: small requests added 16 hours, rework 12 and hand-offs 8.

Small requests nobody logs

"Can you just add a careers page to the sitemap?" arrives in a chat, takes forty minutes, and is done before anyone thinks to write it down. PMI's report describes exactly this when it defines scope creep: "Essentially, more work is added than originally planned. This work cannot be absorbed without the project missing one or more objectives—or passing up opportunities." The fix is a rule to log, not a rule to refuse, which the change request nobody sends covers in detail.

Rework after late feedback

Feedback that lands after the next stage has started costs twice: once for the change, and again for undoing the work built on top of it. A third round on the homepage wireframe is rework, but on most boards it looks like progress. A round count on each deliverable shows it, and why revision rounds multiply covers the approval habits behind it.

Hand-offs between people

Every time work moves from strategist to designer, or from designer to a freelance developer, someone spends an hour explaining what the brief left out. Nobody estimates that hour, because nobody thinks of it as work. It shrinks when decisions are written on the work as they are made, so the brief does most of the explaining.

How do you see an overrun while the project is still running?

Make every request a row with two fields: what kind of work it is, and how many hours it took. When small requests, rework and hand-offs sit as rows next to the planned work, the overrun shows up as a running total in week three, not as a surprise in the wrap-up meeting.

In Atwork, that is a sheet. The Agency Client Delivery template gives every deliverable a Round number and an Estimate (hours), and every brief its Budget hours. Add two fields to the Deliverables sheet: Type, with the options Planned, Small request, Rework and Hand-off, and Hours. A Chart over the sheet then sums Hours by Type. Requests that arrive by email don't need retyping: give the client's sheet its own email address, put the client's domain on its allow list, and each email arrives as a new row.

The Deliverables sheet for the site rebuild with a Type column showing Planned, Small request, Rework and Hand-off, a Round column and an Hours column, beside three Chart widgets: a Number widget showing 97 hours logged, a Number widget showing an average round of 1.4, and a Bar widget summing Hours by Type to 70 planned, 13 on small requests, 9 on rework and 5 on hand-offs, out of a 120-hour budget
The Deliverables sheet for the site rebuild with a Type column showing Planned, Small request, Rework and Hand-off, a Round column and an Hours column, beside three Chart widgets: a Number widget showing 97 hours logged, a Number widget showing an average round of 1.4, and a Bar widget summing Hours by Type to 70 planned, 13 on small requests, 9 on rework and 5 on hand-offs, out of a 120-hour budget
DimensionRequests in email and chatAtwork
Where a small request livesA thread, a DM or a call noteA row on the project's sheet
Counted against the budgetOnly if someone remembersYes, Hours summed by Type
Rework visible as reworkNo, it looks like progressYes, a Type and a Round number
When you see the totalAt the wrap-up, if everAny day, on the Chart
Effort for the clientNone: they already write emailA little: they write to the sheet's address
Records the hours for youNoNo, someone still enters them

What do you tell the client at 80% of the budget?

Tell them what the rows show: how much of the budget is used, how much of the planned work is done, and what the other hours went on. At 81% of the hours with 58% of the planned work done, the conversation is about choices, not apologies, because the list of requests is already in front of you both.

Drew McLellan, CEO of the Agency Management Institute, made the same point when the 2018 survey came out. In his words, "clearly documenting the scope of work, timelines, and potential costs of delays or changes, will help ensure agencies and clients are on the same page." At 80%, you have four honest options.

OptionWhat the client hearsWhat it costs you
Absorb itNothing, until the next quote risesThe margin, and the same leak next time
Bill the small requestsA dated list of what they asked forOne short conversation
Swap scopeWhich planned item to dropNothing, if they choose
Re-baselineA new number for the rest of the projectOne meeting, held early

Thirteen hours of small requests, each with a date and a name, is a fact. "We've been busy" is an argument. If the same client sends small requests project after project, the work may belong on a retainer, and how to stop over-servicing retainer clients covers what happens there.

Frequently asked questions

What percentage of projects go over budget?

In PMI's 2018 Pulse of the Profession, 57% of projects finished within their initial budgets, so 43% did not. The survey covers many industries. Agency-only figures are scarcer, and most come from software vendors' own surveys.

Should you add a contingency buffer to fixed-fee quotes?

Yes, but size it from your own records: the small-request, rework and hand-off hours logged on past projects. A buffer picked from a rule of thumb gets spent on the first project and never explained.

Is scope creep the same as over-servicing?

No. Scope creep is the scope growing during a project. Over-servicing is delivering more than the client pays for, usually on a retainer. Unlogged small requests cause both.

How do you track rework without blaming people?

Log it as a type of work, not as a mistake. Rework after late client feedback is usually a timing problem in approvals, not one person's error. A round number on each deliverable gives you the count without naming anyone.

Where should you start this week?

Pick one live fixed-fee project. Add Type and Hours to its deliverables, and log every request from today, including the forty-minute ones. In two weeks you will know which of the three leaks is yours, and how many hours it costs.

Then put the hours next to the invoice. How to tell if a retainer is actually profitable turns logged hours into money, and utilisation as a diagnostic explains why logged hours and invoiced hours drift apart.

Install the Agency Client Delivery template and log every request on one live project as a row. In two weeks, the overrun has a name. Start free
AV
Adam Verhoeven

Put AI to work in your own workspace

Start free and see what your team can do with a real thinking partner.

Start free