River
Y CombinatorBacked by Y Combinator
FREE TEMPLATE

B2B Cold Email Sequence Template

Four steps by segment, every reply coded by what it actually said, and an honest count of how much market you have left.

Free download  ·  No account needed

Measurement Note · Harroway · first sixty days of sending

The dashboard says 9.3%. Thirty eight of those addresses never received anything.

LineCountWhy it moves
Addresses mailed at step 1506What the tool divides by
Hard bounced3829 bad mailbox, 6 disabled, 3 refused
Actually delivered468The real denominator
Inbound counted as replies47What the tool divides
Carrying an auto-responder header15Out of office and shared mailboxes
Human replies32The real numerator
Reported reply rate9.3%47 over 506
Actual reply rate6.8%32 over 468

Neither number is a disaster. Only one of them is real, and the quarter was planned on the other.

Search this and page one hands you a four step cadence over fourteen to eighteen days, thread replies from step two, a new angle each time. Add tiered personalisation and a table showing which step produces what share of your replies, down to the percentage point. Then it tells you to A/B test the subject lines. The structure is genuinely good. The arithmetic underneath it was computed on somebody else's volume and it does not survive contact with a B2B target list.

Two things break at a few hundred addresses. Your reply rate counts machines, because an automatic responder is specified to announce itself in a header built for exactly that filtering. It also counts dead mailboxes as people who ignored you, because a bounce carries a status code naming which failure it was. Strip both out and a reported 9.3% becomes an actual 6.8%. Neither is a disaster. Only one of them is real, and every decision this quarter was made on the other.

So this pack reads sentences rather than rates. Thirty replies will never separate two subject lines, and coded by what they actually said, nine of them turn out to be addressed a level above the person who owns the decision. That is the quarter's largest finding, and no subject line test would ever surface it. Meanwhile the market has a bottom, so a meeting gets priced in accounts spent. The research behind each opening line and the purchased list before import are their own jobs, and so is checking which accounts a partner already reaches.

Thirty two replies, and the three numbers they produce

Every figure recomputes from the Sequence Register and the Reply Ledger. Nothing on these sheets was typed in by a person.

Reply Ledger

Illustrative rows for a fictional shift-planning company, Harroway, selling into third party logistics.

IDAccountStepAuto headerCodeWhat they actually said
R-018Vantry Logistics1nomeetingThirty minutes the week after peak planning closes
R-021Brookmere Freight3auto-repliedmachineOut of office until 22 June, colleague named in the footer
R-024Kestrel Handling1nowrong-personRotas sit with the site managers, not with me
R-027Halewood Pallet1nonot-now-datedNothing changes here before peak finishes in January
R-029Selby Grocery Group1noneverTake this address off every list you hold
R-031Cranfold Haulage1noalready-have-itSigned with an incumbent in March on a three year term
R-033Cranfold Haulage2noneverSecond mail after I told you we had signed
R-036Netherby Logistics1nowrong-problemOur shifts are fixed by a collective agreement
R-039Wrentham Chill1auto-repliedmachineAutomatic acknowledgement from a shared operations mailbox
R-041Ostley Contract Services2nowrong-personI left this role in April, try the new operations director

R-033 convicts the send rule rather than the copy: step 2 went out after he had already told us they had signed, and that cost the account permanently. R-027 arrived with a date on it, so it is a callback for January and not a suppression. Nine of the thirty two human replies this quarter are wrong-person.

What the list can detect

Standard two-proportion comparison at 95% confidence and 80% power, run before the split rather than after it.

QuestionAnswerAgainst what exists
Addresses needed to see 6.8% become 8.8%2,800 per arm5,600 needed, 415 contacts left
Split the remaining set two ways207 per armResolves a difference of about 8.6 points
Reply rate the variant would have to hit15.4%Against a control of 6.8%, so more than double
VerdictDo not splitThe test returns noise and names a winner anyway

So read the distribution instead. Thirty two replies is a hopeless rate and a very usable corpus.

CodeCountWhat it convictsWhere the fix lives
wrong-person9The targeting, not the messageContact selection
not-now-dated7Nothing. A callback with a dateDated callback, never suppression
already-have-it6The set definitionSegment filter, renewal window
wrong-problem5The segment definitionSegment filter
never3The step 2 suppression rule, onceDo Not Contact
meeting2Nothing. Keep goingPipeline

Nine wrong-person replies is the largest finding of the quarter. It says the copy is not the problem, it arrives at a count you can read in one sitting, and not one subject line test would have found it.

Account Consumption

384 operators fit the definition. That is not a starting point, it is the whole market.

SegmentIn setUntouchedLiveSpent, no replyCallbacksMeetingsAccounts per meetingWeeks left
3PL, 5+ sites962512404171.04.2
3PL, 3-4 sites1688022563188.07.3
Grocery own-fleet12083122200none yet11.9
All segments384188461187298.07.8

Two meetings from 196 touched accounts prices a meeting at 98 accounts spent. The untouched set lasts 7.8 weeks and contains about 1.9 more meetings at that price. A team can hold 6.8% perfectly flat all quarter and still be two months from having nobody left to write to. Grocery own-fleet has spent 37 accounts, booked nothing, and two of its substantive replies say shifts are fixed by collective agreement, so its remaining 83 are held until the segment is confirmed.

What is in the pack

01

Reply Ledger

One row per inbound message with the buyer's own sentence in it, the automatic responder header checked, and one of six codes assigned by what they actually said.

02

Measurement Note

The reported reply rate against the real one, the detectable difference at your list size worked both directions, and a plain recommendation on whether to split the list.

03

Account Consumption

The addressable set drawn down by terminal state, priced at accounts spent per meeting booked, with the number of weeks the untouched set has left.

04

Sequence Register

Every send with its delivery outcome and its bounce code, so a bad mailbox, a disabled mailbox and a refused sender stop reading as three people ignoring you.

05

Sequence by Segment

The actual messages, four steps over a fortnight, with an unconfirmed segment held rather than rewritten when the replies say the problem does not exist there.

06

Personalisation Standard

An opening line names something this organisation did, cites the document it came from and carries its date. A line that fails holds the send instead of downgrading it.

07

Reply Coding Standard

Six codes, each convicting a different part of the operation: the targeting, the segment filter, the suppression rule, the ask, or the copy.

08

Do Not Contact

Scope and expiry on every entry, so a permanent request to stop and a buyer who said ask me in January stop being filed in the same place.

How it works

  1. 1

    Fix both numbers

    Send the raw export. Automatic responders leave the numerator, bounced addresses leave the denominator, and each bounce code is read for what it says about the account.

  2. 2

    Code every reply

    Each human reply takes one of six codes with the buyer's own sentence beside it, and the distribution names which part of the operation the quarter's largest count convicts.

  3. 3

    Do the arithmetic

    The Measurement Note works out what a list this size could ever resolve, then prices a meeting in accounts spent and dates the day the set runs out.

  4. 4

    Change one thing

    The fix matches what was convicted, ships to the whole segment rather than a variant arm, and is judged on whether the code distribution moves.

Frequently asked questions

Is this template free?

Yes. Four Word documents and four CSV sheets, downloaded as a zip, no signup. River is the optional half: it reads the send export, separates humans from machines, codes the reply text and prices a meeting in accounts spent. Single-shot jobs live in River's tool index and the rest in the template library.

Why does it tell me not to A/B test?

Because at your volume the test cannot see anything. The standard comparison of two proportions rests on a normal approximation needing large samples. Split four hundred addresses and the smallest difference resolvable is around eight points, so the variant would have to more than double before the result meant anything.

What is actually wrong with my reply rate?

Both halves of it. Out of office autoresponders sit in the numerator carrying a header that exists precisely so software can exclude them. Hard bounced addresses sit in the denominator as though a dead mailbox were a person who read the message and decided against you.

What does the sequence itself look like?

Four steps over a fortnight, thread replies after the opener, one ask each, a word ceiling per step, written out in full by segment. The structure is deliberately unremarkable. Inventing a novel cadence to differentiate is how teams spend a whole market learning nothing.

How is this different from an account research tool?

This pack rules on whether an opening line is sendable and holds the send when it is not. Gathering the filings, job postings and stakeholders is its own job, and deciding which accounts belong in the set at all belongs to account scoring and tiering.

What is accounts spent per meeting?

Touched accounts divided by meetings booked. Two meetings from 196 accounts prices one at 98 accounts. It is the number a reply rate hides completely, because a team can hold its rate flat all quarter while running the addressable market down to nothing.

Does it handle suppression properly?

Every entry carries a scope and an expiry. A request to stop is permanent at the scope asked for. A buyer who said ask me after peak is a dated callback that returns to the set on its date, which is inventory most sequencers throw away by filing both in one list.

Stop planning a quarter on a number that counts autoresponders

Send the target list and the raw export. The bounce correction and the size of your market come out of that alone.

Edit with AI