Most freelancers undercharge on projects because they estimate what the work should take, not what it actually takes. Fixing that gap — and building a pricing process that accounts for it — is what separates profitable project pricing from chronic underearning.
Project pricing is harder than hourly pricing because you’re absorbing the risk of your own estimate. If the project takes 40 hours and you priced it for 25, you work 15 hours for free. Getting this right isn’t about charging more — it’s about pricing accurately.
Here’s the method that works.
Step 1: Scope the work before pricing it
You cannot price what you haven’t defined. Before you quote a number, you need a written scope: what you will deliver, what format, how many rounds of revisions, and what the client is responsible for providing.
Scope in writing does three things. It forces the client to think through what they actually need. It gives you the specifics to estimate against. And it protects you if the project expands — anything outside the written scope is a change order, not free work.
If a client can’t or won’t define scope clearly, either run a paid discovery phase first (1–3 days of scoping at your day rate) or price the project much higher to absorb the uncertainty.
Step 2: Estimate hours by phase
Break the project into phases and estimate each separately. For a website project, that might be:
- Discovery and strategy (client calls, research, sitemap)
- Wireframes or design concepts
- Development or execution
- Revisions (round 1 and round 2)
- QA, launch, and handoff
Estimate hours for each phase. Then look at your historical data. If you’ve done five similar projects and your estimates were consistently 30% low, add 30% to each phase.
Most freelancers skip this review step and repeat the same estimation errors indefinitely.
Step 3: Add non-execution time
Execution is only part of the total project time. Add hours for:
- Client communication: Calls, emails, Slack messages. For a 4-week project, this often runs 5–10 hours total.
- Project management: Creating briefs, managing files, organizing feedback.
- Revisions beyond the included rounds: You’ll often get them even when you say revisions are limited.
- Handoff: Documenting your work, training the client, writing instructions.
These categories routinely add 20–30% to execution time. Forgetting them means working those hours unpaid.
Step 4: Choose a pricing format
With a total hour estimate and your hourly rate, you have a cost floor. Now decide how to present it.
Fixed fee: One number for the defined scope. Best for clients who need budget certainty and for projects where scope is tight. You earn more if you’re efficient, less if you’re not.
Time-and-materials: Client pays for hours logged, up to an agreed cap. Best for exploratory or evolving projects. Less risk for you; less budget certainty for them.
Value-based: Price based on the outcome’s worth to the client, not your hours. A landing page that generates $200,000 in revenue is worth more than 20 hours of your time suggests. This requires understanding the client’s business well enough to articulate the value — but when you can, it often doubles or triples what you’d charge hourly.
Value-based pricing is not about charging more for the same work. It’s about pricing work whose value to the client exceeds what an hourly rate captures.
Step 5: Build your quote and present it clearly
Once you have a price, present it in a format that shows what’s included. A clear, itemized quote removes the ambiguity that invites negotiation.
Tools like Waco3 make this practical — you can build a proposal with line items by phase, specify revision rounds, and track when the client opens it. That visibility tells you when to follow up and signals which part of the quote they’re looking at most.
The proposal isn’t just a number. It’s a document that demonstrates you’ve thought through the project. That alone increases close rates.
Common pricing mistakes to fix now
Pricing from memory, not records. If you don’t track actual hours per project, you can’t improve your estimates. Start now, even just a simple spreadsheet.
Discounting before you’ve been asked. Many freelancers pre-discount their rate out of anxiety. Send the real number first. Negotiate if pushed.
Not including a payment schedule. For projects over $1,000, always split payments: 40–50% upfront, the remainder at delivery or a midpoint milestone. This protects you and signals professionalism.
Forgetting to specify what’s not included. “Website design” means different things to different people. List explicitly what’s excluded — SEO, copywriting, stock photography, hosting setup — so there are no surprises.
Price the next project better than the last
Every project you complete gives you data: how long it actually took, where scope expanded, what the client changed. Keep a simple log. Your estimates will get more accurate over time, your prices will better reflect reality, and your margins will stop disappearing.
Good project pricing is a skill. It gets better with practice and records.
Ready to send stronger proposals?
Build, send, and track proposals in one place so follow-up is easier.
Start your free trial →





