Upwork Project Pricing Calculator: Bid Fixed-Price Without Losing the Margin
A fixed bid transfers every risk in the project to you — unestimated hours, extra revisions, the platform's cut. Price all three in before you submit, and structure milestones so the scope cannot quietly grow.
Updated September 20, 2026 · 12 min read
Freelance pricing strategist and founder of FreelancerMetrics. Ten years reading freelance P&Ls — first at an agency, now solo.

The formula: quoted price = (all hours × target rate + contingency + acquisition cost) ÷ (1 − effective fee).
Why fixed-price bids go wrong three ways at once
A fixed-price contract looks like a simple trade: an agreed scope for an agreed number. What it actually does is move three separate risks from the client's side of the table to yours. If the work takes longer than estimated, you absorb it. If the client wants a third revision round, you absorb it. And the platform's fee comes off the top of a number you already committed to, so there is no room left to recover.
Each risk has the same remedy — price it before you submit — and each is routinely skipped. Freelancers estimate delivery hours and forget the meetings, quote the client's stated budget instead of their own calculation, and add the fee percentage rather than dividing by it. Three small errors compound into projects that finish at half the intended rate.
This guide runs the full calculation on a real $5,000 website build: every hour counted, contingency named, acquisition cost attached, fee divided out, and milestones structured so the scope defends itself without a difficult conversation in week three.
How to price an Upwork project in five steps
- 01
Estimate every hour, not just the delivery hours
Fixed-price projects lose money in the hours nobody estimated: kickoff calls, clarifying messages, asset chasing, two rounds of revisions, handover and the invoice follow-up. A build you think of as thirty hours is usually forty-two. List the non-delivery hours explicitly before you price, because on a fixed bid they are the difference between a good rate and a bad one.
- 02
Multiply by your target rate, then add a contingency
Multiply the honest hour estimate by the rate you need to receive, then add 10% to 20% for the unknowns any real project contains. Contingency is not padding — it is the price of accepting the risk the client is handing you. On an hourly contract the client absorbs overruns; on a fixed bid you do, and you should be paid for that transfer.
- 03
Add the acquisition cost of winning the bid
Count the connects and boosts spent on proposals in the month, divide by contracts won, and attach the result. If twenty proposals cost $45 and won two projects, each project carries roughly $22 before work begins. Agencies call this business development and build it into every quote; freelancers usually call it nothing and pay it out of margin.
- 04
Divide by one minus your effective fee
Only now does the platform enter the calculation. Quoted price = (hours × rate + contingency + acquisition) ÷ (1 − effective fee). At a 12% effective fee, a $4,500 internal number becomes a $5,114 bid. Adding 12% instead of dividing returns $4,435 — you would have quoted higher and still missed your target.
- 05
Structure milestones so the scope defends itself
Split the project into three or four funded milestones with explicit deliverables, and write the revision allowance into each. Milestones are the mechanism that turns a written scope into an enforceable one: work outside a milestone is a new milestone, priced at the same calculated rate. Without them, a fixed price is an invitation to an unlimited scope.
A worked example: a website build quoted at $5,250
A multi-page website for a new client, priced by a freelancer whose target rate is $85 an hour at a 12% effective fee. The first two lines are where most bids go wrong: nine hours of calls, messages and handover that never make it into the estimate.
| Line | Value | Note |
|---|---|---|
| Delivery hours (honest estimate) | 38 hrs | Design, build, content, testing |
| Non-delivery hours | 9 hrs | Calls, messages, asset chasing, handover |
| Total hours × $85 target | $3,995 | 47 hours, fully counted |
| Contingency (15%) | +$599 | Price of accepting overrun risk |
| Acquisition cost | +$22 | Connects share per won contract |
| Internal price | $4,616 | What you must receive |
| Divide by (1 − 0.12) | $5,245 | Fee priced in, not absorbed |
| Quoted to client | $5,250 | Four milestones, 2 revisions each |
Project pricing by size and shape
Typical ranges at an $85 target rate with 15% contingency and a 12% effective fee, already divided out. Use them as sanity checks on your own calculation, not as quotes — your target rate and fee are the inputs that matter.
| Project type | Honest hours | Milestones | Quoted range | Structure note |
|---|---|---|---|---|
| Small fix / audit | 5–12 | 1 | $600–$1,300 | One milestone, no revisions beyond one |
| Landing page | 15–25 | 2 | $1,700–$2,800 | 50% up front, balance on launch |
| Multi-page website | 40–60 | 4 | $4,500–$6,800 | The worked example's shape |
| Brand or content system | 60–90 | 4–5 | $6,800–$10,000 | Stage-gate each phase |
| Ongoing retainer | 20–30/mo | Monthly | $2,300–$3,400/mo | Re-price every six months |
Signs your fixed-price bids are losing money
Each one shifts risk onto you without compensation. The first and the last are the two worth fixing this week.
- !Your bid is the client's stated budget rather than your calculation
- !Revisions are unlimited or unmentioned in the proposal
- !The whole project is one milestone
- !You estimated delivery hours only and forgot calls and admin
- !There is no contingency line in your internal number
- !You added the fee percentage instead of dividing by it
- !The scope lives in chat messages, not the contract
- !You have never compared a finished project's effective rate to your target
The hours nobody estimates
Track a finished project honestly and the shape is always the same: delivery hours are roughly what you guessed, and everything around them is not. A kickoff call, a dozen clarifying messages, chasing logos and copy that arrive late, two revision rounds, a handover walkthrough and an invoice reminder. Twenty to twenty-five percent of the project, invisible in the estimate.
The remedy is a checklist rather than optimism. Before pricing, write down the non-delivery hours as their own line: calls, messaging, asset wrangling, revisions, handover, admin. Put a number on each. The total will feel too high and it will be approximately right.
Then measure after delivery. Compare received payment after fees against total hours consumed, and you have the project's effective rate. Do this on five projects and your estimating improves permanently, because you will finally be calibrating against outcomes rather than intentions.
Milestones are a scope tool, not just a payment tool
Most freelancers set up milestones to protect payment. Their more valuable job is defining boundaries. When milestone two says 'five interior pages, two revision rounds,' a request for a sixth page is not an argument — it is simply outside milestone two, and the response is a new milestone at the same calculated rate.
Write the revision allowance into each milestone rather than into a general terms paragraph nobody reads. Clients respect limits that are attached to the thing being delivered, and they make faster decisions when feedback rounds are finite.
Fund the first milestone before starting, and release each only against its named deliverable. This is ordinary professional practice on the platform, it is what the escrow system exists to support, and it removes almost every awkward conversation that fixed-price work otherwise produces.
Frequently asked questions
How do I price a fixed-price project on Upwork?
Estimate every hour the project will consume including calls and revisions, multiply by your target rate, add 10% to 20% contingency and your acquisition cost, then divide by one minus your effective fee. The division is what puts the platform's cut on the client's side of the invoice rather than yours.
Should I bid hourly or fixed-price on Upwork?
Hourly suits open-ended or exploratory work where the scope will move; fixed-price suits well-defined deliverables you have built before. The deciding question is who should carry the risk of overrun. If you cannot estimate the hours within about twenty percent, you are being asked to price uncertainty — bid hourly or charge a discovery phase first.
How much contingency should I add to a fixed bid?
Ten percent for work you have delivered many times, fifteen to twenty percent for a familiar shape with a new client, and thirty percent or more for anything involving unfamiliar systems or multiple stakeholders. If the contingency feels uncomfortably large, that is a signal the scope is not defined enough to be fixed-price yet.
How should I structure milestones on Upwork?
Three to four milestones, each with a named deliverable, a funded amount and an explicit revision allowance. Fund the first before work starts, and release each only against its deliverable. Milestones are not just payment protection — they are the boundary that makes scope enforceable without a difficult conversation.
What if the client's budget is below my calculated price?
Reduce the scope, not the price. Remove a milestone, cut a page, narrow the revision allowance, and quote the smaller project at the same calculated rate. Dropping the price to fit a budget keeps the full scope and funds it from your margin — and you pay the platform fee on the discount too.
Does the Upwork fee apply to fixed-price milestones?
Yes — the freelancer service fee applies to milestone payments just as it does to hourly invoices, which is why the division belongs in the bid rather than in a later regret. Confirm the fee shown on the specific contract before you submit, since it can differ between clients and relationships.
How do I handle scope creep on a fixed-price contract?
Name it early and price it calmly: 'That is outside the current milestone — I can add it as a new milestone at X.' The word 'free' should never attach to added scope. Freelancers who lose money on fixed bids almost always lost it in small unbilled additions rather than one big one.
How many revisions should a fixed-price project include?
Two per milestone is the workable default: one substantive round and one polish round. Unlimited revisions convert a fixed price into an hourly contract you are not being paid for, and in practice they make clients less decisive rather than more satisfied, because nothing is ever final.
What is a good effective hourly rate on a finished fixed project?
Compare the payment you received, after fees, against every hour the project consumed. If the result is within ten percent of your target rate, the pricing worked. If it is thirty percent below, the estimate or the scope control failed — and the same project shape will fail again next time unless the estimate changes.
Should I quote a range or a single price?
A single price against a written scope. Ranges invite clients to hear the bottom number and remember it as the price, then treat the top as a cost overrun. If you genuinely need flexibility, offer two defined options at two fixed prices instead — a smaller scope and a fuller one.
How do I price a project when the client's brief is vague?
Sell a paid discovery milestone first: a few hours to define the scope, priced at your calculated rate, with the written specification as the deliverable. Then quote the build against that specification. Bidding a fixed price against a vague brief is the single most reliable way to lose money on a marketplace.
Does bidding lower win more Upwork projects?
It wins more of the clients least worth having. Buyers comparing bids on price alone tend to be the ones who also request the most revisions and pay the slowest, and the fee applies to the discounted figure too. A sharper proposal, a relevant portfolio piece and a clearer milestone plan move win rates more than a lower number does.
Price your next Upwork project properly
Enter your hours, target rate and fee to get a bid that survives revisions, overruns and the platform's cut.
Open the calculator →About the author
Freelance pricing strategist · Founder, FreelancerMetrics
Javed spent a decade setting rates on both sides of the table — first quoting projects inside a digital agency, then running an independent practice. He now builds pricing tools used by freelancers in over 40 countries, and every guide here is based on real quotes, invoices and negotiations rather than recycled advice.
- 10+ years pricing freelance and agency work
- Reviewed 400+ freelancer P&Ls and rate cards
- Builder of the FreelancerMetrics rate calculators
- Writes only from first-hand client and invoice data
Sources & methodology
Benchmarks in this guide come from public data and from anonymised rate and invoice figures shared by FreelancerMetrics users. Where a number is an estimate rather than a published statistic, it is labelled as such in the text. Primary references:
- 1Freelancer Service FeeUpwork Help Center
Official explanation of contract-specific freelancer fees and when the fee is shown.
- 2Pricing and market research guidance for small businessesU.S. Small Business Administration
Cost-plus, markup and value pricing definitions applied throughout this guide.
- 3Pricing and negotiation research archiveHarvard Business Review
Evidence on anchoring, value framing and concession behaviour in B2B negotiation.
- 4Freelance contracts, payment and rate resourcesFreelancers Union
Contract terms, late-payment protections and independent-worker income guidance.
Last reviewed August 4, 2026 by Javed Niamat. Tax and benefit figures are US-centric; check your local authority before filing.