A structural analysis of 1.5M+ cold emails. The three frameworks that consistently land in the top decile, and how to choose between them.
The three frameworks, and what every winner has in common
These three frameworks were identified by analyzing the last 1.5 million cold emails sent on behalf of B2B clients. The patterns below are what separated the top decile from the bottom decile.
The job of this document is to make the right framework the obvious choice for any given list, persona, and offer. Every framework here is structural: actual offer copy, list-source language, and proof claims live elsewhere and don't appear in this SOP. Treat the skeletons as scaffolds. Bring the offer.
The three frameworks at a glance
| # | Name | Opener | Best for |
|---|---|---|---|
| A | Initial Offer | The offer itself | Strong, concrete, free deliverables |
| B | Pain Point | A hypothetical pain question | Broad lists with no observable signal |
| C | Touchpoint | An external observation about the prospect | Researched lists with a real per-prospect signal |
Doctrine. The three frameworks differ in their opening line and almost nothing else. The body, the work-asymmetry split, and the soft-permission close are nearly identical across all three. The offer carries the email; the opener varies. This is the single most important thing to internalize before reading the rest.
Non-negotiable principles
- The offer must be a thing, not an abstraction. If you can't name it in 3-5 words, the offer isn't ready. "Help with email marketing" is not an offer. "We'll rebuild your highest-revenue email flow" is.
- Concrete deliverables beat abstractions. Name what they receive. Name how it's delivered. Name how long it takes them.
- The minimum-effort task ("you just A") must be doable from a phone in 30 seconds. Reply, post, forward, hit send. If their job is to attend a 20-minute kickoff call, the framework collapses.
- The CTA is one question, answerable in one word. "Worth hearing more?" "Open to it?" "Want it?" Calendars and forms belong in the reply, not the cold email.
- Subject = 2-4 words, lowercase, exactly one
{var}token. Every winner in the data fits this shape. No exceptions worth chasing. - Body = 30-50 words. Tighter ranks higher. The shorter version of your email almost always wins.
- Email 1 wins. Followups are a tax, not a multiplier. Optimize email 1 before adding email 2.
- Soft permission CTA beats the hard meeting ask. Hard meeting asks are extinct in the top decile. Cold email earns the reply; the reply books the call. A
Framework A: Initial Offer
The default. When the offer is strong enough to carry the email alone.
Highest ceiling Lowest floor
A drops directly into the deliverable and asks for permission. No observation, no pain question, no preamble. When the offer is strong enough, it wins by 2-3× the positive-reply rate of any other framework. It is also the only framework with zero losers in the dataset: every Framework A test landed at decile 5 or higher.
Structural recipe
- Subject: 2-4 words, lowercase, 1 token (e.g.,
fyi {first_name}) - Body: ~25-35 words, 2-3 sentences, exactly 1 question
- Open with the offer, not a hook
- Parenthetical breaks down the work-asymmetry: "we'd do X, Y, Z: you just A"
- Soft permission close: "would that be worth hearing more?"
- Optional P.S. with one proof claim aligned to the offer
Skeleton
Subject: fyi {first_name}
{first_name}, if we could [SPECIFIC FREE DELIVERABLE]
[completely free | at no cost]
(we'd [3-4 things you handle]: you just [the one minimal thing the prospect does]),
{would that be worth hearing more? | open to it? | interested?}
[Signature]
P.S. [Optional single proof claim aligned to the offer.]
The parenthetical is doing more work than any other line. A clause shaped like (we'd handle [step 1, step 2, step 3]: you just [the one minimal action]) pre-handles the "this sounds like a lot of work" objection before the prospect can raise it. It makes the value/effort ratio instantly visible. Cutting the parenthetical to save words tanks the framework. Keep it.
When A breaks
A has zero buffer. If the offer is vague, unaligned with the prospect's worldview, or actually a sales call disguised as a deliverable, there's nothing else in the email to save it. Three failure modes to watch for:
Vague deliverable
"If we could help you grow your business…" is shaped like A but missing the named thing. Fix: name the deliverable in 3-5 words.
Missing the parenthetical
Cutting the work-asymmetry split to save words. Fix: keep the parenthetical even if you have to cut elsewhere.
Wrong audience for the offer
A doesn't earn the email; the offer does. If the prospect doesn't immediately see why this offer matters to them, drop to B (pain hypothetical) or C (observation): both buy you a setup line.
Diagnostic. If your offer needs a setup paragraph to land, it isn't strong enough for A. The discipline of "if I have to remove all the setup, can my offer carry the email alone?" is the thing being tested. Most teams reach for B or C because their offer can't survive A: that's the diagnostic.
B
Everything in the file is how our team runs outbound for clients. If you'd rather have it built and run for you, talk to us.
Framework B: Pain Point
The fallback when the offer needs a single setup line.
Phase 1 backup
B opens with a hypothetical pain question: what if X / how would Y / curious if you've ever Z. The hypothetical buys you one extra line of attention and gives the offer a context to land in. Use B when you can't observe specifics about each prospect but you know the segment well enough to name a tension they actually feel.
Structural recipe
- Subject: same as A: 2-4 words, lowercase, 1 token
- Body: ~35-45 words, 3-4 sentences, 1-2 questions
- Open with a pain hypothetical:
what if every X received Y?orcurious if you've ever thought about Z? - Body shifts immediately into the offer. No third middle line
- Soft permission close: same shape as A
Skeleton
Subject: fyi {first_name}
{first_name}, {what if | imagine if | how differently would things look if}
[hypothetical positive outcome they'd want]?
{Happy to send | I can send | Want me to send} you a [SPECIFIC FREE DELIVERABLE]: {personalized to you | with your name on it}: to show how it could work?
[Signature]
What makes this work. The pain isn't named directly: it's implied by the hypothetical opening. That keeps defenses lower than "I noticed your team is struggling with X." The deliverable is concrete, free, and personalized. The CTA is one question, answerable in one word.
Watch for fake B's. A B framework that names the pain explicitly ("most teams we work with struggle with bad email deliverability") loses the defense-lowering benefit and reads as generic. If you can't phrase the opener as a genuine question they'd be curious to answer, you're writing a Frankenstein and should drop back to A.
C
Framework C: Touchpoint
When you have a real per-prospect signal worth using.
High personalization
C opens with an external observation about the prospect: I saw your meta ads, noticed you're running X. The observation earns the right to make the offer. Without it, you're a stranger reaching out cold; with it, you're someone who paid attention. Use C when you have a list narrow enough that you can hand-research each prospect for an actual visible signal.
Structural recipe
- Subject: 2-4 words. Either
fyi {first_name}or a 2-word observation hook (e.g.,quick observation) - Body: ~45-55 words, 4-5 sentences, exactly 1 question
- Open with a specific external observation
- One-line earned-right statement: what you do or what you noticed about that signal
- Free deliverable + soft permission close
- Optional P.S. with proof claim aligned to the observation
Skeleton
Subject: fyi {first_name} OR quick observation
{first_name}, I saw [SPECIFIC OBSERVABLE SIGNAL: something visible from outside their business].
[One-line statement of what you do or what you noticed about that signal.
This earns the right to make the offer.]
{Happy to | Want me to | I can} [SPECIFIC FREE DELIVERABLE]
so you can {see it firsthand | check it out yourself}: {open to it? | interested? | worth a look?}
[Signature]
P.S. [Optional brief proof claim aligned to the observation.]
Personalization burden. "Specific observable signal" is the hard part. It has to be real and visible to the prospect: a tool they use, a campaign they're running, a public post, not just {company_name} or {industry}. Generic personalization tokens don't count. If you can't get one observation per prospect, drop back to B. C with fake personalization performs worse than B with no personalization.
Followups: the silent killer
Followups (Re: emails on the same thread) underperform every framework on every metric. They are the largest bucket by volume: about a third of all eligible step-rows in the analysis, and they account for more than half of all bottom-decile emails. The math is brutal: every followup you send consumes sender reputation without producing meaningfully more replies.
The decay curve
| Email position | Relative reply rate | Direction |
|---|---|---|
| Email 1 | 1.0× (baseline) | carries the campaign |
| Email 2 | ~0.5× | half the rate of email 1 |
| Email 3+ | ~0.25× | half again |
Email 2 is roughly half the reply rate of email 1. Email 3 is half again. By email 4 you're paying inbox rent for almost nothing.
What to test next
- Cut email 2 entirely. Save the inbox capacity for new email-1 sends. The opportunity cost of email 2 is at least one new prospect not being touched.
- If you keep email 2, change the offer. Don't re-pitch the same thing in different words. A new offer = a new shot at a fresh angle. Same offer in different words = noise.
- Test 7-day waits instead of 3. Most email 2's land while the prospect is still mentally processing email 1.
- Make email 2 even shorter than email 1. The winning followups in the data were 25-word soft nudges, not 50-word re-pitches.
Anti-pattern: the apologetic bump. "Just bumping this up" / "did you see my last email?" / "wanted to follow up on this." This pattern lands in losers more than 2× as often as winners. If your email 2 reads like an apology for email 1 having gone unanswered, kill it and rebuild from scratch. The followup should add something, not ask for a response to what you already sent.
Cross-framework structural rules
The three frameworks differ in their opener. They are nearly identical in everything else. These are the rules that separate winners from losers regardless of which framework you choose. If you can only remember one section, this is it.
The structural deltas: top decile vs bottom decile
| Element | Winners (median) | Losers (median) | Direction |
|---|---|---|---|
| Subject characters | 16 | 20 | shorter wins |
Subject {var} tokens |
1 | 0 | always 1 |
| Body words | 47 | 59 | tighter wins |
| Body sentences | 4 | 5 | fewer wins |
| Body questions | 1 | 1 | always 1 |
| "you / your" per 100 words | 5.1 | 3.9 | more wins |
| "I / we / our" per 100 words | 3.4 | 3.6 | tied |
CTA type by decile
Soft "open to / worth a look / interested?" CTAs dominate winners and losers alike: about two-thirds of all eligible steps. The differences are in the edges:
- No-CTA emails: 32% of losers, 15% of winners. Having a CTA matters; the type doesn't have to be aggressive.
- Hard meeting asks ("book a call"): basically extinct in winners.
- Calendar links in cold email 1: zero appearances in the top decile.
Sequence position
Email 1 wins decisively on every outcome metric. The drop from email 1 to email 2 is roughly 50%. The drop from email 2 to email 3 is another 50%. Treat email 1 as where 80% of the optimization effort goes.
The rule under all the rules. A shorter, lower-personal-pronoun, single-question email with one variable token in the subject and no calendar link wins more often than not, regardless of framework. If you're stuck choosing between two versions of an email, pick the shorter one with more "you" and fewer sentences.
Which framework when
Pick the framework based on what you have, not based on what feels novel. The decision is mostly mechanical.
The decision table
| Situation | Use | Why |
|---|---|---|
| Strong, concrete free deliverable; broad ICP | A | Offer carries the email; no setup needed |
| Broad list, no observable signal per prospect | B | Pain hypothetical buys you the second line |
| Researched list, real per-prospect signal | C | Observation earns the email |
| You have an observation but no offer ready | None | Fix the offer first: C without an offer is a tease |
| You have an offer but no observation | A or B | Don't fake personalization. Faked C is worse than honest B |
Tie-breakers
- If A and B are both viable: test A first. A is the highest ceiling. B is the safety net.
- If B and C are both viable: test C only if the observation is genuinely specific to each prospect. If the observation would apply to half your list, it's not actually personalization: go B.
Phase 1 vs Phase 2 deployment
Phase 1: Offer isolation
Test offers, not framings. Use Framework A as default; B as backup when A doesn't fit. Keep copy structurally identical so the only variable being tested is the offer itself.
Phase 2: Pain/framing isolation
Only after Phase 1 has identified a winning offer. Now test variants of that offer using B and C openers to see which framing converts best. C becomes useful here because the offer is no longer the variable.
Don't test framings before the offer. If the offer isn't winning in A, testing the same offer in B or C will not save it. You'll just spread the same weak signal across more variants. Phase 1 is mandatory before Phase 2, not optional.
Common mistakes
Self-review checklist. After every send, score the email against this list. Patterns here predict your reply rate.
| Mistake | Fix |
|---|---|
| Vague deliverable ("we help with X") | Name the thing in 3-5 words. If you can't, the offer isn't ready. |
| Cutting the parenthetical to save words | Keep it. The work-asymmetry split is doing more work than any other line. |
| Hard meeting ask in email 1 | Replace with a soft permission close. Save the meeting ask for the reply. |
| Generic verbs ("grow / improve / optimize / scale") | Replace with the buyer's outcome word: demo calls, flow revenue, annual savings. |
| No CTA at all | Always end with one question, answerable in one word. |
| Over-personalized opener with weak offer | Trim the opener; strengthen the offer. C with a bad offer beats nothing, but A with a real offer beats both. |
| Followup re-pitching the same offer | Change the offer or kill email 2. Re-wording isn't a new shot. |
| Subject > 4 words | Cut. Winners are short. |
Subject with no {var} token |
Add one. Every winner has exactly one. |
| Body > 50 words | Cut to 30. The shorter version of your email almost always wins. |
| "Just bumping this up" / "did you see my last email" | Don't. The apologetic bump is in the loser pile every time. |
| Calendar link in email 1 | Remove. Calendar belongs in the reply once they've raised their hand. |
Personalization tokens that aren't personal ({company_name} alone) |
If the only personalization is a merge field, you're sending a templated B with extra steps. Either find a real signal or commit to A/B. |
| Faking a Framework C observation | If "I noticed your X" applies to half your list, it isn't an observation. Drop to B. |
Post-send retro. After a campaign runs, walk this list with the actual emails sent. Patterns of two or more entries showing up across a campaign explain the reply-rate gap better than any other diagnostic.
Framework reference
Side-by-side spec for the three frameworks. Use this as a pre-write checklist.
| A: Initial Offer | B: Pain Point | C: Touchpoint | |
|---|---|---|---|
| Opener | The offer itself | Pain hypothetical | External observation |
| Body words | 25-35 | 35-45 | 45-55 |
| Sentences | 2-3 | 3-4 | 4-5 |
| Personalization burden | Low | Low | High |
| Best for | Strong concrete free offer | Broad lists | Researched lists |
| Test phase | Phase 1 default | Phase 1 backup | Phase 2 |
| Performance ceiling | Highest | Mid | Mid |
| Performance floor | Highest (zero losers in data) | Mid | Mid |
Universal rules (apply across all three)
- Subject: 2-4 words, lowercase, exactly 1
{var}token - One question CTA, answerable in one word
- Soft permission close ("worth hearing more?", "open to it?", "interested?")
- No calendar link in email 1
- "You/your" outweighs "I/we/our" by ~30% in winners
- Email 1 carries the campaign: treat email 2 as optional, not default
Provenance
Frameworks and structural rules are derived from a structural analysis of 1.5M+ cold emails sent on behalf of B2B clients. Examples are skeletons with placeholders only: no actual offers, list sources, or proof claims are reproduced. Use the structures; bring your own offer.
Read the rest of the file.
Enter your email to open this page and all 10 playbooks.