You sent 2,000 emails last month and got four replies, two of which were "unsubscribe." Or you're getting no responses at all, a clean silent zero.

Almost everyone's first instinct is the same. Rewrite the copy.

That instinct is usually wrong, and the reason is structural. Copy is the fourth thing to check, not the first, because everything above it can invalidate the test.

Rewriting a subject line while your mail is landing in spam is a month you don't get back.

What follows is a ladder. Work it in order, because each rung invalidates the ones below it until it's fixed.

First, are you even measuring something real?

Before diagnosing anything, check whether you've sent enough to have data.

At a 2% reply rate, 500 emails produce ten replies. Move that to 2.5% and you get twelve or thirteen. That difference is noise, not signal.

Send at least 5,000 emails per campaign before drawing conclusions. A meaningful share of "cold email isn't working" is really "I stopped at 600 sends and panicked."

The mirror image is just as common. Teams that scale in week two and teams that kill in week two make the same mistake.

Both acted before the system had said anything.

Now pull four numbers from your sequencer for the last 1,000 sends.

NumberWhat it points to
Bounce rate above 2%Your data
Open rate below 30%Delivery
Reply rate below 2%, opens fineTargeting or message
Replies fine, no meetingsThe offer, or your response time

One important recalibration on that second row. Platform-wide open rates have fallen to around 27.7%, down from roughly 36% in 2023.

Well-run campaigns still see 40 to 50%. But if you were holding yourself to an old 50% floor, you may have been chasing a delivery problem that doesn't exist.

Below 30% is a real signal. Between 30 and 40% is worth watching rather than panicking about.

And treat all of it as directional. Privacy proxies pre-load tracking pixels, which inflates the number in ways you can't unpick.

Failure one: the email never arrived

What it looks like: open rate under 30%, near-zero replies, and it got worse over time rather than starting bad.

This is the most common cause and the least diagnosed, because a spam-foldered campaign looks identical to an ignored one from your side.

It also got materially harder recently. Google escalated from delivery delays to permanent rejections in November 2025, and Microsoft now returns a hard 550 5.7.515 rejection for non-compliant senders.

That's a useful thing to know, because it means the evidence might be sitting in your bounce logs right now rather than being invisible.

Work through these in order:

  1. Check your bounce log for rejection codes. A 550 5.7.515 is an authentication failure, not a bad address.
  2. Verify SPF, DKIM and DMARC are published and aligned on every sending domain.
  3. Check Google Postmaster Tools. It's free, and it shows your actual spam complaint rate and domain reputation as Google sees it.
  4. Confirm you're not sending from your primary domain. If you are, stop today.
  5. Run a live inbox placement test. Send from your real mailboxes to seed inboxes across Gmail, Outlook and Apple, and see where each one landed.

That last one is the only ground truth. Warm-up dashboards are cooperative networks where everyone rescues everyone else's mail, so a 98% warm-up score tells you almost nothing about real Gmail.

Placement tests also isolate the problem by provider. If a campaign sits in primary on Gmail but spam on Outlook, you have a Microsoft-specific fix, not a copy rewrite.

If this is your failure mode, stop reading here. Nothing downstream will help until mail reaches the inbox.

Failure two: the data is wrong

What it looks like: bounce rate above 2%, or replies that come from people who were never going to buy.

Two separate problems hide in this one.

Bad addresses. Sending to catch-all, "risky" or unverified addresses doesn't just waste sends. It destroys the infrastructure you paid for.

A high bounce rate can burn an entire domain set inside two weeks. The only recovery is buying fresh domains and warming them again.

So only send to addresses that verify as valid, and set bounce auto-pause at 2%. Contact data decays fast enough that a list built six weeks ago is worth re-verifying first.

Wrong people. Harder to spot, because nothing technically breaks. The tell is in the replies.

"I'm not the right person." "We're way too small for this." "We don't do that anymore." Every one of those is a qualification failure, not a copy failure.

There's a clean way to hold these apart. Bounces mean your data is stale. Complaints mean your targeting is off.

The fix for the second is an automated qualification pass. Point a crawler at each company's live site, ask one yes/no question, and drop whatever doesn't clear the bar.

Every source returns junk. Industry filters mix real software companies with IT consultancies, and directories include businesses that closed last year.

Failure three: you targeted fit, not timing

What it looks like: delivery is fine, the data is clean, the copy is decent, and the reply rate still sits between 0.5% and 1.5%.

This is the big one, and it's almost never diagnosed correctly.

"US clinics, 1-15 employees" tells you a company fits. It says nothing about whether anyone there has your problem this month.

Research from the Ehrenberg-Bass Institute suggests only around 5% of a B2B market is in-market in any given quarter.

Send to a purely firmographic list and roughly nineteen out of twenty recipients have no reason to care today. That's not a copy problem. It's arithmetic.

Here's the difference in one metric. Emails per positive reply, or EPP, is how many sends it takes to earn one positive response.

TargetingEPP
Firmographics only~1,000
A real buying signal attached~500, then ~200
Strong signal plus strong offer200-300
Above 1,500Something is badly wrong

Roughly a 5x spread on identical infrastructure and identical copy. The only thing that changed is who you emailed, and why.

The fix is to layer one observable trigger on top of your firmographics. Ranked by how well they convert:

  1. Tool footprint. A competitor's script detected on their site. They've already decided to buy in your category.
  2. Public problem statement. Their own homepage naming the pain you solve.
  3. Compliance exposure. A real, citable regulatory gap.
  4. Hiring for an adjacent role. A live budget and an active mandate.
  5. Funding plus a relevant profile. Weak alone, decent when paired.

One counterintuitive check. Good signals match fewer people.

Headcount-and-industry filters match 80 to 95% of a base list. Tool-footprint detection matches 5 to 15%. If 90% of your list matches your "signal," it isn't a signal.

Failure four: the offer isn't worth a reply

What it looks like: people are opening, the targeting is defensible, and you're still under 2%. Or you get polite "sounds interesting, but not right now" replies that go nowhere.

The offer is the biggest lever in cold email and gets the least attention. Three specific problems.

You're asking for a call. Asking a stranger for thirty minutes is a real commitment. Asking permission to send something costs them a two-word reply.

Swap "would you be open to a quick call?" for "want me to send it over?" and watch what happens.

You're selling the wrong thing. Cold traffic won't buy your $5,000 engagement. It might accept a workflow, a three-point teardown, or a sample built from their public data.

Sell the micro-offer in the email. Sell the real thing in the conversation that follows.

You're using capture language in a generation channel. "We do bookkeeping for SaaS companies" only lands on someone already shopping for a bookkeeper.

"Want a second opinion on whether your current bookkeeper is leaving money on the table?" works on everyone else too. Same service, completely different response rate.

One honest expectation to set. Rewriting the offer five or more times and redefining the audience two or three times before hitting benchmark is normal.

That iteration isn't failure. It's the cheapest market research you'll ever run.

Failure five: the copy is doing the wrong job

What it looks like: everything above checks out and the reply rate is still low.

Now, and only now, look at the writing.

There's a useful cross-check here. If your reply rate is under 2% but your open rate is healthy, the problem is targeting or copy, not delivery.

Four things account for most of it.

The first line works for 100 people. Run this test. Could you send email one, unchanged, to a hundred different prospects? If yes, it fails.

You personalised without creating relevance. This is the subtle one, and it's worse than no personalisation at all.

A perfect line about their LinkedIn post on remote work, followed by a pitch about blog revenue tracking, burns attention on a dead end.

Every line has to hold hands with the next one.

It's pitch-led, not problem-led. "We build HIPAA-compliant intake forms for clinics" is about you.

"The PDF intake form on your site means your front desk retypes every new patient into the EHR" is about them. The second one creates a reaction. The first gets archived.

It's too long. Email one should run 50 to 75 words. You're a stranger, and nobody owes you three paragraphs.

On subject lines, there are two ways to get it badly wrong. Sounding like marketing, or using an overused generic like "Quick question" or "Curious."

Two or three lowercase words referencing something they already recognise beats both.

Failure six: the sequence quits, or overstays

What it looks like: email one gets replies and follow-ups get nothing. Or complaints and unsubscribes climb over the campaign's life.

Too few touches is the common version. Email one and email two are your best performers, and plenty of teams only send one.

Too many is the expensive version. Past four emails you're mostly generating spam complaints, which now costs you at the delivery layer rather than just in goodwill.

The rule that fixes most follow-up problems: every email has to work as a standalone.

No "just following up." No "circling back." No "did you see my last email?" Each of those announces that the previous email failed and adds no new information.

Rotate the angle instead. Save time, then make money, then reduce risk.

One mechanical detail worth knowing. Leaving a follow-up's subject line empty threads it onto the previous email. Adding a new subject starts a fresh thread.

Use that deliberately. Email two threads, because it needs email one's context.

Email three starts fresh, so it reads as a new first contact rather than a record of being ignored twice.

Failure seven: you're earning replies and losing them

What it looks like: decent reply rate, few meetings on the calendar.

This is the most painful one, because the expensive part already worked.

Speed is most of it. In a study of 939 B2B companies, the average time to respond to a lead was 47 hours.

Best in class is under a day. A good reply sent quickly beats a perfect one sent next week.

A positive reply sitting overnight wasn't lost to a competitor. It was lost to your own process.

The other half is what you say next. A "sure, send it" reply is not yet a lead.

If you respond by dumping a calendar link, you've converted a warm conversation back into a cold ask. Deliver the thing you promised first, then ask.

And check the quality of the replies themselves. A high reply rate with few opportunities usually means your emails generate curiosity rather than intent.

The fix is a more concrete offer with a named consequence attached. A specific cost of doing nothing, not a vague benefit.

The order, in one place

1. Have you sent 5,000? → if not, wait

2. Did it arrive? → nothing else matters until yes

3. Is the data clean and correct? → verify, then qualify

4. Is the timing right? → layer a real intent signal

5. Is the offer worth a reply? → shrink the ask

6. Is the copy about them? → rewrite the first line

7. Is the sequence right-sized? → 2-4 touches, new angle each

8. Are you answering fast? → same day, ideally within the hour

Most teams start at step six and never reach step two.

That's why cold email "stops working" for them while it keeps working for someone with the same list, the same product and worse writing.

A 30-day repair plan

Week one, stop the bleeding. Placement test. Check authentication and bounce codes. Re-verify the list and drop anything not valid. Pause anything bouncing above 2%.

Week two, rebuild the list. Pick one signal from the top three ranks. If it can't produce 500 verified contacts, choose a different one rather than launching something doomed.

Week three, rebuild the offer and sequence. One micro-offer that costs nothing to accept. Three emails, each rotating the angle.

Week four, launch and leave it alone. Don't touch copy in week one, because you're measuring noise. Judge it at 5,000 sends.

Frequently Asked Questions

Why am I getting no responses at all?

A flat zero across a few hundred sends is usually delivery, not message. Emails landing in spam produce exactly this pattern. Run a placement test and check your bounce log for rejection codes before changing anything else. If placement is fine past 1,000 sends, the list is next, specifically whether you targeted fit rather than timing.

What's a good reply rate in 2026?

Three to ten percent on genuinely cold traffic, with platform averages sitting near 3.4%. But reply rate alone misleads. An 8% rate where most replies are "not interested" is worse than 4% producing real conversations, so track positive reply share alongside it.

Should I rewrite my copy or rebuild my list first?

List, almost always. Moving from firmographic targeting to a real buying signal changes emails-per-positive by roughly 5x. Rewriting copy on a badly targeted list moves it by a fraction of that. Copy is a multiplier on a good list and a rounding error on a bad one.

My open rate is high but nobody replies. What does that mean?

Delivery is fine, so it's the message or the ask. Check the first line first, using the hundred-people test. Then check the ask. Requesting a call in email one is the most common reason a well-delivered, well-written email gets ignored.

How long should I run a campaign before calling it?

Until it has sent at least 5,000 emails, or two to three weeks of steady volume, whichever comes first. The exception is a very small addressable market, where you judge on whatever volume exists and lean harder on what the replies actually say.

Can I fix deliverability without buying new domains?

Often, yes. Authentication gaps, excessive volume per mailbox and content triggers are all fixable in days. If domains are genuinely burnt, budget three weeks to buy fresh, provision and warm again.

The short version

Cold email rarely fails for the reason people assume. Copy gets blamed because it's the part you can see and change in an afternoon.

The stages above it are less visible and more decisive. Whether the email arrived. Whether the address was real. Whether the person had any reason to care that week.

Work the ladder in order and most campaigns turn around at stage two or three, before you've touched a single sentence.