Most underpriced quotes aren't a rate problem. They're a counting problem: the quote covers the deliverables and forgets the kickoff call, the revisions, the emails and the week the client went quiet.
Here's the simple structure I use. It fits in one spreadsheet and you can rebuild it in five minutes.
1. List every line, not just the deliverables
| Line item | Hours | Rate |
|---|---|---|
| Discovery / kickoff | 2 | $100 |
| Research / audit | 3 | $100 |
| Production: deliverable 1 | 8 | $100 |
| Production: deliverable 2 | 6 | $100 |
| Revisions (2 rounds) | 4 | $100 |
| Project management / comms | 2 | $100 |
| Approved expenses | at cost | — |
Two lines people skip: revisions (budget roughly 20–30% of production time) and project management (status updates and email are real hours).
Line total = hours × rate + any fixed cost. In this example the subtotal is 25 hours, $2,500.
2. Add a risk buffer as its own line
Unknowns and slow feedback always cost something. Add 10–20% as a visible buffer instead of quietly inflating your rate.
At 15%: $2,500 × 0.15 = $375.
3. Round up, on purpose
$2,500 + $375 = $2,875. Round up to the nearest $50: $2,900. A round number reads as a considered price, and the rounding is a little extra margin.
In a spreadsheet: =CEILING(subtotal + buffer, 50).
4. Split deposit and balance in the same sheet
With a 50% deposit: $1,450 due to start, $1,450 on delivery. Putting this in the quote means the deposit is never a surprise conversation later. (If you want wording for asking for one, there's a free deposit request page at https://opspack.vercel.app/deposit.)
5. Keep the sheet as your master
Save it blank. Next project you only change the hours. Over time your actual hours per line become your best pricing data.
If you'd rather not build it, the Freelance Project Quote Calculator is this exact sheet (Excel + CSV) for $9. If you track quotes and deposits in Notion, there's also a Quote + Deposit Tracker for Notion for $12.
Templates, not financial advice.
Top comments (0)