Category: Guides
Fixed-Fee vs. Hourly: How to Quote a Project With Real Data
Why guessing at a fixed-fee quote is risky, and how historical time-tracking data lets you price a project with confidence instead of a gut-feel buffer.
By Baptiste Dulac · Published September 9, 2026

A client asks for a fixed price on a project. You want to say yes, because a flat number is easier for them to approve and easier for you to sell. But the number you quote is only as good as the estimate behind it, and most estimates come from memory: "the last one like this took about three weeks." Memory is a bad pricing tool. Tracked time is a good one.
Why hourly is the safe default
Hourly billing protects you from bad estimates. If a project runs long because the client changed direction twice, you still get paid for the extra hours. That safety is exactly why so many freelancers and consultants never leave it: there's no downside for you, only for the client's budget predictability.
The tradeoff is that hourly caps your upside. Get faster or better at your craft, and your hourly income doesn't move, only your margin per hour does, invisibly. A client also has to trust you not to pad hours, which is a harder sell than a flat number they can put in a purchase order.
What a fixed fee actually prices
A fixed fee isn't a guess dressed up as confidence. It's a bet that you can deliver a known scope for less effort than the price implies, and you can only place that bet responsibly if you know your own effort on comparable work.
This is where tracked time stops being a billing artifact and becomes pricing data. If you've logged hours against past projects with a Client → Sub-client → Project structure, you already have a dataset: how long a typical onboarding integration took, how long a five-page marketing site took, how much of that time was billable work versus revisions and calls. A fixed-fee quote built on three or four comparable past projects is a forecast. A fixed-fee quote built on vibes is a hope.

Building the quote from historical hours
- Pull the closest comparable projects. Filter your time entries by project type or client category, not just by client. A report scoped to "website redesigns" across several clients is more useful than one client's full history.
- Separate billable hours from the rest. The number that predicts future effort is total hours worked, not just billable hours invoiced. If a past project absorbed five non-billable hours of scope creep, that's real effort you'll likely see again.
- Take the median, not the average. One unusually smooth or unusually painful past project can skew an average badly. The median hides less.
- Multiply by your rate, then add a buffer. A 15-20% buffer above your historical median covers the risk you're taking on by fixing the price. If your data is thin, in other words you've only done this kind of work once or twice, widen the buffer or don't fix the fee yet.
The buffer isn't padding for its own sake. It's the price of the certainty you're selling the client. Hourly billing pushes estimation risk onto them. A fixed fee pulls it onto you, and the buffer is what you charge for absorbing it.
Protecting the quote once work starts
A fixed fee only stays profitable if you keep tracking time after the contract is signed, not just before it. Without ongoing tracking, you find out you underquoted on invoice day, when it's too late to do anything but eat the loss.
Log time against the fixed-fee project exactly as you would an hourly one, including a billable flag on every entry. Watch the running total against your original estimate as the project progresses, not after delivery. If you're at 80% of the estimated hours with 50% of the scope done, that's your signal to raise a scope conversation with the client immediately, while there's still room to adjust deliverables or negotiate a change order. Waiting until the project closes to look at the numbers turns a fixable problem into a lesson for next time.

When to stay hourly
Fixed fees work best for well-defined, repeatable work: the kind of project you've delivered enough times to trust the pattern. They work poorly for genuinely open-ended engagements, ongoing retainers, or the first project of a new type, where you have no comparable data to price against.
If a client wants a fixed number and you don't have the history to back one, say so and offer a day rate with a not-to-exceed cap instead. That gives them budget predictability without forcing you to guess. Then track that project carefully. Next time someone asks for something similar, you'll have the data to quote a fixed fee with confidence instead of a shrug.
The real asset is the history, not the rate
Every project you track, hourly or fixed, feeds the next quote. The freelancers who get good at fixed-fee pricing aren't the ones with better intuition, they're the ones with a year of clean, comparable time data to pull from before they type a number into a proposal. Track consistently, tag billable time honestly, and keep your projects organized enough to filter by type. The quote takes care of itself once the data is there.