· 8 min read
Quotes

How to Estimate the Cost of a Project as a Freelancer

A practical method for estimating project costs — from scoping hours to adding buffer to presenting the number to clients — so your quote covers the work…

How to Estimate the Cost of a Project as a Freelancer

Project cost estimation is a skill. Most freelancers underestimate consistently for the same reasons — they forget tasks, undercount revisions, and skip the buffer. The method below is designed to fix all three.

Why freelancers underestimate

The most common cause is intuitive estimation. A freelancer thinks about a project, gets a gut sense of what it involves, and gives a number. The gut sense doesn’t account for:

  • Email threads and status calls (5–10% of project time for most projects)
  • Revision rounds beyond the first (another 10–20%)
  • File preparation and delivery (often forgotten entirely)
  • Unexpected complexity in client-provided materials
  • Administrative time (invoicing, contracts, onboarding)

When you estimate intuitively, you’re estimating the core work — not the full engagement. The gap between those two is where projects go unprofitable.

The bottom-up method

Bottom-up estimation is the most accurate approach for most freelance projects. Here’s how it works.

Step 1: List every task

Open a blank document and write out every task the project involves, at a granular level. For a website design project:

  • Initial discovery call prep and brief review
  • Competitor research
  • UX wireframes (per page)
  • First-round design mockups (per page)
  • Client presentation and feedback session
  • Design revisions
  • Developer handoff and file prep
  • Quality review after development
  • Launch support

Include every task. If you’re not sure whether something qualifies as a task, include it anyway. It’s easier to delete a line than to explain a missing line to a client.

Step 2: Estimate hours per task

Assign a realistic hour estimate to each line. Be honest — not optimistic. Look at how long similar tasks have taken you on past projects.

If this is a new type of work, research how long it typically takes industry peers or add a significant buffer.

Step 3: Total the hours, then multiply by your rate

Sum the hours. Multiply by your hourly rate (or, if you’re pricing on a fixed-fee basis, use this as a check against the fixed price you have in mind).

Step 4: Add direct costs

Any expenses you’ll pay to complete the project: stock assets, third-party tools, subcontracted work, printing, delivery. Add these as separate line items, not folded into the hours calculation.

Step 5: Apply the buffer

Add 15–25% to your total to account for the tasks you forgot, the extra revision rounds, and the communication overhead. This isn’t padding — it’s an accurate reflection of how projects actually work.

The buffer is the single most important variable in freelance pricing. Freelancers who skip it consistently end the year having worked more than they earned for.

From estimate to client-facing quote

The internal calculation stays internal. What you send the client is:

  • A scope description of what the project includes
  • Line items that describe deliverables (not your internal hours)
  • A total

The client doesn’t need to see your task list or your hourly calculation. They need to see what they’re buying and what it costs.

If a client asks “how did you arrive at this price?” — which they sometimes do — you can explain your time estimate at a high level: “This project involves approximately [X hours] of work across design, development, and revision stages.” That’s enough context without revealing your exact rate or internal calculation.

Estimating for different project types

Hourly-billed projects: Your estimate is a time projection. Build in a buffer and communicate a range: “This will be approximately 10–15 hours.” Invoice for actual hours. If you expect to approach the upper end, tell the client before you exceed the lower end.

Fixed-price projects: Your estimate determines your bid. Build in the buffer before setting the price. If the project comes in under budget, you keep the margin — that’s the reward for accurate estimation.

Retainer work: Estimate the monthly task load and multiply by 12. Most retainers should be sized slightly above what you’d expect in a slow month to give you room without shortchanging the client in a busy one.

Using past projects as benchmarks

The most accurate estimation comes from tracking actual time on past projects. If you know that a 5-page website typically takes you 60 hours, you can quote new projects in that category with confidence.

Keep a simple log: project type, estimated hours, actual hours, notes on what threw off the estimate. Over time, the gap between estimated and actual hours closes — and your pricing gets more accurate.

Quoting tools like Waco can help by keeping all your past quotes in one place, so you can reference what you quoted for similar work and see which projects came in on budget.

Ready to send stronger proposals?

Build, send, and track proposals in one place so follow-up is easier.

Start your free trial →