Oplero is free while in beta — unlimited users, every module, no credit card.

See pricing

How to price a freelance project

A fixed price is an hourly rate with the risk moved onto you. That is not an argument against fixed prices — it is an argument for estimating like someone who will be held to the number.

Clients like fixed prices because they remove uncertainty. What they actually do is move the uncertainty from the client to you: you have agreed to absorb whatever the job turns out to cost. Charged properly, that transfer is a service worth being paid for. Charged badly, it is how a busy quarter produces no money.

So the question is not whether to quote fixed prices. It is how to quote them as somebody who will be held to the figure.

Build the estimate from a task list, not from a feeling

The instinct is to look at the brief, feel the size of it, and name a number that seems defensible. That method has a specific failure mode: it estimates the work you can picture, and the work you can picture is the part you have done before.

Instead, break the job into tasks small enough to estimate in hours — nothing larger than a day. Anything you cannot break down is not an estimate, it is a risk, and it needs naming as one.

A worked estimate for a small website project
LineHours
Kickoff, brief review, questions4
Structure and wireframes8
Design, 5 templates24
Build and content entry36
Two rounds of revisions, as agreed12
Testing, launch, handover session10
Project management and email12
Subtotal106
Contingency, 20 percent21
Total127

Multiply the total by your rate and you have a floor, not a price. What you charge on top of that floor is a separate decision about value, competition and how much you want the work — but you should never discover after accepting that you were below the floor.

The lines everyone leaves out

Look at the estimate above and notice that four of the nine lines are not the actual craft. Those four are where fixed-price projects go wrong, and they are missing from most quotes.

  • Revisions. Not whether they happen — how many are included. "Until you are happy" is an unlimited liability written in friendly language.
  • Meetings and email. On a project of any length this is days, not hours. Estimate it explicitly or absorb it silently.
  • Waiting. Time spent blocked on content, access or a decision is not free, because it fragments your schedule and pushes the work into a worse week.
  • Handover. Training, documentation and the fortnight of small questions afterwards. Almost always unpriced, almost always delivered.
  • Third-party friction. Someone else's API, hosting or approval chain. You cannot estimate it, so name it as an assumption instead.

What the quote itself has to say

The number is the easy part. What protects you is everything around it, and most of it fits on one page.

  1. Scope, as deliverables rather than activities. "Five page templates" is a deliverable; "design work" is an argument waiting to happen.
  2. Exclusions, explicitly. What is not included is the most valuable paragraph in the document, and the one people leave out because it feels negative.
  3. Assumptions. Content supplied by a date, one round of consolidated feedback, access to whatever you need. Every assumption is a change order waiting to be legitimate.
  4. Revision rounds, counted. Two is normal. Beyond that, your hourly rate applies, and saying so up front is what makes it possible to charge later.
  5. The payment schedule. A deposit, one or two milestones, the balance on delivery — not one invoice at the end.
  6. Validity. Thirty days is standard. Without it, a client can accept a six-month-old price after your costs have changed.

One more thing about the number itself: quote a single price, not a range. A range communicates that you do not know, and the client will hear the lower end as the price and the upper end as an attempted upsell. If the uncertainty is real, price the part you understand and quote the rest separately once it is knowable.

Handling the change that arrives in week three

Scope creep is rarely a client behaving badly. It is a client having a reasonable new idea, at a point when saying yes seems easier than the conversation. The problem is that the tenth reasonable idea is what turns a profitable project into a bad one.

The fix is procedural, and it takes two sentences: acknowledge the request, then state its cost in time and money before doing any of it. "Yes, that is doable — it adds about six hours and pushes delivery to the 19th. Shall I add it?" Nobody is offended by that, because it is an answer rather than a refusal. What causes offence is the invoice that arrives with unannounced extra hours on it.

  • Price the change when it is requested, not at the end. At the end it looks like a penalty; in the moment it looks like a choice.
  • Put it in writing, even briefly. An email saying what was agreed is enough and it is what you will refer to.
  • Say what it does to the date, not just the price. Deadline effects are often what makes a client drop the request themselves.

The only thing that improves your next quote

Every fixed-price project is an experiment whose result is thrown away by most people. You estimated 127 hours. Find out what it actually took.

Do this three or four times and a pattern appears that is remarkably consistent across trades: the core craft lands near the estimate, and everything surrounding it — revisions, coordination, waiting, handover — runs at two or three times what was allowed. Once you know your own multiplier, your estimates stop being optimistic in a way no amount of care achieves. It requires recording the hours even on a job where nobody is billing by the hour, which is the part people skip.

A quote is a document, not an email

Scope, exclusions, assumptions, revision rounds and a payment schedule, in something the client accepts with a date attached. The buying guide covers what to look for in quoting software, including online acceptance.

Read the buying guide

Frequently asked questions

Should I charge a fixed price or by the hour?

A fixed price is an hourly rate with the risk moved onto you, so charge one when you understand the work well enough to carry that risk, and charge hourly when the scope genuinely cannot be defined yet. Either way you need to know your hourly rate first, because a fixed price is built out of hours and a rate before it is wrapped.

How much contingency should I add to an estimate?

Around twenty percent on work you have done before, and more when the job contains something new. Keep it as its own line rather than hiding it inside the estimates: if it is buried, a client who negotiates the price down removes your buffer without either of you realising it happened.

What should a project quote include besides the price?

Scope stated as deliverables, an explicit list of exclusions, your assumptions, a counted number of revision rounds, a payment schedule with a deposit and milestones, and a validity date. The exclusions paragraph is the most valuable part of the document and the one most often left out because it feels negative.

How do I handle a client asking for extra work mid-project?

Price it when it is asked for, before doing any of it, and say what it does to the delivery date as well as the price. "That adds about six hours and moves delivery to the 19th — shall I?" is an answer rather than a refusal, and nobody takes offence at it. What causes offence is unannounced extra hours appearing on the final invoice.

Should I give a price range if I am unsure?

No. A range tells the client you do not know, and they will treat the bottom as the price and the top as an upsell. If the uncertainty is real, quote firmly for the part you understand and quote the rest separately once it can be defined — a paid discovery phase is often the honest version of a range.

How do I get better at estimating?

Record the hours on fixed-price work even though nobody is billing by the hour, then compare estimate to actual on three or four finished jobs. The pattern is consistent: the core craft lands near the estimate and everything around it — revisions, coordination, waiting, handover — takes two to three times what was allowed. Knowing your own multiplier fixes more than being careful ever does.

Ready to run everything in one place?

Create a free workspace, switch on the modules you need and see how much lighter your toolbox gets. No credit card, no trial clock.