How to Build a Profitable Project Quote Without Guessing

Most quotes are a guess wearing a suit. You look at the project, remember what you charged the last client, add a little because this one seems demanding, and send a number. Then the work runs two weeks long, the margin quietly disappears, and you never find out exactly where. To build a project quote you can defend — to the client and to yourself — you need five layers stacked in the same order every time: scope, labor, direct costs, contingency, and target contribution.

Everything below works in a blank spreadsheet. No software required to start.

Start With Scope, Not With a Number

Pricing before scope is why quotes fail. If you cannot write a deliverable as a noun phrase the client could tick off a list, it is not scope — it is a hope.

Open a sheet and make four columns: Deliverable, Quantity, Acceptance criteria, Assumption owner.

  • Deliverable: „Homepage design, desktop and mobile.“ Not „design work.“
  • Quantity: 8 pages. 2 revision rounds. 1 logo lockup plus 3 variants. Numbers make the boundary real.
  • Acceptance criteria: what the client has to see to call it done. „Approved in writing by the marketing lead“ is a criterion. „Client is happy“ is not.
  • Assumption owner: the thing you are depending on and who supplies it. „Client supplies final copy for all 8 pages by day 10.“

Then write an exclusions list — five to ten lines of what is explicitly not included. Copywriting, SEO migration, third-party license fees, ongoing hosting, training sessions. Exclusions are not defensive paperwork. They are the only thing standing between a fixed price and unlimited work.

The Five Layers You Need to Build a Project Quote

Now you can price. Build a project quote by stacking these in order, each one a separate block of rows in your sheet.

  1. Labor hours by phase. Estimate each phase separately: discovery, design, build, QA, and project management. Estimate PM time explicitly — client calls, revision chasing and status emails are real hours, and they are the ones people forget.
  2. Your internal cost rate. This is not your billing rate. Add your target annual compensation, your business overhead (software, insurance, accounting, hardware, marketing) and a reserve for self-employment tax and benefits. Divide by realistic billable hours for the year — not 2,080. Twenty to twenty-five billable hours a week over forty-four working weeks is a more honest starting point. Labor cost equals hours multiplied by this rate.
  3. Direct costs. Anything you pay out specifically for this project: subcontractors, stock assets, plugin or font licenses, staging environments, travel. Enter these at what you actually pay, then decide separately whether you mark them up.
  4. Contingency. A percentage of labor plus direct costs, set by how much you do not know.
  5. Target contribution. The margin the project must leave behind after all of the above.

For contingency, use a rule instead of a mood:

  • Repeat client, work you have done before, scope defined to deliverable level: 5%
  • New client, familiar type of work: 10%
  • New client, or delivery depends on client-supplied content or approvals: 15%
  • New technology, unfamiliar integration, or more than two stakeholders approving: 20–25%
  • You genuinely cannot describe the finish line: do not fix-bid it. Quote a paid discovery phase instead, then quote the build.

For the final price, do not add margin on top — divide it out. If your loaded cost is C and your target contribution is 25%, then price = C ÷ (1 − 0.25). Adding 25% to cost gives you a 20% margin, and that gap is where a lot of small firms slowly bleed.

A Worked Example: Brand Refresh and an 8-Page Site

A freelance designer quotes a brand refresh plus an eight-page marketing site for a new client.

Step 1 — Hours. Discovery 6, design 28, build 34, content and QA 12, project management 10. Total 90 hours.

Step 2 — Internal cost rate. Target compensation $85,000, overhead $18,000, tax and benefits reserve $22,000. That is $125,000 to cover. Billable capacity: 25 hours per week across 44 weeks = 1,100 hours. Cost rate = $125,000 ÷ 1,100 ≈ $114 per hour, rounded to $115.

Labor cost: 90 × $115 = $10,350.

Step 3 — Direct costs. Stock photography $120, plugin and font licenses $340, subcontracted copy edit (6 hours at $65) $390, staging host for the project window $60. Total $910.

Loaded cost so far: $11,260.

Step 4 — Contingency. New client, and the timeline depends on the client delivering copy. That is 15%: $1,689. Running total: $12,949.

Step 5 — Target contribution of 25%. $12,949 ÷ 0.75 = $17,265. Quote it at $17,250, split 40% on signature, 30% at design approval, 30% on launch.

The useful part is not the final figure. It is that you can now answer „why is it that much?“ line by line, and you know exactly which line moves if the client pushes back.

The Decision Rule When the Number Comes Back Too High

Say the client’s budget is $12,000. You have three moves, and only one of them is wrong.

Cut scope, not price. Drop to five pages, one revision round, and client-supplied photography. Re-run the same sheet. The number falls because the work fell — and the client sees the trade, which protects the value of what stays.

Use thresholds so this is a decision, not a negotiation:

  • Gap under 10%: absorb it only if the client is strategically worth it, and cut one deliverable to close the difference.
  • Gap of 10–30%: cut scope, or restructure into phase one and phase two with a separate quote for each.
  • Gap over 30%: decline, politely and quickly. A project priced 30% below its loaded cost does not become profitable through effort.

Put a validity date on every quote — 30 days is standard — and re-price anything older. Subcontractor and license costs move, and an expired quote you honor out of politeness is a discount you did not choose to give.

Where a Spreadsheet Stops Being Enough

A sheet is the right tool for building an individual quote. It stops being enough at three specific points.

When estimates never meet actuals. A quote sheet predicts. It cannot tell you the last site took 118 hours, not 90, unless something feeds real time back into it. Without that loop you repeat the same estimating error indefinitely. Log actual hours per phase against every quote, even roughly, and revise your phase estimates quarterly.

When several people share the same hours. Once two or three people are booked across overlapping projects, the constraint is scheduling, not pricing. A single-project sheet cannot see that you have sold the same week twice.

When version control breaks down. Two people editing quote_v4_FINAL_new.xlsx will eventually send a client the wrong number. At that point you want a template with locked calculation cells and one editable input tab — or a proper system.

Your Pre-Send Checklist

  1. Every deliverable has a quantity and an acceptance criterion.
  2. The exclusions list exists and has at least five lines.
  3. Project management and revision hours are in the estimate, not absorbed.
  4. Your cost rate uses realistic billable hours, not 40 per week.
  5. Direct costs are itemized at real amounts.
  6. Contingency was chosen by rule, not by feel.
  7. Margin was divided out, not added on.
  8. Payment schedule, validity date, and change-order rate are stated.
  9. You would still take this project at 15% over your estimated hours.

If the answer to the last one is no, the price is wrong — not the client.

If you would rather not rebuild those five layers from scratch for every proposal, the Proposal & Quote Profitability Builder gives you the structure as a ready spreadsheet with the cost-rate and margin math already wired in. You can browse the rest of the Cursiqa shop for related pricing and cash-flow tools, or keep reading practical pieces on the Cursiqa blog first — the method above works whether or not you ever buy anything.

Get one practical template each month

A short email with one usable worksheet or checklist. No sales sequence, unsubscribe in one click.