The Fixed-Price Project Where Both Numbers Were Wrong
When a fixed-price project loses money, it is usually because both the hours estimate and the scope were off from the start.
Fixed-price projects feel safe when you quote them. You name a number, the client says yes, and you get to work without watching the clock.
Except you do have to watch the clock. You just do not realize it until after the invoice.
The project I am thinking about was quoted at a number that felt right. Solid gut feel, two years of experience in that project type, client seemed straightforward. I wrote the proposal, they signed it, and I stopped thinking about whether the numbers made sense.
I tracked my hours because I always do. At the end, I looked at what I had billed versus what I had worked. My effective hourly rate came out to about thirty percent below my target. Both my time estimate and my scope were wrong, and they were wrong in directions that amplified each other.
Why Both Can Be Wrong Simultaneously
A fixed-price quote has two embedded assumptions. How long it will take, and what it includes.
If your time estimate is off by twenty percent and your scope is also softer than it should be, those errors multiply. The project takes longer than expected, and it also includes more work than you priced for. You end up at a number that looks like a disaster in the final accounting but felt completely reasonable at the start.
This is the specific failure mode of fixed-price work that hourly billing does not have. With hourly billing, scope creep and underestimation both get captured in the final hours. With fixed pricing, you absorb both silently.
What Good Historical Data Would Have Done
If I had gone back through my time logs before writing that proposal and looked at every similar project I had done in the past two years, I would have seen a pattern.
That project type always runs longer in the final phase than I expect. Client feedback cycles add twenty to thirty percent to my initial delivery estimate. Projects in that industry specifically tend to have more stakeholder review rounds than projects in other industries.
None of that was secret information. It was sitting in my time tracker. I just did not look at it before I wrote the number down.
Historical project data is the most reliable estimating tool a freelancer has. It is better than instinct. It is better than asking other freelancers what they charge. It is your own record of what work actually costs you in real hours, across real projects, with real clients.
How to Set Up a Fixed-Price Project So You Can Learn From It
Even on fixed-price work, track your hours by task. Not because you will adjust the invoice based on them, but because you need the data for the next quote.
Break the project into phases in your time tracker. Discovery, design, execution, revisions, delivery. Log time against each. When the project ends, you have a detailed breakdown of where the hours actually went.
That breakdown is your calibration for the next time a similar project comes through. You can see that your execution estimate was accurate but your revision estimate was off by a factor of two. You can adjust the next proposal accordingly.
Without that data, you are making the same guess over and over. With it, you are making an informed estimate that gets more accurate each time.
The Quote You Write After This One
The project where both numbers were wrong is not a failure if you treat it as data.
Close it out, run the actual hours, calculate your real effective rate, and note where the scope went beyond what you priced. Then open your next similar proposal and write a number that reflects what you actually know, not what you hoped.
Fixed-price work can be profitable. But only if you price it based on what the work actually costs, not what you want it to cost.
Track your time, bill every minute.
Time-Trak is a native Mac and Windows time tracker with a floating timer, automatic screenshots, and one-click invoicing.
Free during beta.
Download Time-Trak →macOS + Windows · Floating widget · Auto screenshots