Guide · Business

How to Write a Client Proposal That Wins Work (With a Pricing Example)

A proposal that actually wins work needs three things: a clear written scope, a specific total price (not "starting at"), and a contingency buffer for the scope creep that shows up on almost every project. Say the job runs 30 hours at $65/hr — that's $1,950 in base labor; add a 15% contingency ($292.50) for revisions and scope creep, and the total quote is $2,242.50 — split into three milestones of $897, $897, and $448.50.

9 min readUpdated 2026-08-17Author: Team DaveWays
Client proposal pricing example: $1,950 labor plus $292.50 contingency equals a $2,242.50 total quote

What a Winning Proposal Actually Includes

Here's something that surprises a lot of freelancers early on: clients almost never say no because the price is too high. They say no — or more often, they just go quiet — because they can't tell what they'd actually be paying for. A proposal that says "happy to help with your website, let's figure out pricing" leaves the client doing all the work of imagining what they're buying, and people don't sign off on things they can't picture clearly.

A proposal that wins the job does the opposite. It spells out exactly what gets delivered, exactly what it costs, and exactly what happens if the project changes shape halfway through — because it usually does. None of that requires being the cheapest option in the client's inbox. It just requires being the option that leaves the fewest open questions, since an open question is often the real reason a decision stalls for another two weeks.

Think about it from the client's side for a second. They're probably comparing you against at least one other freelancer, and possibly against just doing it themselves. A proposal with a vague scope and a round number like "$2,000, negotiable" reads as a guess. A proposal with an itemized scope, a firm total, and a clear payment structure reads as someone who's done this before and knows exactly what the job takes — which, price aside, is usually the deciding factor.

A Worked Pricing Example

Take a 30-hour project quoted at $65 an hour. Base labor comes out to $1,950. On top of that, add a 15% contingency — a buffer for the small revisions and scope nudges that almost every project picks up along the way — which adds another $292.50. Total quote: $2,242.50.

A contingency isn't padding, even though it can feel that way the first time you add one. It's an honest admission that no scope estimate survives contact with a real client perfectly intact — someone asks for "just one more small thing," a file format changes, a stakeholder who wasn't in the first meeting has notes. Building a buffer in from the start means that when one of those things happens, it's already been priced for instead of becoming an awkward renegotiation over email three weeks in. Somewhere between 10% and 20% is the common range; this example lands right in the middle at 15%.

Quote build-up: labor, contingency, total30 hours at $65/hr plus a 15% contingency totals $2,242.50.Base labor (30 hrs @ $65)$1,950Contingency (15%)$292.50Total quote$2,242.5030 hours at $65/hr, plus a 15% scope-creep contingency.

Splitting the Total Into Milestones

Quoting a flat total instead of an open-ended hourly estimate takes the client's biggest worry off the table — "how many hours is this actually going to eat up" — and replaces it with a single number they can say yes to. But a flat total by itself still leaves a question hanging for you: what if you finish half the work and the client disappears? That's what milestones are for.

Splitting the total into payments tied to real deliverables protects both sides at once. The client isn't asked to hand over the full amount before any work exists, so they get to see progress and confirm it matches what they expected. You, meanwhile, are never more than one milestone's worth of work away from getting paid for what's already done. In this example, the $2,242.50 total splits 40/40/20: $897 upfront before work starts, $897 at a clear midpoint deliverable, and $448.50 on final delivery.

That exact split isn't a rule — it's a fit for a project with a natural middle checkpoint. A shorter project with no obvious halfway point often does better with a simple 50/50: half up front, half on delivery. A longer engagement, say six or eight weeks, might call for four or five smaller milestones instead of three, so nobody's waiting a month and a half between payments. The principle that carries across all of them is the same: never so much money changes hands at once that either side is taking on more risk than they realize.

Milestone payment split (40/40/20)A $2,242.50 quote split into three milestone payments of $897, $897, and $448.50.Milestone 1 (upfront, 40%)$897Milestone 2 (midpoint, 40%)$897Milestone 3 (delivery, 20%)$448.50Total across all three milestones: $2,242.50.

Common Mistakes That Sink an Otherwise Good Proposal

Even a well-priced proposal can fall flat for reasons that have nothing to do with the number at the bottom. The most common one is burying the price. If a client has to scroll through three paragraphs about your process and philosophy before they find out what it costs, you've made them work for information they wanted first — lead with the scope and the price, then explain the reasoning if it's needed.

The second is leaving "revisions" undefined. Everyone assumes revisions are included until the moment they aren't, and that moment is always more awkward than just stating a number upfront: "two rounds of revisions included; additional rounds billed at the hourly rate." One sentence, and an entire category of future disagreement disappears.

The third is quoting a range instead of a number — "$1,800 to $2,500 depending on scope" — which sounds flexible but actually reads as uncertainty. If the scope genuinely isn't locked down yet, that's a sign the proposal is being sent too early, not that a range is the right way to handle it. Nail the scope first, then quote the specific number that scope requires.

Step-by-Step: Writing the Proposal

Start by scoping the actual deliverables in writing — specific enough that both you and the client could independently look at the finished work and agree on whether each item is done. Vague scope is the single biggest predictor of a project that runs long and ends in a disagreement, so this step is worth the extra ten minutes it takes to get right.

Next, estimate your hours honestly, based on how long similar work has actually taken you before, not how long it would take in a perfect week. Then add a 10-20% contingency for the revisions and scope creep that show up on almost every project — this example used 15%.

Price the whole thing as a flat total, split into milestones tied to those deliverables, rather than an open-ended hourly estimate that leaves the client not knowing the final number until the invoice arrives. Then state plainly what's not included: a specific revision limit, and what a rush job would cost if the client asks for one later. That single paragraph heads off most scope creep before it starts, because the client already knows where the line is.

Finally, put an expiration date on the proposal itself — commonly 14 to 30 days — so the number you quoted, based on your availability and costs on the day you wrote it, doesn't quietly become a promise you're stuck honoring two months later when everything about your schedule has changed.

The Short Version

A proposal wins work by removing uncertainty, not by being the cheapest one in someone's inbox: a specific written scope, a flat total price with a built-in contingency, and milestone payments tied to real deliverables. For a 30-hour job at $65/hr plus a 15% contingency, that's $2,242.50 total, split into three milestones of $897, $897, and $448.50 — a structure the client can approve in one read, with no open-ended hourly guesswork on either side.

Product recommendation

Recommended DaveWays Resources

FAQ

What should a client proposal always include?

At minimum, a clear written scope of what's being delivered, a specific total price rather than a range, a realistic timeline, and a short list of what's explicitly not included. Clients rarely walk away from a proposal because the number is too high — they walk away because they can't tell what they're actually agreeing to.

How much contingency should I add to a project quote?

Somewhere between 10% and 20% is typical, depending on how well-defined the scope already is. This worked example used 15%, which is a reasonable default when the deliverables are clear but there's still room for a client to ask for a round of changes that weren't in the original brief.

Should I quote hourly or a flat project price?

A flat, milestone-based price usually wins more work, because it answers the client's real question — "what will this cost me, total" — instead of leaving it open-ended. Hourly billing still makes sense for genuinely unpredictable work, like ongoing support or maintenance, where nobody can honestly scope the whole thing upfront.

How many milestones should a project have?

Two payments, such as a 50/50 split, is the minimum worth using so you're never fully unpaid partway through. Three milestones work well once there's a clear middle deliverable to attach a payment to, which is exactly the setup in this article's 40/40/20 example.

Should a proposal have an expiration date?

Yes. A validity window of 14 to 30 days is standard practice, and it protects you as much as it nudges the client to decide — your rate, your availability, and your cost estimates were all accurate on the day you wrote them, not necessarily two months later.

Educational resource only, general small-business guidance, not legal advice on contract terms. The pricing example above is illustrative; your own rate, hours, and contingency will differ. See the U.S. Small Business Administration's guide to managing your business for further reading.

About Team DaveWays

Team DaveWays builds practical, one-time-purchase digital tools for money and planning.

Join the email list for practical business worksheets, planning guides, and product updates.