Guide
How to Price a Freelance Project: Flat Fee vs Hourly
A repeatable way to turn a scope of work into a number you can say out loud without flinching — including a full worked example with the arithmetic shown.
There are two ways freelancers lose money on a quote. The first is guessing — picking a number that sounds about right and hoping it covers the work. The second is quoting a flat fee against a scope nobody has actually broken down, which is the same guess wearing a suit.
What follows is a method: how to choose between hourly and flat, how to build a flat fee from hours you can defend, and what to do when the estimate turns out wrong. Every number is shown, so you can substitute your own.
Start from your floor rate, not the client's budget
Every quote below is built on one number: your floor rate — the hourly rate you need to cover your income goal and business costs, given the hours you can realistically bill. Not what the client can afford, and not what a competitor charges. Those come later; they are not the foundation.
If you haven't worked yours out, do that first with the Freelance Rate Calculator. It asks for your target take-home, your business expenses, your working weeks, and — the part people skip — the share of your week that never makes it onto an invoice.
We'll use a worked example throughout: $70,000 target take-home plus $6,000 of business expenses is $76,000 of gross revenue to bring in. Forty-six weeks at five eight-hour days is 1,840 working hours, but if 30% goes to proposals, admin, marketing and unpaid revisions, only 1,288 are billable. $76,000 ÷ 1,288 = $59 an hour. Every figure from here uses that $59.
One thing that calculation deliberately leaves out is tax. The $76,000 is gross revenue you invoice; the $70,000 is what's left after business expenses, not after tax. Whatever you set aside for tax comes out of that $70,000 — so if $70,000 is the figure you actually want to live on, raise the target before you divide. What percentage to set aside depends on where you live and how you're registered, so use your own figure (the Tax Set-Aside Calculator works from a percentage you supply) and confirm it with an accountant.
It's a floor, not a price. Charge exactly your floor and every project earns exactly enough and never a cent more — which leaves nothing for slow months.
Hourly pricing: when it's the right call
Bill by the hour when nobody can honestly describe the finished thing yet. That includes:
- Discovery, audits and research, where the output is the finding out
- Ongoing or open-ended work — maintenance, support, "whatever comes up this month"
- Clients with a track record of changing direction. Bill them hourly the first time; go flat once you know how they operate
- Work whose pace the client controls — you can't estimate hours that hinge on someone else's approvals
The advantage is honesty: you get paid for the time you spend, and scope creep invoices itself without a difficult conversation.
The real downside isn't the usual line about leaving money on the table. It's that your revenue has a hard ceiling equal to your calendar: at $59 an hour and 1,288 billable hours, that ceiling is $76,000 of invoicing — before expenses and tax — and the only ways up are more hours or a higher rate. Worse, getting faster reduces your revenue. Judgement that lets you finish in three hours what used to take six is, on hourly work, a pay cut.
Flat-fee pricing: when it's the right call
Flat fees work when you can describe each deliverable in a sentence and you've done something like it before: a brand identity, a three-page site, a launch email sequence, a monthly report.
Here, efficiency finally pays you. Quote 26 hours, finish in 20, and the six hours are yours. Your templates, snippets and experience stop being invisible and start being margin.
The trade is that you now own the estimating risk — take 40 hours and you absorb the difference. That's why the whole discipline of flat-fee pricing is in how you build the number, not in negotiating it afterwards.
The 6-step method for building a flat-fee quote
- List the deliverables — every named, checkable thing the client receives. If you can't tick it off, it isn't a deliverable, it's a hope.
- Estimate hours per deliverable, not per project. A project-level guess can't be checked against anything afterwards. A per-deliverable estimate can, which is the only way estimating ever improves.
- Add a revision allowance — a named number of rounds with hours attached. Two is a reasonable default. "Unlimited revisions" isn't generosity, it's an unpriced liability.
- Account for overhead exactly once. If your floor rate was built with a non-billable percentage in it, your admin time is already inside the rate and adding admin hours on top double-counts it. If your rate came from market comparison or a salary conversion instead, add hours for coordination and project management — 15–25% of the estimate is a reasonable starting assumption to test against your own logged time.
- Multiply the hours by your floor rate. This is what the work costs you. It is not yet the price.
- Add a contingency buffer and round up — 20–30%, then to a clean figure. Rounding up isn't cheek; it's cheap insurance.
Worked example: three pages of website copy
Scope: home, about and services pages for a small consultancy. One kickoff call, two revision rounds, page titles and meta descriptions, handoff notes for the designer.
| Deliverable | Estimated hours |
|---|---|
| Kickoff call and brief review | 1.5 |
| Discovery: two customer interviews, competitor scan, existing material | 4.0 |
| Messaging outline for client sign-off | 2.0 |
| Home page draft | 5.0 |
| About page draft | 3.0 |
| Services page draft | 4.0 |
| Page titles and meta descriptions (3 pages) | 1.5 |
| Handoff notes for the designer | 1.0 |
| Revision allowance: round 1 (3.0) + round 2 (1.5) | 4.5 |
| Total estimated hours | 26.5 |
There's no separate overhead line, because the $59 floor already assumes 30% of the week is non-billable. Adding admin hours again would price the same time twice.
26.5 hours × $59 = $1,563.50. Add a 25% contingency buffer: $1,563.50 × 1.25 = $1,954.38. Round up.
That second tile is the number worth internalising. $2,000 ÷ $59 = 33.9 hours, so you have about seven hours of slack. Spend 34 and you've worked at exactly your floor, earning nothing above it. Spend 40 and your effective rate is $50 an hour — $9 below floor, meaning you subsidised the client out of your own income.
One more thing the quote needs: payment terms. Split it 50/50, or 40/30/30 across milestones. A flat fee paid entirely on completion is an interest-free loan to a stranger.
How much buffer is enough?
20–30% is the working range. Below 20%, one round of "actually, could we try a different angle" erases it. Above 30%, you're either genuinely uncertain about the scope — in which case bill hourly — or padding, which clients tend to sense.
Push toward 30% when the client is new, the industry is unfamiliar, more than two people approve the work, or the job depends on inputs you don't control. Push toward 20% for repeat clients, work you've done a dozen times, and a single decision-maker.
When you blow through the buffer anyway, there are three responses and the order matters:
- You underestimated and the scope didn't change. Finish at the quoted price. That's what a fixed price means, and re-trading your own estimate costs more in trust than the hours are worth.
- The scope changed. Stop and issue a change order before doing the extra work, not after.
- Either way, log actual hours against the estimate. After a handful of projects you'll start to see your personal multiplier. If you consistently run 1.4× your estimates, that isn't a character flaw, it's a coefficient — apply it up front.
Scope documents and change orders
A scope document doesn't need to be long. It needs to be specific, and it needs to say what's excluded. One paragraph does most of the work:
"This quote covers the deliverables listed above and includes two rounds of revisions, to be requested within 10 working days of each draft. Additional deliverables, further revision rounds, or changes to the agreed messaging direction after sign-off are billed at $59 per hour, quoted and approved in writing before the work begins."
Three things happen there: deliverables are named, revisions are capped, and extras have a price. That last part is what actually stops scope creep — not the word "no", but the existence of a number. Often the client isn't trying to extract free work at all — they simply don't know the request costs anything. Attaching a rate turns "could you also…" into a decision they have to make rather than a favour you have to refuse. The deadline on revision requests matters too: without it, a project you closed in March can be reopened in July.
Treat that paragraph as a plain-English illustration of what the wording has to do, not as drafted legal text. Contract law differs by country and by contract, so have anything you actually send checked by someone qualified where you are.
Value-based pricing: what it actually means
Value-based pricing sets the price from what the outcome is worth to the client rather than from the hours it takes you. It's legitimate, but narrower than the internet suggests. It needs three things true at once: the outcome is measurable in money, you can plausibly claim a share of the credit, and the client will discuss those numbers. A pricing-page rewrite for a business with known traffic and conversion figures qualifies. A logo for a new bakery does not — there's no number to anchor to, and inventing one is just a bigger guess.
What value pricing is not is a way to skip knowing your costs. Work out the hours-based number anyway and keep it to yourself as a floor to check against. If your "value-based" price lands below that floor, it isn't value pricing — it's a discount with better branding.
Day rates, retainers and the hybrid model
Day rates are your floor rate × the hours in a working day: $59 × 8 = $472, which is worth rounding up to $500. A day you sell is rarely eight productive hours once you account for the call, the context-switching and lunch — price it at the full eight anyway, or you're paying for your own breaks. Day rates suit on-site work, workshops, and clients who'd rather book time than manage a scope.
Retainers are a fixed monthly fee, best introduced after a project when you both know the rhythm. Either cap the hours (say 10 a month — state up front whether unused hours roll over) or fix the deliverables. The deliverables version is easier to defend and less likely to drift into being permanently on call.
The hybrid is often the best of the three: a flat fee for a tightly defined core scope, plus a named hourly rate for anything outside it. You keep the upside of working efficiently on the part you can estimate and stop absorbing the part you can't. It's also the easiest to say out loud: "$2,000 for the three pages as scoped; anything additional is $59 an hour, agreed in writing first."
Three sanity checks before you send
- Against an equivalent salary. Run the annualised version of your rate through the Contractor Rate vs Salary Calculator. Contractors carry costs employees don't — unpaid time off, own equipment, own benefits, gaps between contracts — so a rate that maps neatly onto your old salary is usually a pay cut in disguise.
- Against the norms of your niche. Different formats price on different axes. In creator work, for instance, the UGC Rate Calculator shows how deliverables, usage rights and exclusivity stack into a rate rather than hours. Use norms to check you're not wildly outside the range — not to set the price.
- Against yourself, out loud. Say it flatly: "The project is $2,000." If you can't get through that without adding "but I have some flexibility", the problem isn't the number — it's that you haven't finished convincing yourself. Go back to the hours table; that's what it's for.
Frequently asked questions
Should I show my hourly rate on a flat-fee quote?
Usually not on the quote itself. Publishing the hourly rate invites a negotiation about your speed rather than the deliverable — the client starts arguing that 26 hours should really be 18. The one exception is the change-order rate: that number should be in writing, because its whole job is to price work nobody has scoped yet.
What if the client asks for a discount?
Don't cut the price without cutting something else. A straight discount teaches the client that the original number was invented. Offer to remove a deliverable, reduce the revision rounds, or shift the timeline into a slower month. If you do want to reward something, trade the discount for something real and specific — full payment up front, or a second project booked at the same time.
How do I re-quote a project that has gone long?
Separate the cause from the cure. If the scope genuinely changed, stop, write down exactly what changed, quote the additional work, and get written approval before you continue — an awkward conversation mid-project is far cheaper than a surprise invoice at the end. If you simply underestimated and the scope is unchanged, finish at the agreed price, then log the real hours so your next estimate is better.
Is flat-fee pricing always better than hourly?
No. Flat fees reward efficiency and remove the ceiling your calendar puts on hourly work, but they move all of the estimating risk onto you. If nobody can describe the finished deliverable in a sentence yet — discovery, audits, open-ended support, or a client who changes direction often — hourly is the honest structure and usually the more profitable one.
Want this method in a spreadsheet you don't have to build?
Everything in this article can be done by hand or in a blank spreadsheet. The Freelancer Finance Toolkit is that spreadsheet, already built: a rate calculator that turns an income goal into an hourly and day rate, with a sensitivity table showing what you'd need to charge if you can only bill fewer hours a week; a project pricer that takes estimated hours, a rate and a buffer percentage and returns the quote, with your rate pulled through automatically; plus an income and expense tracker, a client and invoice tracker, and a tax set-aside calculator you enter your own percentage into. You still do the deliverable-by-deliverable breakdown above yourself — the pricer works from the total. Excel or Google Sheets.
One-time purchase. No subscription.