Fixed-fee projects: how to price the next one from your tracked hours
To price your next fixed-fee project, average the hours per phase from three similar completed jobs, add a contingency, and multiply by your target hourly rate. Check past results by dividing each project fee by its tracked hours. Define the scope and agree a rate for extras before work starts, then get written approval for each change.
Why track time on work you don't bill by the hour?
Tracking time on fixed-fee work shows what you earned per hour and gives you evidence for the next quote. Two $4,500 websites can look identical on the invoice while one paid $95 an hour and the other paid $60. The hours explain the difference.
In one consulting thread about tracking flat-rate work, a plain spreadsheet came up as the tool. That is enough if you keep three habits:
- Log every hour: including the calls, the emails and the evening spent fixing something the client found on their phone. Those are the hours that disappear from memory first.
- Log by phase: discovery, design, build, revisions, calls and admin, or whatever stages your projects actually have. Keep the names identical from project to project so they can be compared.
- Log extras separately: anything the client asked for that was not in the scope gets its own label, whether you billed it or not.
How do you calculate a fixed-fee project's effective hourly rate?
Effective hourly rate = project fee ÷ total tracked hours. Compare the result with the hourly rate assumed in your quote to see whether the work paid as expected.
Every fixed quote contains a hidden hourly rate, even if it was never written down. A freelance web designer who quotes $4,500 for a small business site, expecting about 50 hours, is charging $90 an hour. If the project takes 56 hours, it paid $80.36. If it takes 75, it paid $60. The quote did not change; the job did.
If you do not have a target rate yet, work it out from what you need to earn in a year and the hours you can realistically bill, not from 40 hours a week. The cost per billable hour sum works the same for a freelancer as for an agency.
Which phase of the project ran over?
Line up your last few similar projects by phase next to the hours the quote assumed. The phase that runs over every time is the one to fix in the next quote or the next scope. Here are three sample websites, each sold for $4,500 on a 50-hour plan:
| Phase (sample) | Quoted hours | Project A | Project B | Project C | Average |
|---|---|---|---|---|---|
| Discovery and content | 5 | 6 | 5 | 7 | 6 |
| Design | 14 | 14 | 12 | 16 | 14 |
| Build | 20 | 20 | 18 | 19 | 19 |
| Revisions | 6 | 9 | 14 | 7 | 10 |
| Calls and admin | 5 | 7 | 8 | 6 | 7 |
| Total hours | 50 | 56 | 57 | 55 | 56 |
| Effective rate on $4,500 | $90.00 | $80.36 | $78.95 | $81.82 | $80.36 |
Design and build stayed close to the estimates: 14 and 19 hours on average against 14 and 20 quoted. Revisions averaged 10 hours against 6 and ranged from 7 to 14. Calls and admin took 7 hours against 5. All three projects paid around $80 an hour instead of $90.
The phase breakdown points to specific changes: price or limit revisions, and include calls in the quote.
How do you build the next quote from the last three?
Add up the average hours per phase, add a contingency for what you cannot see yet, and multiply by your target rate. If the result is more than the client will pay, change the scope, not the hours.
For the sample designer, the averages add up to 56 hours. A 10% contingency takes that to 61.6, call it 62. At $90 an hour that is $5,580, so the next quote for the same kind of site is $5,600, about a quarter more than before. That can feel like a big jump, but it is only the price of the work as it has actually been happening.
If $4,500 is what this kind of client pays, the hours have to come down to match. At $90, $4,500 buys 50 hours. Two changes in the scope get close:
- Two revision rounds, then hourly: budget 7 hours for revisions, the lowest of the three projects, and price any third round as a change.
- A fixed call rhythm: a 30-minute weekly call instead of calls whenever the client wants one, which brings calls and admin back to 5 hours.
That gives 6 + 14 + 19 + 7 + 5 = 51 hours, or $88.24 an hour at $4,500. Close, but with no room for a bad week, which is why the contingency matters. Use around 10% for work you have done and tracked several times. For a new kind of project, use 20% or more, or sell a paid discovery phase first and quote the build once you know what it is.
If you have tracked only one similar project, use it, but with the larger contingency. To total a week of logged hours at your rate while you build the history, the billable totals calculator does the arithmetic.
How do you stop extras from eating the fee?
Write the scope with numbers in it, and put the rate for changes in the agreement before the project starts. Then price every extra in hours when it is asked for and get a written yes before doing it. The fee stays fixed for what was agreed; anything else is new work.
One freelancer described losing around $2,300 on a $2,000 landing page as small additions piled up, each one too minor to argue about on its own. The fix offered in the replies was to price each extra in hours and get written approval before starting it.
- Count things in the scope: 5 pages, not "a website". Two revision rounds, with a sentence on what one round is: a single consolidated list of changes, not a stream of messages.
- Name what is not included: copywriting, stock photos, hosting, extra languages. The things you leave unmentioned are the ones that turn into favours.
- Put the change rate in the agreement: then pricing an extra means applying a number the client has already accepted, not starting a negotiation.
- Answer each request with hours, price and effect: "Adding the booking page is about 6 hours, so $540 at the project rate. Reply yes and I'll start on Monday; it moves the launch by two days."
- Track approved extras under their own label: they show up on the invoice, and in the next quote's history as a separate line rather than as a mysterious overrun in the build.
Fixed price vs time and materials
Choose fixed price for defined work you have done before and tracked. Choose time and materials for discovery, unclear scope or ongoing changes. A fixed price puts overrun risk on you and rewards faster delivery; time and materials bills actual hours, so the client pays more for overruns and less when work goes quickly.
| Fixed price | Time and materials | |
|---|---|---|
| Who carries an overrun | You | The client |
| What the client knows up front | The total | The rate, and usually an estimate |
| Suits | Defined work you have done before and tracked | Unclear scope, discovery, ongoing changes |
| What you need before quoting | Hours from similar past projects and a tight scope | A rate and a way to show the hours |
| Where it goes wrong | Scope creep and soft phases nobody priced | A client surprised by the invoice |
Many projects work best as a mix. A paid discovery phase on time and materials, followed by a fixed price for the build, means the fixed part is quoted on real information. Time and materials with a cap, sometimes called not-to-exceed, gives the client a ceiling while you still bill actual hours below it. And on either model, tracked hours are what make the next price better: on fixed work they show what the job cost, on hourly work they are the invoice.
A day rate is a third option that sits between the two, and it is more common in some fields than in others; compare billing models covers when it pays more.
How should you handle uncertainty in a fixed-fee quote?
- How much contingency should a fixed-fee quote include?
- Use around 10% contingency for a fixed-fee project you have done and tracked several times. For unfamiliar work or a project without tracked history, use 20% or more, or quote a paid discovery phase before pricing the build.
- Should you show the client your hourly rate on a fixed-fee project?
- The quote itself can be just the fee. The rate for changes should be in the agreement, though, so that pricing an extra later is applying a number the client already accepted rather than opening a new negotiation.
- What should you do when a fixed-fee project is already running over?
- Check whether the extra work is in the written scope. If it is not, price it in hours and get a written yes before doing it. If it is, finish the work, keep logging hours by phase, and use the overrun to fix the next quote rather than absorbing it silently.
- How many past projects do you need before quoting from your hours?
- Use three similar completed projects to see which phases stay consistent and which vary. If you have tracked only one, use its hours with a larger contingency. Without any history, treat the first quote as an estimate and track all work by phase.
What should you track on your current project?
Log every hour by phase and label extras separately. At the end, divide the fee by the hours; after three similar projects, use the phase averages to build the next quote and define its scope. A spreadsheet is enough, or Timen offers free tracking with tags and reports by project. For monthly client fees, use the same records to calculate monthly retainer fees.
