Lead with the outcome, not the company
Most proposals open with three pages about the supplier — history, awards, team photos. The buyer skips these. Open instead with what they will get and what changes for them. Two paragraphs is enough.
Save the company background for an appendix, or cut it entirely if the buyer already knows you.
The eight sections that matter
A complete B2B proposal usually has these blocks, in this order:
- Executive summary — the outcome in two paragraphs.
- Scope of work — exactly what is included, written so a non-expert can review it.
- Deliverables — what the buyer gets and in what format.
- Timeline — major milestones with realistic dates.
- Pricing — fixed fee, hourly, or value-based, with totals shown clearly.
- Optional add-ons — extras the buyer can opt into without renegotiating.
- Terms — payment terms, IP ownership, change-request process.
- Acceptance — how to say yes, including signature or click-to-accept.
Scope is where deals die
Vague scope is the single biggest cause of late proposals and unhappy projects. Write each scope item as a verb plus an object: 'Design five landing pages,' not 'Design work.' If you cannot describe a deliverable in one sentence, you have not scoped it tightly enough.
Add a short 'Out of scope' list under the scope section. It feels uncomfortable, but it prevents scope creep and shows the buyer you have thought hard about the engagement.
Pricing without surprises
Show the total in the same currency as the invoice will be, with tax handling explicitly stated. If you offer optional add-ons, price them individually so the buyer can opt in without rewriting the proposal.
Avoid hiding fees in terms. If there is a setup fee, a rush fee, or a third-party cost, put it in the pricing table.
Make accepting easy
End with a clear acceptance step. A signature line, a 'click to accept' link, or an instruction to reply with 'I accept' is enough for most engagements. Add a validity date so the proposal does not sit in a buyer's inbox for three months and resurface at the wrong price.