{"id":693,"date":"2026-09-17T05:02:02","date_gmt":"2026-09-17T05:02:02","guid":{"rendered":"https:\/\/abrarqasim.com\/blog\/web-development-proposal-template-the-section-that-wins-the-job\/"},"modified":"2026-09-17T05:02:02","modified_gmt":"2026-09-17T05:02:02","slug":"web-development-proposal-template-the-section-that-wins-the-job","status":"publish","type":"post","link":"https:\/\/abrarqasim.com\/blog\/web-development-proposal-template-the-section-that-wins-the-job\/","title":{"rendered":"Web Development Proposal Template: The Section That Wins the Job"},"content":{"rendered":"<p>The longest proposal I ever sent was fourteen pages. It had a cover, a table of contents, a section on my &ldquo;approach&rdquo;, two case studies, and a pricing table on page eleven. The client&rsquo;s entire reply was: &ldquo;Thanks. What&rsquo;s the total?&rdquo;<\/p>\n<p>That was 2019. I&rsquo;ve sent a lot of proposals since, and the ones that got signed were the short ones. The template I use now is two pages, sometimes three, and it opens with a section most developers leave out entirely. This post is that template, section by section, with the wording I use and the reasons I use it. Copy what&rsquo;s useful. Argue with the rest.<\/p>\n<p>One thing before we start: a proposal isn&rsquo;t a quote. A quote is a number. A proposal is the document that makes the number feel reasonable, and that&rsquo;s a different job. If your proposals get answered with &ldquo;what&rsquo;s the total?&rdquo;, the number isn&rsquo;t the problem. The document around it is.<\/p>\n<h2 id=\"open-with-their-problem-in-their-words\">Open with their problem, in their words<\/h2>\n<p>The first section of my proposal has no heading about me. It&rsquo;s headed with the client&rsquo;s project name and it restates the problem they told me about on the discovery call, using their phrasing wherever I can.<\/p>\n<p>If they said &ldquo;our checkout page loses people on mobile and we don&rsquo;t know why&rdquo;, that sentence goes in almost verbatim, followed by two or three lines about what I heard behind it. Something like: the team has no analytics on the checkout steps, the page was built in 2021 and hasn&rsquo;t been touched, and the owner suspects the shipping calculator but hasn&rsquo;t been able to prove it.<\/p>\n<p>I do this because it&rsquo;s the section clients read first and read most carefully. They&rsquo;re checking whether I understood them. Every proposal that&rsquo;s been signed quickly had a client reply along the lines of &ldquo;yes, exactly, that&rsquo;s the problem&rdquo;. Every proposal that went quiet was one where I&rsquo;d rushed this part and described the project I wanted to build instead of the problem they had.<\/p>\n<p>It also fixes something for me. Writing their problem down in one paragraph is a test of whether I understood it. When I can&rsquo;t write that paragraph, I don&rsquo;t send the proposal. I book another call.<\/p>\n<h2 id=\"whats-out-of-scope-goes-above-whats-in-scope\">What&rsquo;s out of scope goes above what&rsquo;s in scope<\/h2>\n<p>This is the section that wins the job, and it&rsquo;s the one I didn&rsquo;t have for my first three years. My proposals listed what I&rsquo;d build. They never said what I wouldn&rsquo;t. And every project that went wrong went wrong in the gap between those two lists.<\/p>\n<p>Now the &ldquo;Not included&rdquo; section sits directly above the &ldquo;What I&rsquo;ll build&rdquo; section. Higher on the page. That&rsquo;s deliberate: a client skimming for surprises finds the boundaries before they find the promises.<\/p>\n<p>The wording is plain. For the checkout project, it read roughly like this:<\/p>\n<pre><code class=\"language-text\">Not included in this proposal\n- Changes to the shipping calculator logic (we'll measure it first; fixing it is a separate quote)\n- Redesign of pages other than checkout and cart\n- Copywriting for the new checkout steps (I'll use your existing text)\n- App store or payment provider account setup\n- Ongoing hosting or maintenance after launch\n<\/code><\/pre>\n<p>Nobody has ever pushed back on this section. Not once. What happens instead is the client reads it and says &ldquo;oh, we do want the shipping calculator fixed, can you add that?&rdquo;, and now we&rsquo;re having the scope conversation before the contract exists instead of in week four. I wrote about <a href=\"https:\/\/abrarqasim.com\/blog\/how-to-handle-scope-creep-the-quick-one-that-cost-me-a-week\" rel=\"noopener\">the &ldquo;quick one&rdquo; that cost me a week<\/a>, and the honest lesson from that was that the proposal had no boundary for the request to hit.<\/p>\n<p>If you take one thing from this post, take this section. It costs five minutes to write and it has saved me more money than any pricing trick.<\/p>\n<h2 id=\"the-build-in-phases-with-a-price-on-each\">The build, in phases, with a price on each<\/h2>\n<p>Then the actual work. I break it into phases, and each phase gets its own line, its own deliverable, and its own price. Not hours. Not a day rate. A price for the outcome.<\/p>\n<p>For the checkout project, three phases: measure (add step-level analytics, two weeks of data, a short findings note), fix (the changes the data justifies, capped at a listed set), and verify (compare conversion for two weeks after launch, one summary). Each had a number next to it, and the total was the sum.<\/p>\n<p>Phasing does two things. It lets the client say yes to phase one without committing to everything, which lowers the risk of the first yes. And it gives me a natural place to stop if the relationship turns out badly. I&rsquo;ve had two projects end after phase one, on good terms, because the data showed the problem wasn&rsquo;t what anyone thought. Both clients came back later for other work. Neither would have if I&rsquo;d sold them a single six-week build and then told them halfway through that the premise was wrong.<\/p>\n<p>I don&rsquo;t include hourly estimates anywhere in the document. If I put &ldquo;approximately 40 hours&rdquo; next to a price, the client divides one by the other and now we&rsquo;re negotiating my hourly rate instead of talking about their checkout. The price is the price. If they want to know how I got there, I&rsquo;ll tell them on a call.<\/p>\n<h2 id=\"assumptions-and-what-i-need-from-you\">Assumptions, and what I need from you<\/h2>\n<p>Two short sections, back to back. &ldquo;Assumptions&rdquo; is where I write down the things the price depends on: that I&rsquo;ll have staging access by the start date, that the existing codebase runs locally with the README (I always check this before sending, and it&rsquo;s wrong about a third of the time), that the client can approve designs within three working days.<\/p>\n<p>&ldquo;What I need from you&rdquo; is the same idea from the other direction. A named person who can make decisions. Access credentials by a date. Existing analytics exports, if they have them. Their brand assets in a usable format, which is a sentence I added after receiving a logo as a 240-pixel JPEG for the third time.<\/p>\n<p>I don&rsquo;t write these to be defensive. Most delays on a client project are waiting, and most waiting is caused by something nobody wrote down. When the approval takes nine days instead of three, I don&rsquo;t argue. I point at the line, we agree the timeline moves, and nobody feels ambushed.<\/p>\n<h2 id=\"payment-terms-that-dont-need-a-lawyer\">Payment terms that don&rsquo;t need a lawyer<\/h2>\n<p>My terms are short. A deposit before work starts, the balance on launch, and a per-phase invoice on projects that run more than a month. The deposit is 40 percent. I&rsquo;ve tried 50 and it made a couple of smaller clients hesitate; I&rsquo;ve tried 25 and it made me the bank. Forty seems to be where nobody flinches.<\/p>\n<p>Invoices are due in 14 days. I state the late-payment terms in one line, and I don&rsquo;t invent them. In the UK, the <a href=\"https:\/\/www.legislation.gov.uk\/ukpga\/1998\/20\/section\/1\" rel=\"nofollow noopener\" target=\"_blank\">Late Payment of Commercial Debts (Interest) Act 1998<\/a> makes statutory interest an implied term of business-to-business contracts, so I reference it rather than negotiate a penalty. In New York City, the <a href=\"https:\/\/www.nyc.gov\/site\/dca\/about\/freelance-isnt-free-act.page\" rel=\"nofollow noopener\" target=\"_blank\">Freelance Isn&rsquo;t Free Act<\/a> gives freelancers a legal right to a written contract and to timely, full payment, with double damages for violations, and the state has since extended similar protections. I&rsquo;m not a lawyer and the rules where you are will differ. The point is that a lot of what you&rsquo;d want in a payment clause already exists in law somewhere, and citing it reads as calmer than threatening it.<\/p>\n<p>The other line in this section is the validity date. The proposal is good for 14 days. After that I re-quote. I don&rsquo;t do it for pressure. My availability changes, and I&rsquo;ve been caught by a client accepting a three-month-old proposal for a slot I no longer had.<\/p>\n<h2 id=\"the-skeleton\">The skeleton<\/h2>\n<p>Here&rsquo;s the whole thing, headings only, in the order it appears. Mine lives in a plain document; the tool doesn&rsquo;t matter.<\/p>\n<pre><code class=\"language-text\">[Client name]: [Project name]\nProposal, [date]. Valid until [date + 14 days].\n\n1. The problem (their words, one paragraph)\n2. Not included\n3. What I'll build (phases, each with a deliverable and a price)\n4. Timeline (start date, phase dates, what moves if approvals slip)\n5. Assumptions\n6. What I need from you\n7. Price and payment terms\n8. Next step (one sentence: reply &quot;yes&quot; and I'll send the deposit invoice)\n<\/code><\/pre>\n<p>Two pages when the project is simple. Three when there are several phases. Never fourteen.<\/p>\n<p>Section eight matters more than it looks. The document ends by telling the client exactly what to do, and it&rsquo;s one small action, not &ldquo;let me know your thoughts&rdquo;. Most of my signed proposals were accepted by a two-word email.<\/p>\n<h2 id=\"what-id-change-if-i-were-starting-again\">What I&rsquo;d change if I were starting again<\/h2>\n<p>I&rsquo;d have written the &ldquo;Not included&rdquo; section from day one, obviously. But the bigger regret is that I treated proposals as sales documents when they&rsquo;re really the first piece of project documentation. Every section above gets reused. The phases become the milestones. The assumptions become the first thing I check when something slips. The problem statement is what I read before the final demo to make sure I built what was asked for.<\/p>\n<p>Seen that way, the time spent on the proposal isn&rsquo;t overhead. It&rsquo;s the planning I&rsquo;d have to do anyway, done before the money is committed instead of after.<\/p>\n<p>If you want to see what this looks like once a project&rsquo;s finished, the case studies on <a href=\"https:\/\/abrarqasim.com\" rel=\"noopener\">my portfolio<\/a> are all projects that started with this template, and a couple of them mention what ended up in the &ldquo;not included&rdquo; list.<\/p>\n<h2 id=\"try-it-on-your-next-quote\">Try it on your next quote<\/h2>\n<p>Take the next project request that lands in your inbox and, before you write a number, write the &ldquo;Not included&rdquo; section. Five bullet points. Things you&rsquo;d assume are excluded but the client might not.<\/p>\n<p>Then write their problem in one paragraph using their words. If you can&rsquo;t, book a call before you quote.<\/p>\n<p>Send those two sections above the price. See whether the reply is &ldquo;what&rsquo;s the total?&rdquo; or &ldquo;yes, exactly&rdquo;. I&rsquo;m fairly sure I know which one you&rsquo;ll get.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The two-page web development proposal template I send clients, section by section: the &#8216;not included&#8217; list that wins the job, phased pricing, and payment terms.<\/p>\n","protected":false},"author":2,"featured_media":692,"comment_status":"","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rank_math_title":"","rank_math_description":"The two-page web development proposal template I send clients, section by section: the 'not included' list that wins the job, phased pricing, and payment terms.","rank_math_focus_keyword":"web development proposal template","rank_math_canonical_url":"","rank_math_robots":"","footnotes":""},"categories":[721],"tags":[726,772,764,773,771],"class_list":["post-693","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-freelance","tag-agency","tag-client-work","tag-freelance","tag-pricing","tag-proposals"],"_links":{"self":[{"href":"https:\/\/abrarqasim.com\/blog\/wp-json\/wp\/v2\/posts\/693","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/abrarqasim.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/abrarqasim.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/abrarqasim.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/abrarqasim.com\/blog\/wp-json\/wp\/v2\/comments?post=693"}],"version-history":[{"count":0,"href":"https:\/\/abrarqasim.com\/blog\/wp-json\/wp\/v2\/posts\/693\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/abrarqasim.com\/blog\/wp-json\/wp\/v2\/media\/692"}],"wp:attachment":[{"href":"https:\/\/abrarqasim.com\/blog\/wp-json\/wp\/v2\/media?parent=693"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/abrarqasim.com\/blog\/wp-json\/wp\/v2\/categories?post=693"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/abrarqasim.com\/blog\/wp-json\/wp\/v2\/tags?post=693"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}