Define the metrics once
Write these definitions down and use them every time, or you'll compare numbers that don't mean the same thing:
- Delivered: sent minus bounced.
- Bounce rate: bounces ÷ sent. Keep it under 2% [1,2].
- Reply rate: replies ÷ delivered. Decide whether out-of-office replies count; usually they shouldn't.
- Positive reply rate: interested replies ÷ delivered. This needs the reply triage from Module 6.
- Meeting rate: meetings booked ÷ contacts.
- Spam complaint rate: reports ÷ delivered. Under 0.1% target, never 0.3% [3].
- Unsubscribe rate: unsubscribes ÷ delivered.
- Open rate: don't use it (Module 1).
Why benchmarks disagree
Published reply-rate benchmarks range from 0.74% (Smartlead's median, 2026) [2] through 1.5% (Woodpecker's median, Q4 2025) [4] to 3.43% (Instantly's average, 2025) [1] and higher.
They aren't measuring the same thing. Some report means, which a few small warm campaigns pull up, and some report medians. Some divide by emails sent including follow-ups, others by contacts. Some count auto-replies. Each platform's customers are a different mix of agencies, small businesses and enterprises. The only benchmark that works is your own baseline under your own definitions.
Most A/B tests are too small
Evan Miller's rule of thumb for the sample size each variant needs is n ≈ 16 × p(1−p) ÷ δ², where p is your baseline rate and δ the absolute difference you want to detect [5]. Plug in typical cold-email numbers and the problem is obvious.
Most campaigns never reach those sizes. “Variant B got 6 replies, A got 4” is noise. Test big differences (a different offer, a different ask, a different segment or angle), not word swaps. Measure replies or positive replies, never opens.
Baseline reply rate p = 2% (0.02). You want to detect a lift to 3% (δ = 0.01). n ≈ 16 × 0.02 × 0.98 ÷ 0.01² ≈ 16 × 0.0196 ÷ 0.0001 ≈ 3,136 contacts per variant To detect a half-point lift (δ = 0.005): ≈ 12,500 per variant.
Reading your own numbers
Track each campaign against the same baseline every month: positive reply rate, meetings per 100 contacts, bounce rate and complaint rate side by side. A campaign that lifts replies while complaints climb is not a win; it is borrowing against the domain's reputation.
Look at the replies themselves, not just the count. Ten replies that say “not relevant to me” tell you the segment is wrong, which no subject line test will fix. Tag every reply with the triage categories from Module 6 and review the tags with the numbers. The pattern in the words often explains the pattern in the rates.
Don't peek
Checking a test repeatedly and stopping the moment it looks significant inflates false positives dramatically: in Miller's simulation, from a nominal 5% to 26.1% [5]. Decide the sample size and stopping rule before you start, or use a sequential or Bayesian method designed for continuous monitoring.
Below roughly 1,000 contacts per variant, treat any result as directional at best [5]. Pool results across segments only when the audiences really are comparable.
A weekly deliverability check
Fifteen minutes a week catches most problems before they become a blocklisting. Check:
- Google Postmaster Tools spam rate for each sending domain [3].
- Bounce rate by mailbox and by domain [2].
- Blocklist lookups at check.spamhaus.org [6].
- DMARC aggregate reports: any legitimate sender failing? Any source you don't recognise?
- Any new SMTP error codes, such as 5.7.26 or 4.7.28 at Gmail [3] and 5.7.515 at Outlook.com [7].