By the time scope creep reaches the invoice, the argument is about money. Three weeks earlier, in the task log, it was a question you could still ask.
Scope creep is detectable in a daily task log weeks before it is visible in an invoice: when the hours logged against a project run ahead of the estimate at the same stage, or when task descriptions start containing work that was never quoted. A weekly, ten-minute comparison of logged hours to the estimate per project catches it while the client still remembers asking for the extra, which is the only moment a change request is easy. This guide is the check, the conversation, and the paperwork — all built on hours your team is already logging.
A project quoted at 60 hours over four weeks should show roughly 15 hours a week, with the shape you expected — heavier in build, lighter in review. Scope creep shows as one of three patterns:
None of these are visible in a timesheet total. They are visible in a daily task log with descriptions, per project.
The task log turns "we feel this is growing" into "on the 3rd, 4th and 9th, your team asked for X, Y and Z, which took eleven hours, and none of the three is in the quote of 12 August." That is not a complaint; it is a fact the client can check. The tone follows from the evidence: matter-of-fact, early, with two options — fold it into a change request at the quoted rate, or drop it. Clients almost never argue with dated entries. They argue with totals presented at the end.
The timing rule: raise it in the week it happened. A change request for last month's extras reads as an invoice surprise; the same request this Friday reads as good management.
Every accepted extra becomes a line on a change quote — description, hours, rate — that the client approves before the work continues. The change quote converts to an invoice line when delivered, exactly like the original: one record in two states. Extras that are agreed as goodwill are still logged as tasks against the project, marked non-billable, so the project's true cost is visible in the profitability view even when the revenue is not.
For retainer clients, scope creep is the retainer being under-priced. The same weekly check — hours against the retainer's included hours — is what tells you before renewal. Sizing the retainer from time data.
| Earliest signal | Logged hours ahead of estimate at the same stage, per project |
|---|---|
| Second signal | Task descriptions containing "also", "quick", "client asked", "additional" |
| Cadence | Weekly, ten minutes, all active projects |
| Three outcomes | In scope (absorb) · estimate wrong (learn) · new scope (change request this week) |
| Paperwork | Change quote → approval → invoice line; goodwill work logged non-billable |
| Retainers | Hours vs included hours, checked weekly, before renewal |
Compare hours logged against each project to the estimate at the same stage of completion every week, and read the task descriptions on any project running ahead for words like "also", "quick change" and "client asked". Scope creep appears in hours weeks before it appears in an invoice, and a weekly ten-minute check catches it while the client still remembers making the request.
A daily task log where each entry has a client, a project, time spent and a description. Totals alone cannot distinguish an inaccurate estimate from added scope; the descriptions can. Put the estimate on the project so the team can see it, and review logged hours against it weekly and at the 50% point.
Early, with dated evidence, and with two options. Cite the specific requests by date and the hours they took, note that they are outside the quote, and offer either a change request at the agreed rate or dropping the work. Raised in the same week, it reads as good project management; raised at invoice time, it reads as a surprise.
Decide per request, but log every one. Small extras that are absorbed should still be recorded as non-billable tasks so the project's true cost is visible. Extras that are not small become a change quote the client approves before work continues. Never let "small" accumulate unrecorded; that is how a profitable project becomes a loss.
On a retainer, scope creep looks like logged hours consistently exceeding the included hours. Checked weekly it becomes a conversation about the retainer's size before renewal; unchecked it becomes an under-priced contract renewed on the same terms.
A short quote for work that was not in the original scope — description, hours, rate — which the client approves before the work proceeds and which becomes an invoice line on delivery. It keeps the original quote intact and gives both sides a dated record of what was added and when.
Merik's daily task log is the instrument. Every entry carries a client, a project, time spent, status, blockers and proof links, and the hours roll up per project and per client, so "logged versus estimate at this stage" is a view rather than a spreadsheet. The words scope creep uses are right there in the descriptions, and the task log exports to CSV when you want to slice it further.
When an extra becomes agreed work, it becomes a line-item quote that converts to an invoice on delivery — the same record, two states. Estimates for new work are drawn from your own history: Merik's time-estimation model is a local similarity model over the company's task log, not an LLM, and it backtests its own accuracy. See the tasks and clients modules.