Recovering unbilled agency work and scope creep
Agencies rarely lose money on the projects they know went badly. They lose it on the projects that felt fine — where a stream of small, reasonable-sounding requests was absorbed without anyone deciding to absorb them.
Where the revenue actually leaks
Four patterns account for most unbilled work:
- Silent scope expansion. Individually trivial requests — "can you also do X" — that never trigger a commercial conversation because none of them is large enough on its own.
- Revision overrun. The contract says two rounds. Round five happens anyway, because refusing feels worse than absorbing.
- Unbilled retainer overflow. A 40-hour retainer that regularly consumes 55 hours. The extra 15 are real work at a 0% rate.
- Post-delivery support. The project closed; the questions did not. Months of informal support that was never in anyone's estimate.
The common structure: each individual instance is too small to justify a difficult conversation, and no one is looking at the aggregate. The fix is not tougher negotiation — it is making the aggregate visible while it is still current.
Detecting scope creep early
Scope creep is detectable long before it is painful, because it shows up as a divergence between two things you already record: what the agreement says, and what the time entries say.
- Deliverable-level tracking. Time logged against "Client project" is useless for this. Time logged against "Homepage — round 3" is evidence.
- A contracted-hours baseline per deliverable, so variance is computable rather than felt.
- A threshold that triggers automatically. At 80% of contracted hours, someone gets told — before the overrun, not after.
- A request log. Every inbound request captured with its date and origin, whether or not it was actioned.
The evidence trail
The conversation about unbilled work is uncomfortable in direct proportion to how vague it is. "We've done a lot of extra work" invites a debate. A dated list invites a decision.
A recoverable claim has four parts:
- The contractual baseline — the exact clause, quoted, with the deliverables and revision counts it specifies.
- The request — when it arrived, from whom, in which channel, in the client's own words.
- The work — time entries or commits tied to that request.
- The delta — hours and dollars, at the contracted rate.
Assembled during the project, this takes minutes. Reconstructed six months later from memory and a chat log, it takes days and convinces no one.
Change orders clients sign
A change order that reads as a complaint gets negotiated. One that reads as project administration gets signed. The difference is structural:
- Send it near the request, not near the invoice. A change order sent the week the work was requested is routine; the same document sent at project close is a dispute.
- Quote the baseline neutrally. "The agreement covers two revision rounds" is a fact, not an accusation.
- Price it at the contracted rate. Inventing a premium rate for scope work invites a challenge to the whole document.
- Offer a real choice. Approve the additional cost, defer the work to a later phase, or trade it against something already in scope. Clients approve far more readily when the alternative is stated rather than implied.
- One page. What was asked, what it costs, what happens if it is approved, what happens if it is not.
Tracking what actually gets paid
Recovery is not signature — it is cash. Three separate numbers, because the gaps between them are where the process fails:
| Metric | Question it answers | Healthy signal |
|---|---|---|
| Identified | How much unbilled work did we find? | Found within 30 days of the work |
| Presented | How much did we actually put in front of the client? | >80% of identified |
| Approved | How much did they sign? | >60% of presented |
| Collected | How much was paid? | Matches approved |
A large gap between identified and presented is an internal confidence problem, not a client problem — the work was found and then quietly dropped. A gap between approved and collected is an invoicing problem. They have different fixes, and averaging them together hides both.
Preventing the next one
Most of the prevention happens at contract time:
- Define a revision round. "Two rounds of revisions" means nothing without a definition of what constitutes a round and what resets it.
- Name the change-order mechanism in the contract, including the rate. Then using it is following the agreement, not renegotiating it.
- Set a variance threshold both sides know about. "We'll flag it at 80% of budgeted hours" is a promise clients appreciate rather than resent.
- Put an end date on post-delivery support, and say what happens after it.
None of this requires being harder on clients. It requires the aggregate being visible early enough that the conversation is about a decision rather than about a bill.