A proposal that closes has one defining characteristic: it mirrors the conversation that just happened. The prospect reads it and thinks "this person actually understood what I told them." Every proposal that starts with a company overview and ends with generic testimonials from unrelated clients fails this test. Here is the structure that passes it.
Section 1: The situation summary
Open with a precise summary of the prospect's situation as you understood it from the discovery call. Use their language, not yours. If they said "our outbound is inconsistent and nobody quite owns it," use that phrase. If they said "we're struggling to book calls with enterprise accounts," use that. This section demonstrates that you listened and understood. It is not about the problem generally. It is about their specific problem, as they described it.
This section should also quantify the impact of the problem where possible: "Based on what you shared, your current outbound books 4 to 6 calls per month. Your target is 20. At your average deal size of £8,000, that gap represents £96,000 to £128,000 in annual revenue." Numbers make the problem concrete and make your solution feel like a lever, not an expense.
Section 2: The approach
Explain, specifically, how you will solve the problem. Not a generic description of your service. A specific description of what you will do for this client, in this situation. "In the first two weeks, we will build three sending domains, configure your SPF/DKIM/DMARC records, and warm up 6 sending mailboxes. In weeks 3 to 4, we will build the ICP list and write the 3-email sequence. By week 5, your first campaign will be live and sending 50 emails per day." Specific timelines and deliverables build confidence. Vague process descriptions do the opposite.
Section 3: What you get and what we handle
A clear, bulleted list of deliverables. What the client receives, what Koldconvert handles, and what is expected from the client. This section prevents scope misunderstandings that derail projects and strain relationships later. Be explicit about both what is included and what is not. "We handle all technical setup, copywriting and sequence management. You provide access to your CRM and respond to booked calls."
Section 4: The investment
Present pricing clearly. One price for one defined scope is stronger than three tiers when you have a clear understanding of what the client needs. If you offer tiers, make the differences obvious and meaningful, not a list of minor feature differences. Always contextualise pricing against the outcome: "At a 2 percent reply rate on 3,000 sends per month, this investment generates 8 to 12 conversations per month. At your average deal size, one closed deal pays for 6 months of the programme." ROI framing converts proposals at higher rates than pricing presented in isolation.
Section 5: Next steps
The proposal should end with a specific, actionable next step. Not "let me know if you have any questions." But: "To proceed, sign below and we will send the onboarding questionnaire within 24 hours. Alternatively, if you would like to discuss any part of this before signing, use the link below to schedule a 20-minute Q&A call." Two paths: sign or schedule a call to close remaining questions. Both are forward movements. Neither is a dead end.
A proposal is not a document. It is the final step in a conversation that started on the discovery call. The best proposals feel like a continuation of that conversation, not a fresh start.
Frequently asked questions
How long should a B2B service proposal be?
5 to 8 pages. Long enough to demonstrate understanding and address objections. Short enough to read in 10 to 15 minutes. Proposals over 12 pages are rarely read in full.
When should you send a B2B proposal?
Within 24 to 48 hours of the discovery call. A proposal sent 5 days after the call converts at roughly half the rate of one sent within 48 hours.
Should you include pricing in a B2B proposal?
Yes. Pricing ambiguity is one of the most common reasons prospects delay decisions. Present it clearly with ROI context, not just as a line item.