You quoted a dashboard project at £900, figuring fifteen hours at a comfortable rate. It felt right on the call. Then you logged the actual time out of curiosity — something you rarely do on fixed-price work because the answer is depressing — and it came to twenty-seven hours. The build was fine; it took the two you expected. The other twelve hours went somewhere you never quote for and rarely notice: chasing the data, re-cleaning it when the client sent a corrected file, sitting in "quick syncs," and redoing charts after "can we just also…". Fixed price doesn't lose money on the work you can see. It loses money on the hours that never make it onto the estimate.
Log one project honestly and the leak appears
Here's the same £900 project with every hour tracked, not just the ones you'd bill:
Fixed-price dashboard — actual time
Kickoff + scoping call 1.5 h
Chasing the data (3 emails) 4.0 h <- hidden
Cleaning v1 of the file 5.0 h <- hidden
Re-cleaning after client
sent a "corrected" v2 3.0 h <- hidden
Building the dashboard 2.0 h
Revisions ("also add Q1") 2.5 h <- hidden
Status meetings / Slack 2.0 h <- hidden
Final checks + delivery 1.0 h
----------------------------------
Quoted: 15 h (£60/h)
Actual: 27 h (£33/h)
Fourteen and a half of those twenty-seven hours — more than half the project — are the hidden kind. Your headline rate wasn't £60. It was £33, and you'll quote the next project at £60 again because the twelve hours never showed up anywhere you'd see them.
Where the hidden hours actually hide
They cluster in five predictable places, and none of them is "building the thing you were hired to build." There's data acquisition — the back-and-forth just to get a usable file. There's cleaning, the biggest and quietest. There's version churn, the re-work when the client sends a new file after you've already cleaned the old one. There's revision, the "small" additions that each reopen the dataset. And there's coordination — calls, messages, and clarifications. Every one of these is real, recurring, and forecastable, which means every one of them can be priced instead of absorbed.
How to price the hidden hours in
- Track one project to the minute. Just one. You can't price what you refuse to measure, and a single honest log ends the argument about whether the hidden hours are real.
- Add a preparation line. Quote data acquisition and cleaning as their own estimate — often the largest — so the client sees them as work, not overhead.
- Cap revisions. "Includes one round of revisions; further changes at £75/hr." Unlimited tweaks are unlimited hours at £0.
- Price version churn explicitly. State that re-cleaning a re-sent file is billable: "priced for the file supplied on 7 July; replacements re-quoted." Now a v2 is a decision, not a silent five hours.
- Add a coordination buffer. Two hours of meetings and messages on a fifteen-hour job is fourteen percent you're eating. Build it into the number instead.
Fixed price is fine — blind fixed price isn't
Nothing here says stop quoting fixed prices; clients like them and so should you. The problem was never the fixed price — it was fixing the price against only the visible third of the work. Once you've logged one project and seen where the twelve hours go, you quote the same £900 job at £1,500 without flinching, because you're now pricing twenty-seven hours instead of pretending it was fifteen. The hours were always there. You were just the only person on the project not being paid for them.
Start with the very next quote. You don't have to say anything different to the client or defend a bigger number — you just have to estimate the whole job instead of the fun part of it, and let the boring two-thirds carry the price it always should have.
Dotwave logs the cleaning and preparation time that usually disappears inside a project, so the hidden hours show up as a record you can put a real number against on the next quote.
Get early access →