← All articles
Outbound Email · Analysis

Anatomy of a Dead Cold Email Campaign: 13,000 Sends, Zero Interested Replies

A forensic walkthrough of one real campaign that ran three offers into the ground while every dashboard said it was too early to call.

By Joel Wylie, Founder · Last updated 7 August 2026

When a cold email campaign is not working despite real volume, the most common cause is a dead offer hiding behind per-variant statistics. Each variant looks "too thin to call" while the offer summed across variants is long past dead. We know because one of our own campaigns reached 13,000 sends and 28 replies with zero interested replies across three offers before the offer-level read caught it.

This is the autopsy of that campaign, anonymised but real, with the exact numbers. The story does not flatter us. But the failure pattern is so common, and so invisible from a normal sending dashboard, that walking through it stage by stage is the fastest way to teach the diagnostic that catches it.

The setup: one campaign, three offers, a wall of variants

The campaign was built the way most serious cold email campaigns are built. Three distinct offers, each written in multiple framings, all loaded as rotating variants in a single sending step. Volume rotated evenly across the variants, the list was verified, deliverability was healthy, and sends climbed steadily week over week. That structure is fine, and we still run it as a discovery phase. The problem was the unit we were reading results at.

What the dashboard showed while the campaign died

Every week, the per-variant table told the same soothing story. Each variant sat at a few hundred to roughly a thousand sends. Our doctrine says variant-level decisions need about 1,000 sends per variant, and declaring anything dead needs roughly 2,000 sends to it plus around 20 replies with zero interested. So every row read as "too thin to call". Keep sending, check again Friday.

Weeks passed. Sends compounded. Replies trickled in, 28 of them eventually, and the interested column stayed at zero. Still, at the variant level, no row had individually crossed the kill bar. The dashboard was not lying about any single number. It was answering the wrong question with perfect accuracy.

A campaign holds offers, and each offer holds variants. Diagnose at the level of the offer first, then the variant. Read at the wrong level and a dead campaign will pass every check you run on it.

The moment of diagnosis: summing sends per offer

The campaign was called in a single pass, the day we summed sends per offer instead of per variant. Three offers. Thirteen thousand sends between them. Twenty-eight replies. Zero interested. Against our kill bar of roughly 2,000 sends and around 20 replies per offer with zero interest, every offer in the campaign had blown thousands of sends past the point where the verdict was available.

The arithmetic took minutes: map each variant to the offer it carries, sum the sends and replies, compare against the bar. That is the entire diagnostic. It only felt like a revelation because no default reporting view ever performs that addition for you.

One more number completed the picture. Twenty-eight replies on 13,000 sends is a 0.22% reply rate, well under the 0.5% to 0.6% we consider average for a mixed mailbox provider pool. The campaign had two problems stacked: offers nobody wanted, sitting on a response level too low to fully validate any of them. Why that distinction matters comes below.

Why do per-variant reads hide a dead offer?

Per-variant reads hide a dead offer because splitting one offer across several framings divides its send count into portions that each stay below the decision thresholds. Five variants of one offer at 500 sends each all look like early reads. The offer underneath them has 2,500 sends and has already failed. The more thoroughly you test framings, the better the disguise.

This creates a genuine rule collision, and we resolved it explicitly. Our standing rule forbids retiring a variant before roughly 2,000 sends, around 20 replies, and zero interested on that variant. But killing an offer at roughly 2,000 offer-level sends usually means pausing three or four variants sitting at 500 sends each. The offer-level kill wins: once an offer clears the bar with zero interest, every variant carrying it gets paused regardless of its individual send count, because the offer is the unit under test and it has had its fair hearing.

Sending tools report at the variant level because that is the level they operate at. But the question that decides whether a campaign lives, "does anyone want any version of this offer", is answered by an aggregation the tool never shows. You have to build that read yourself and run it on a schedule. The full diagnostic order this sits inside, volume then offer then audience then copy, is in our post on why rewriting copy is usually the wrong fix.

Exhibit two: the reply-rate decoy

A second campaign from our client base shows the other way dashboards lie. This one had healthy deliverability and real interest arriving: four variants at roughly 4,900 sends each, ten interested replies between them. The trap was which variant looked best.

The variant with the highest reply rate pulled 0.81% replies, the most responses of any variant, and converted just 2.5% of those replies into interested. The variant with a lower 0.63% reply rate converted 22.6% of its replies into interested, and carried seven of the campaign's ten interested replies on its own. Ranked by raw reply rate, the worst variant in the campaign was the apparent winner.

Then a rule we had half-invented made it worse. Because every variant had landed at least one interested reply, the weekly read declined to call a winner, on the logic that nothing was provably dead. Over the next four days the strong variant took four more interested replies; the other three took none that survived verification, and one logged "interested" turned out to be a vendor pitching us back. One interested reply protects a variant from being declared dead. It does not protect it from being out-allocated. At comparable volume, the winner call is made on interested replies per send, full stop.

Both exhibits reduce to the same sentence: a high reply rate on a low interested base is copy that provokes, not copy that sells. Rank variants by interested per send, and use reply rate only to diagnose deliverability. The full tier system for what counts as good is in our cold email reply rate benchmarks: 20%+ of replies interested is great, 10%+ is good, under 5% means the offer is not pulling.

What did the rescue look like?

The rescue was new offers, not new copy. Three offers had been validated as not working, which is genuinely useful information as long as you treat it as a verdict on the substance rather than the sentences. Rewriting a dead offer's emails repackages something the market has already declined. So the campaign moved onto an offer roadmap: a queue of distinct offers, tested one per week, each taking all the sending volume so it clears the roughly 2,000-send bar inside a week and produces a clean verdict.

Two details of that rotation matter. First, retirement is by sends, never by time: the week is a convenience, the send count is the rule. Second, each new offer changes the value proposition itself, the thing being given or promised, not the adjectives around it. Our full system for building and sequencing that queue is the offer testing roadmap.

One refinement came straight out of the failed campaign's replies: register. The buyers in this market were serious, risk-owning people, and casual framing like "a few ideas" reads as flippant to that audience. The same vehicle reframed as a step-by-step plan carries authority. That is an offer-level fix found by reading the failure honestly, not by staring at the sentences.

What are the transferable rules?

The transferable core is a small table of decision bars, each earned the expensive way. The asymmetry between them is deliberate: backing something that works needs far less evidence than declaring something dead, because absence of evidence is weak evidence.

DecisionThe barWhy
Back a winner with more volumeNo send floor. One interested reply is enough, even at ~580 sendsInterest is real signal at any volume. Act fast on the upside
Declare a variant or offer dead~2,000 sends to it, ~20 replies to it, zero interestedZero at low volume tells you almost nothing. Be patient on the downside
Claim variant A beat variant BComparable volume; reject any verdict at a send gap over ~2xThe higher-volume variant wins unfairly on absolute counts
Treat the whole campaign as readable~10,000 campaign sendsWhole-campaign conclusions need whole-campaign volume

The 20-reply floor decides what you are allowed to learn. Interested replies can only come out of replies, and at around 20 replies even a weak offer should have produced one interested, since 5% interested-of-replies is itself a poor rate. Above the floor, zero interest validates the offer as dead. Below it, the offer is unvalidated and the suspect shifts to the list or deliverability, which is exactly where our 13,000-send campaign's 0.22% reply rate was pointing. The action is the same either way, rotate to the next offer, but the learning you record is different, and logging "proven dead" against an offer that was never fairly heard poisons every future roadmap decision built on that history.

Finally, verify the interested count by hand before acting on any of this. Classifiers over-report: in one weekly reconciliation our dashboard claimed nine interested replies, and the verified number, after reading the actual reply text and dropping the out-of-office responses, soft objections, and pitch-backs, was closer to four. Every decision bar in the table runs on the interested count, so a polluted count corrupts every verdict downstream of it.

This campaign did not die of bad copy, a bad list, or bad luck. It died of three offers the market did not want, and it stayed officially alive for weeks because nobody summed the numbers at the level where the death was recorded. Run the sum. It takes minutes, and it is the difference between a campaign that fails for a fortnight and one that fails all quarter.

FAQ

Why is my cold email campaign not working?

Most failing campaigns with real volume have an offer problem, not a copy problem. If replies land but interested replies stay near zero after roughly 2,000 sends per offer and around 20 replies to it, the offer is dead. Sum results per offer, not per variant, or the dashboard will hide it.

How many sends before a cold email offer is proven dead?

Roughly 2,000 cumulative sends to that offer, around 20 replies to it, and zero interested replies. Both floors must be met. Below either, the verdict is not earned. Sum sends across every variant carrying the offer, because the offer is the unit under test.

Why do per-variant stats hide a failing campaign?

Because splitting one offer across several variants keeps each variant below the decision thresholds. Five variants at 500 sends each all look too thin to call, while the offer underneath them has 2,500 sends and no interest. Sum sends per offer before judging.

Is a high reply rate a good sign in cold email?

Not by itself. In one of our campaigns the variant with the highest reply rate, 0.81%, converted only 2.5% of its replies to interested, while a 0.63% reply variant converted 22.6%. Rank variants by interested replies per send. Reply rate alone diagnoses deliverability, not performance.

What should you do when every offer in a campaign is dead?

Rotate to new offers, not new wording. Build a roadmap of distinct offers, test one per week with all volume behind it, and retire each by send count rather than by calendar. Rewriting copy on a dead offer changes nothing, because the market rejected the substance.

How many replies do you need to blame the offer?

Around 20 replies to that offer. At 20 replies even a poor offer should produce one interested reply, so zero interest becomes real evidence. Below 20 replies the failure cannot be pinned on the offer, and the suspect shifts to the list or deliverability.

Want outbound like this run for you, end to end?

Book A Call