How to Price a Project (Not Just an Hour)
Worked scenarios are illustrative composites. Our editorial pen name and method.
On this page
A useful fixed quote ties a price to an inspectable scope, an effort range and a list of expenses. Start by finding the assumptions that could change the number. The following bakery website is a worked example with chosen figures; it is not a client history or a recommended market price.
Turn the brief into acceptance criteria
“Refresh the website and add ordering” leaves the size of the job unresolved. In this example, the proposed scope is five existing content pages, one spreadsheet-backed menu, a contact form, an order form for 12 fixed products, migration of supplied photos and two consolidated revision rounds.
For each deliverable, record what completion looks like:
| Deliverable | Included in this example | Question to settle before quoting |
|---|---|---|
| Content pages | Five existing pages using one approved design system | Who supplies final copy and photos? |
| Menu | One specified spreadsheet and agreed columns | Are prices and availability the only changing fields? |
| Ordering | Twelve products and one agreed checkout flow | Are variants, delivery zones or subscriptions required? |
| Revisions | Two consolidated rounds within the approved brief | Who combines and approves feedback? |
| Handover | A walkthrough and agreed account access | Who owns each account and pays ongoing fees? |
Record exclusions beside the inclusions. A loyalty system, new product photography, copywriting and ongoing maintenance are outside this example. When an answer is missing, ask for it or price a small discovery phase; leaving the uncertainty unnamed does not remove it.
Estimate the work twice
Use a likely estimate and a higher-effort case for the same scope. Include testing, meetings and revisions. Do not attach a made-up confidence percentage to the higher estimate.
| Task | Likely hours | Higher-effort hours |
|---|---|---|
| Discovery and scope document | 3 | 4 |
| Design and template approval | 8 | 10 |
| Five content pages | 10 | 12 |
| Spreadsheet menu | 6 | 8 |
| Order form | 9 | 16 |
| Contact form | 2 | 3 |
| Photo migration | 3 | 4 |
| Testing and fixes | 6 | 8 |
| Two revision rounds | 5 | 8 |
| Total | 52 | 73 |
The order form contributes seven of the 21 additional hours. That is a useful discovery question: determine the product and checkout requirements before agreeing to the price. The other fourteen hours are still present in the higher-effort case; resolving one uncertainty does not resolve every task.
Separate your revenue target from project expenses
Assume a target of $70 per working hour after direct project expenses, plus $200 of direct expenses paid by you. These are chosen inputs. The hourly amount still has to support your overhead, personal income and taxes; it is not net profit or take-home pay.
- Likely effort: 52 × $70 + $200 = $3,840.
- Higher effort: 73 × $70 + $200 = $5,310.
Use your own hourly rate calculation as a starting point. Keep the cost definitions consistent: do not add the same expense again if your internal rate already includes it. Expenses paid directly by the client should not also appear as your out-of-pocket cost.
Stress-test the quote before sending it
Suppose you are considering $4,950. Subtract the $200 of project expenses first, leaving $4,750 to cover your time and remaining business needs.
| Outcome at a $4,950 price | Calculation | Revenue per working hour after direct expenses |
|---|---|---|
| Likely effort | $4,750 ÷ 52 | $91.35 |
| Higher effort | $4,750 ÷ 73 | $65.07 |
| Hours affordable at the $70 target | $4,750 ÷ $70 | 67.86 hours |
The higher-effort case misses the target. The total that meets the target in that case is $5,310, or $360 above the candidate quote. That gives you a concrete choice to discuss: a different price, a narrower agreed scope, or paid discovery that resolves the estimate. A percentage buffer without this check can still leave the project underpriced.
If the actual result is 60 hours, the same quote produces $4,750 ÷ 60 = $79.17 per hour after direct expenses. Record actual time and expenses after delivery, then compare the estimate task by task. That record improves the next quote more than remembering whether this one merely felt busy.
Keep scope risk and deadline cost separate
An uncertain integration within the agreed scope is estimation risk. A new loyalty feature is additional scope. Delivery a week earlier changes the schedule, and may displace other paid work. Label each separately so you can see what changed.
Use the rush quote comparison to test the changed hours and displacement cost against the normal booking. Its minimum surcharge preserves the normal hourly revenue under your inputs; it cannot decide whether the compressed schedule is possible.
Put a reviewable offer together
Before sending a fixed quote, include the deliverables and acceptance criteria, client materials and approval dates, revision limits, delivery milestones, payment schedule, direct expenses, and how proposed changes will be priced before work proceeds. This is a project-planning checklist, not a contract template.
Keep any applicable transaction tax separate from the comparison above and verify its treatment for your situation. The example does not calculate tax. For an accounting margin comparison, use the margin calculator with an explicit cost basis; for recurring business costs and the number of projects needed to cover them, use the break-even calculator.