The pitch is a performance. Delivery is an accounting exercise. The gap between the two is where agencies lose accounts in month three — not because the work was bad, but because nobody wrote down what was promised.
A clean sales-to-delivery handoff is the single cheapest churn-prevention mechanism an agency has. It costs about 90 minutes of structured work per new client and it stops the most common failure pattern in the business: a client who believed they bought one thing and received another, equally valuable thing they never asked for.
Where pitch promises actually leak
Promises don't live in one place, which is exactly why they go missing. In a typical agency sale, commitments get made in at least five locations:
- The deck — slide 14, "Phase 1 includes a full technical audit and migration support"
- The proposal or SOW — the formal, lawyer-adjacent version, usually vaguer than the deck
- Discovery and pitch calls — where the salesperson said "yes, we can absolutely look at your Shopify filter pages"
- Email threads during negotiation — where the extra deliverable got thrown in to close
- The verbal close — "we usually see movement in 90 days" becomes, in the client's memory, a guarantee of results by day 90
The SOW is the only one that reliably reaches the delivery team. The other four evaporate. Then the client asks in week six about the Shopify filter pages, the PM says "that's not in scope," and the relationship takes a hit it never fully recovers from.
Step 1: Build a promise inventory before the handoff meeting
Before anyone meets, the salesperson writes a single document listing every commitment made during the sale. Not a summary — a list. One line per promise, with the source.
Example from a real-ish $6,000/month retainer:
- Full technical audit delivered by end of week 3 — deck, slide 14
- Monthly reporting with revenue attribution, not just rankings — pitch call, 22:40
- Four blog posts per month, 1,500+ words, written by a subject-matter writer — SOW
- "We'll handle the internal linking across your 400 product pages" — pitch call, 38:10
- Weekly Slack availability, same-day response — negotiation email, Oct 14
- Migration support for the Q1 replatform — verbal, final call
- "You should see traction in 90 days" — verbal, final call
Item 7 is not a deliverable, but it absolutely needs to be on the list. Expectations about outcomes cause more churn than expectations about outputs. If the salesperson anchored a 90-day timeline, delivery needs to know on day one so they can either build toward it or actively reset it. We've written a full script for the moment that conversation goes wrong in when a client says "SEO isn't working" — but the better move is never getting there.
Mine the call recordings
If you record sales calls (you should), have someone skim the last 15 minutes of each one. That's where closing promises get made, usually off-script, usually by a salesperson trying to overcome a final objection. It takes ten minutes per account and it catches the promises that are most likely to blow up.
Step 2: Classify every promise into three buckets
Not all promises carry the same weight, and treating them identically wastes effort. Sort each line into:
- Contracted — in the SOW, billable, non-negotiable. Four posts a month.
- Stated — said out loud with conviction, not in the SOW. The internal linking across 400 product pages. The client remembers this as contracted. You must treat it as contracted or formally trade it away.
- Directional — estimates, timelines, "we typically see." The 90-day traction comment. Needs reframing in kickoff with explicit language.
The "stated" bucket is where agencies die. It's the bucket nobody owns. Assign each stated promise a decision in the handoff meeting: deliver it, trade it, or kill it with an explicit conversation. Never "we'll see if it comes up."
Step 3: Price the promise list in hours
This is the step most agencies skip, and it's the one that reveals whether the account is profitable before you've burned a month finding out.
Take the $6,000/month retainer above. At a $150 blended rate, that's 40 hours. Now cost the promises:
- Technical audit (one-time): 16 hours
- Four posts at 1,500 words, briefed and edited: 18 hours/month
- Revenue-attribution reporting build: 6 hours setup, 3 hours/month
- Internal linking across 400 product pages: 22 hours one-time, then maintenance
- Slack same-day response: ~4 hours/month of fragmented attention
- Migration support in Q1: 20–40 hours, unscoped
- PM, QA, client calls: 6 hours/month
Month one lands around 70 hours against a 40-hour budget. The account is 75% over before anyone has opened a browser tab. That's not a delivery failure — it's a scoping failure that delivery is about to absorb.
The fix isn't to refuse the work. It's to sequence it: audit and reporting in month one, internal linking phased across months two and three at 8 hours each, migration support quoted separately as a project. The internal linking piece in particular scales badly if you treat it as a one-shot — our internal linking playbook covers how to batch it so 400 pages doesn't eat a month.
Step 4: Run a 45-minute handoff meeting with a fixed agenda
Salesperson, delivery lead, and nobody else. Agenda:
- 0–10 min — commercial reality. Rate, hours, term length, notice period, who signs off on invoices, whether there's a renewal date you should be building toward.
- 10–30 min — promise walkthrough. Line by line. Each one gets a bucket and a decision.
- 30–40 min — people. Who championed this internally? Who objected? Who's the actual day-to-day contact versus the signer? What did the CMO say they'd be judged on?
- 40–45 min — risks. Legacy CMS, legal review on every piece of content, a CTO who hates agencies.
Write the output into one document. Then the salesperson is done — no lingering "I'll stay involved," which in practice means nobody owns the account.
Step 5: Convert promises into tracked work, not a buried doc
A promise inventory in a Google Doc gets read once. The promises need to become named items in whatever system runs your delivery — phases, tasks, deliverables with dates attached — so that "internal linking on product pages" shows up on a tim

Nick Quirk

