Fixed Price vs Hourly vs Milestone: How to Pay a Web Developer

Fixed Price vs Hourly vs Milestone: How to Pay a Web Developer

October 8, 2026 · 4 min read

TL;DR

Every pricing model answers one question: when a project runs longer than expected, who pays? Fixed price suits clear scope, hourly suits unclear or ongoing work, and milestone-based suits larger projects where details emerge along the way. The model matters less than what's agreed in writing around it.

52% of all projects experience scope creep, with an average cost overrun of 27% of the original project value.

PMI Pulse of the Profession 2024

64% of freelancers deal with scope creep on at least half their projects, with the average overrun consuming 18-25% of the original estimate.

Upwork Freelance Forward 2024

70% of software projects exceed their initial budget, with an average overrun of 27%.

Standish Group CHAOS Report / Acquaint Soft (2024)

67% of freelancers absorb scope creep on every project, delivering an average of 12.4 extra hours per project without additional pay.

Freelancers Union 2025 Survey (via DEV Community)

If you're hiring a web developer, you'll be asked, or told, how the project will be priced. Fixed price, hourly, or milestone-based. It sounds like a billing detail, but it decides who pays when the work takes longer than planned. And it almost always takes a little longer than planned.

Short answer: fixed price fits clearly defined work, hourly fits uncertain or ongoing work, and milestone-based fits larger projects where some details get discovered along the way. What matters most is who carries the risk when things change.

I've written before about scoping a project before any code gets written, and fixed price works best once the scope is clear. This post covers the rest: what to do when it isn't, and how to avoid getting surprised either way.

The real question is who carries the risk

Every pricing model answers one question: when the work turns out bigger or slower than expected, who pays for it?

With a fixed price, the developer carries that risk. With hourly, you carry it. With milestones, the risk is split into smaller pieces, so neither side is stuck with one big surprise.

Fixed price

You agree on a total price for a defined piece of work. The developer delivers it, you pay.

This works well when the scope is known. A brochure website with a handful of pages, where the content is ready and the design is agreed, is a good example. Both sides know what "done" looks like.

It goes wrong when the scope is still being figured out. Here's a made-up example. Imagine a founder asks for "a booking system" at a fixed price. Halfway through, they realize customers need to pay a deposit and get reminder emails. The developer says that's extra, because it wasn't in the quote. The founder feels nickel-and-dimed. The developer feels like the goalposts moved. Nobody is being dishonest. The scope was never really defined.

Keep in mind that a developer who takes on the risk may price some of it in. A fixed quote that looks very low is worth a question about what's left out.

Ask:

  • What exactly is included, and what is explicitly not included?
  • What counts as a change, and how is a change priced?
  • How many rounds of revisions are included?

Hourly

You pay for the time spent. The final cost isn't known upfront, but you only pay for work that actually happens.

This fits work that can't be defined well in advance: ongoing improvements to an existing site, a list of small fixes, investigating a problem, or early exploration while you're still deciding what to build.

It goes wrong when there are no limits and no visibility. Unclear work tends to expand, and if nobody is watching the hours, the project drifts.

Ask:

  • Will I get a regular summary of hours and what they went toward?
  • Is there a cap, or a point where we stop and check in?
  • What counts as billable? Meetings? Research? Waiting on my feedback?

Milestone-based

The project is split into stages. Each stage has its own price and its own delivery, and you pay as each one is finished.

For anything bigger than a few weeks, this is often a good fit. You see real progress early, you can change direction between stages, and if the relationship isn't working, if the contract allows it. It's especially relevant for an MVP, and you can read more on my MVP development page.

It goes wrong when the milestones are vague. "Phase 1: backend" tells you nothing. A good milestone is something you can open and use. "Visitors can sign up and see their dashboard" is a milestone. "Set up the database" is a task.

Ask:

  • What does "done" mean for each milestone, in plain words?
  • What happens to the schedule and payment if one milestone runs late?
  • Do I own the work completed so far if we stop midway?

How to choose

  • Clear scope, unlikely to change: fixed price.
  • Unclear scope, or ongoing work: hourly, with a cap or regular check-ins.
  • Larger project with details still to discover: milestone-based.

You can also mix them. A small fixed-price first stage to define the scope properly, followed by milestones or hourly work for the rest, can save more money than a rate negotiation. I work with all three models myself, and the right one depends on the project.

What matters more than the model

A pricing model is only as good as the agreement around it. A fixed price with a vague scope is worse than hourly with a weekly check-in. A milestone plan with unclear milestones is just a fixed price in disguise. Whatever the model, I'd want these in writing:

  • what is included and what isn't,
  • who owns the code, the domain, and the hosting accounts when the work is done,
  • how changes are handled,
  • and what happens after launch, including who fixes problems and how that's priced.

If you're still comparing developers, my posts on hiring a web developer without getting burned and what a small business website costs cover the questions around this one.

Common questions

Is fixed price always cheaper than hourly? No. Fixed price gives you certainty, not savings. The developer may include a buffer for the unknowns, and hourly can cost less when the work is small or finishes quickly.

Can I switch models partway through? Often yes, for example from a fixed-price scoping stage to milestones. Agree on how the switch works in writing before it happens.

Should I pay upfront? A deposit is common. For larger amounts, it's reasonable to tie payments to delivered work you can actually see.

Which pricing model is best for a small business website? Clear pages, content and design mean fixed price. Unclear or ongoing work means hourly with a cap.

None of this is a rule. It's how I'd think about it if I were the one hiring: match the pricing model to how well you understand your own project, and know where the risk sits before it shows up.

If you're planning a small business website and want to talk through the scope and how it should be priced first, you can see how I approach these projects on my small business website service page.

Frequently Asked Questions

What is the difference between fixed price and hourly for web development?

Fixed price gives you a known total cost upfront, the developer carries the risk if the work takes longer. Hourly means you only pay for time actually spent, but the final cost isn't known until the work is done and you carry the risk of overruns. Fixed price works when scope is clear; hourly works when it isn't.

When should you use milestone-based pricing for a project?

When the project is large enough that a single fixed price feels risky for both sides, or when some details will only become clear as the work progresses. Milestones let you see real progress, change direction between stages, and stop without paying for work you haven't received yet.

How do you avoid scope creep in a fixed-price project?

Define scope precisely before signing — page by page, feature by feature. Get in writing what counts as a change versus what's included, how changes are priced, and how many revision rounds are covered. A fixed price without a clear scope definition isn't really fixed; the gap will surface as a disagreement later.

Is fixed price or hourly better for a small business website?

Fixed price, in most cases, as long as the scope is defined upfront. It removes uncertainty for the client and removes the incentive for the developer to over-engineer. If you're not sure what you need yet, a small fixed-price scoping phase first, to define the work, is often worth the cost before committing to a larger project.

What should be in a freelance web development contract regardless of pricing model?

What's included and what isn't, who owns the code and domain when it's done, how changes are handled and priced, how many revisions are covered, and what happens after launch including who fixes bugs and at what cost. The pricing model matters less than having these questions answered in writing before work starts.