Cold email benchmarks from 1,413,405 sends
A sending platform's reply counter treats an out-of-office message as a reply, and a benchmark that does not say otherwise has probably inherited that. We read every one of 19,544 replies to our own campaigns and classified them, so the rates below count people. Where a figure could be read more than one way, the definition is stated next to it.
Data through 2026-08-12. 356 campaigns across 35 sending accounts. Methodology and definitions are at the foot of the page.
- Emails sent, all campaigns
- 1,413,405Emails sent, all campaigns
- Replied to by a person
- 0.48%Replied to by a person
- How much the platform reply counter overstates that
- 2.86xHow much the platform reply counter overstates that
- Genuine hard bounce rate
- 1.27%Genuine hard bounce rate
The reply counter is not the reply rate
Sending platforms count replies by counting messages that arrive back. That includes out-of-office autoresponders, mailbox robots, and the automatic acknowledgements that corporate systems send. In our platform the setting that folds automated replies into the reply statistic is on by default, and it was on across our accounts. We cannot speak for how other platforms are configured, which is exactly the point: unless a benchmark says what it excluded, you do not know what you are reading.
So we read all 19,544 replies attributable to a campaign and classified each one. 12,737 were automated, which is 65.2% of everything that arrived. 6,807 were written by a person.
The three rates below all describe the same 1,413,405 emails. The difference between them is entirely a difference in what counts as a reply.
| Measure | Rate |
|---|---|
| Platform reply counterWhat a dashboard shows by default. It lands within 63 of the count of everything that arrived, which is the finding: the counter is not adjusted for anything. | 1.38% |
| Everything that arrivedEvery message in the inbox folder attributable to a campaign, automated replies included, bounces excluded. | 1.38% |
| Written by a personAutomated replies removed. This is the number worth planning against. | 0.48% |
The accented bar is the measure most benchmark articles quote without saying so.
What a normal campaign returns
A portfolio average hides the thing you actually want to know, which is how much campaigns differ from each other. Across the 269 campaigns with at least 500 sends, the spread between a bad campaign and a good one is far wider than the spread between any two published benchmarks.
The percentiles below are across campaigns rather than across emails, so the median is the middle campaign rather than the middle email. 5 of them, 1.9%, produced no human reply at all.
| Measure | Reply rate |
|---|---|
| 10th percentileA bad campaign | 0.13% |
| 25th percentile | 0.27% |
| Median campaign | 0.42% |
| 75th percentile | 0.67% |
| 90th percentileA good campaign | 1.27% |
| MeanShown for comparison only. A mean across campaigns is pulled by outliers and is the wrong summary for a skewed distribution. | 0.66% |
Across 269 campaigns with at least 500 sends each.
Reply rate by campaign size
Campaigns grouped by their own send volume, with rates pooled inside each group. Cohorts are by volume rather than by industry deliberately: an industry breakdown across a portfolio this size would identify individual clients.
| Measure | Reply rate |
|---|---|
| 500 to 2,000 sends109 campaigns, 128,583 sends, 1,131 human replies | 0.88% |
| 2,000 to 10,000 sends124 campaigns, 586,745 sends, 3,176 human replies | 0.54% |
| 10,000 to 25,000 sends25 campaigns, 350,135 sends, 1,233 human replies | 0.35% |
| 25,000 or more sends11 campaigns, 328,228 sends, 1,078 human replies | 0.33% |
Cohorts containing fewer than five campaigns are suppressed rather than published.
Bounce rates are overstated for a different reason
The same inflation happens on the other side of the ledger, for a different reason. A bounce counter counts everything the mail system sends back, and only some of that is a dead mailbox. Delivery Status Notification delay notices are in there too, and a delay notice is not a bounce: it says a server was temporarily unreachable and that delivery is still being attempted, so counting it as a failure counts a message that may yet be delivered.
We read all 42,953 messages in the bounce folder and classified each from its notification text. 12.6% were delay notices and 36.7% were a recipient gateway refusing the message, neither of which is a bad address. The platform reports a bounce rate of 3.04%; the rate at which we wrote to a mailbox that genuinely does not exist was 1.27%, which is 2.4 times smaller.
The distinction matters operationally, not just cosmetically. Bad addresses are a list-quality problem you fix with verification. Blocked and policy rejections are a reputation or targeting problem, and they need an entirely different response.
| Measure | Messages |
|---|---|
| Delay noticesTemporary. The notice states delivery is still being attempted, so the message has not failed at the point the counter records it. | 5,406 |
| Bad addressThe mailbox does not exist. This is the real hard bounce. | 17,911 |
| Blocked or policyA recipient gateway or an admin rule refused the message. A reputation or targeting signal, not a list-quality one. | 15,744 |
| Domain unreachableDNS lookup failed or the mail server refused the connection. A dead domain rather than a dead mailbox, which is a sourcing problem rather than a verification one. | 796 |
| Mailbox full | 491 |
| UnclassifiedNotification text that did not match any rule. Counted, never quietly folded into another class. | 2,605 |
Classified from the Delivery Status Notification subject and body of every message in the bounce folder.
What this report deliberately does not contain
Open rates
Measuring opens requires embedding a tracking pixel, which adds an image and a third-party request to a message that should look like a person wrote it. It also no longer measures opens: Apple Mail Privacy Protection pre-fetches images regardless of whether the message was read, and corporate security scanners fetch every image in every message before delivery. Only 0 of our 356 campaigns have open tracking on at all, so we have neither the data nor the confidence to publish a rate.
Industry breakdowns
An industry cut of a 35-account portfolio is a client list with extra steps. Any bucket narrow enough to be useful would be narrow enough to identify whose campaign it was, so the cuts here are by send volume, and any cohort with fewer than five campaigns is suppressed.
Meeting and conversion rates
A sending platform can see replies. It cannot see whether a meeting was held or a deal closed, and stitching those together across accounts would mean reporting a number we assembled rather than one we measured. If you want to model that end of the funnel, the cost per meeting calculator lets you supply your own conversion rates on top of the reply rates measured here.
These are first-touch rates
Every rate on this page is a response to a single message. We send one email per campaign and do not follow up in the thread, which makes these numbers unusually comparable: there is no ambiguity about whether a reply rate is per person or per message, because for almost every campaign here the two are the same thing.
We checked rather than assumed. Reading the sequence of all 356 campaigns that have sent, 346 carry exactly one message. 10 older campaigns carry more than one step and account for 2.1% of total volume. Restricting the whole calculation to single-message campaigns gives a human reply rate of 0.48% against 0.48% for the full portfolio, so the multi-step campaigns are not doing the work.
This is worth knowing when comparing against a benchmark built on multi-step sequences. A published rate that counts a reply arriving after several messages against the first message only is measuring something else, and it will look better than these numbers for a reason that has nothing to do with the copy.
Methodology
How the data was collected
- Every campaign in all 35 sending accounts was read from the campaign list endpoint, paginating to the last page and reconciling the collected count against the reported total. 398 campaigns exist; 356 have sent at least one email.
- For each of those campaigns, the number of replies and bounce notifications was read as an exact count rather than estimated from a sample.
- Every one of those 62,497 messages was then retrieved and classified: replies by the platform's own automated-reply flag, bounce notifications by their notification text.
- Sequence length was read per campaign to establish that these are first-touch rates, rather than assuming it from our own sending policy.
Definitions
- The dataset
- Every campaign object returned by GET /api/campaigns across the 36 RevenueFlow sending workspaces (35 of which hold campaigns), walked to meta.last_page and reconciled against meta.total. emails_sent is the platform's own dispatched-message counter.
- Human and automated replies
- Every reply in the inbox folder attributable to a campaign was read and classified by the platform's own automated_reply boolean. 'Automated' is an out-of-office, an auto-acknowledgement or a mailbox robot. 'Human' is a person typing. The overstatement multiple compares the platform's replied counter (which includes automated replies by default) against the human count.
- Reply rates
- Numerator over emails_sent across all campaigns with at least one send. Human reply rate counts only replies a person wrote. The all-inbox rate adds auto-responders. The platform-counter rate is what a dashboard shows by default. All three describe the same sends.
- The distribution
- Distribution of the per-campaign human reply rate across the 269 campaigns with at least 500 sends. Percentiles are across campaigns, not across sends, so p50 is the median campaign rather than the median email.
- Volume cohorts
- Campaigns grouped by their own send volume. Rates are pooled within a cohort (total human replies over total sends). Cohorts with fewer than 5 campaigns are suppressed.
- Bounces
- The platform's bounced counter includes Delivery Status Notification DELAY notices, which report a temporary problem and state that delivery is still being attempted. (Whether a delayed message was ultimately delivered is not observable from the notification, and is not claimed here.) Every message in the bounce folder was read and classified from its DSN subject and body: delay_notice (temporary, not a bounce), hard_bad_address (the mailbox does not exist), blocked_or_policy (a recipient gateway refused the message), mailbox_full, other. The true hard bounce rate counts only hard_bad_address.
- Positive replies
- 'Interested' is a human classification applied in the sending platform when a reply is a genuine positive. It is an operator judgement, not a model output, and it is applied inconsistently across accounts, so treat it as a floor rather than a measurement.
- Open rate
- Open tracking requires a tracking pixel, which costs deliverability and is defeated by Apple Mail Privacy Protection and by corporate scanners that fetch every image. Open rate is therefore not reported here. The share below is how many of our campaigns even have the setting on.
- Campaign shape
- Measured per campaign from GET /api/campaigns/{id}/sequence-steps, not assumed. 346 of 356 campaigns send exactly one message per recipient and never follow up. 10 legacy campaigns carry more than one step and account for 2.111% of all sends. This matters because a reply rate over emails_sent is a per-message rate wherever a campaign sends more than one message to the same person.
Limitations
- This is one company's sending. It is large, it spans 35 accounts and many industries, and it is first-party and fully auditable. It is still one operator's data, with one house style of copy and one approach to list building. Treat it as a well-measured reference point rather than as the population.
- Automated-reply classification is the platform's. We used the sending platform's own flag rather than reclassifying by hand. Spot checks agreed with it, but a small error rate in either direction is possible, and it would move the human reply rate slightly.
- Replies not attributed to a campaign are excluded. Some replies arrive without a campaign attached and cannot be tied to a specific send. Excluding them makes the human reply rate a floor rather than an overstatement.
- Positive-reply figures are an operator judgement. Marking a reply as interested is a human action taken inconsistently across accounts, so 21.8% of human replies being positive is a floor, not a measurement.
- Rates are lifetime, not windowed. Campaigns span from 2025-12-15 to 2026-08-12. Deliverability conditions changed over that period, and a rate measured today would not necessarily match.
Citing this report
The figures are published under a Creative Commons Attribution licence. Use them, including commercially, with attribution.
RevenueFlow. “Cold Email Benchmarks 2026: reply, bounce and deliverability rates from 1,413,405 sends.” Data through 2026-08-12. https://www.revenueflow.com/benchmarks/cold-email-benchmark-report-2026
Questions
- What is a good cold email reply rate?
- It depends what you are counting. Across 1,413,405 of our own sends, 0.48% of emails got a reply from a person. The same sends produce 1.38% if you count auto-responders, and 1.38% if you read the reply counter in a sending platform without adjusting it. Published benchmarks rarely say which of the three they mean, which is why the numbers in circulation vary so widely.
- Why is the reply rate here lower than benchmarks I have seen elsewhere?
- Because auto-replies are excluded. A sending platform counts out-of-office messages, auto-acknowledgements and mailbox robots as replies by default. In this dataset the platform reply counter is 2.86 times the number of replies a person actually wrote. Any benchmark taken from an unadjusted dashboard inherits that inflation.
- What is a normal bounce rate for cold email?
- Lower than the counter says. The bounce counter in a sending platform includes Delivery Status Notification delay notices, which report a temporary problem and state that delivery is still being attempted. Reading all 42,953 messages in our bounce folder, 12.6% were delay notices rather than failures. The rate for genuinely dead mailboxes was 1.27%, against a reported bounce rate of 3.04%.
- Why does this report not include open rates?
- Open tracking needs a tracking pixel, which costs deliverability, and the resulting number is not measuring what it appears to. Apple Mail Privacy Protection pre-fetches images, and corporate security scanners fetch every image in every message, so a large share of recorded opens are machines. Only 0 of our 356 campaigns have the setting on at all. An open rate we do not trust is not worth publishing.
- How many follow-ups do these numbers assume?
- None. 346 of 356 campaigns send exactly one message per recipient and never follow up, so these are first-touch reply rates. 10 legacy campaigns carry more than one step and account for 2.1% of sends; restricting the calculation to single-message campaigns only moves the reply rate to 0.48%.
- Can I cite these numbers?
- Yes. The data is published under a Creative Commons Attribution licence. Cite it as: RevenueFlow, "Cold Email Benchmarks 2026", https://www.revenueflow.com/benchmarks/cold-email-benchmark-report-2026, data through 2026-08-12.