The exact audit framework we run when a company tells us their cold email is broken. Six root causes, in priority order.
Rees Bayba
Founder, Astra GTM
TL;DR
When a new client comes to us, the first thing we do is audit their existing outbound. Not their copy. Not their offer. The entire system, end to end. After running this diagnostic for dozens of companies across six industries, we have found that outbound failures almost always trace back to one of six root causes. Here is the exact diagnostic we run, in the order we run it.
The order matters. Most advice treats all outbound problems as equal -- tweak your subject line, improve your CTA, try a different offer. But there is a dependency chain. Deliverability must work before targeting matters. Targeting must work before copy matters. Fixing things out of order means you are optimizing a system that has a broken foundation.
This is first because nothing else matters if your emails land in spam. You could have perfect copy, perfect targeting, and a product everyone needs. If the email sits in a spam folder, nobody will ever read it. We start every audit here, and roughly a third of the time, this is the only thing broken.
The fix is usually straightforward -- DNS records, sending volume, domain age. But the diagnosis is invisible if you are not looking.
Here is what to check. Send a test email from your outbound mailbox to mail-tester.com. Your score should be 9 or above out of 10. Anything below 7 means you have a configuration problem. Next, verify your DNS. SPF, DKIM, and DMARC should all be configured and passing. Surprisingly, 40% of the teams we audit are missing DMARC entirely.
Check your sending volume per mailbox. More than 30 emails per day from a single inbox kills deliverability over time. The inbox providers notice and start routing you to spam. If your domain is less than 3 weeks old, it needs to be warmed first. Sending cold email from a fresh domain is like a brand new restaurant buying 500 Yelp reviews on day one. The platforms know.
Want this built for your team?
We implement these systems end-to-end. First campaigns live in 14 days.
Deliverability is clear. Emails land in the inbox. But nobody replies. The next question: are these the right people? This is the second most common failure we see, and it is harder to diagnose because bad targeting looks like bad copy from the outside. The symptom is the same -- silence.
The core question: is your ICP based on who actually buys your product, or who you think should buy it? These are often different. Look at your last 10 closed deals. What did those companies have in common? Not the industry label on LinkedIn. The real patterns: company size, growth stage, tech stack, hiring velocity, specific pain indicators.
Don't do this
VP of Engineering at any tech company with 50+ employees
Do this instead
VP of Engineering at Series B SaaS companies currently hiring 3+ backend engineers, using AWS, with 50-200 employees and no dedicated DevOps team
Check title accuracy too. Are you reaching decision makers or gatekeepers? A Director of IT at a 50-person company makes purchasing decisions. A Director of IT at a 5,000-person company submits requests to a procurement committee. Same title, completely different buying authority. And validate your data freshness. LinkedIn data decays fast -- 20-25% of contacts have changed roles within the last year.
People change jobs constantly. If your enrichment data is more than 3 months old, re-verify employment before sending. We run LinkedIn employment checks on every batch over 50 contacts.
Now we are at copy. Most people start here because it is the most visible part of outbound. But copy is third in the diagnostic for a reason: great copy in the spam folder is invisible, and great copy to wrong-fit prospects gets politely ignored. If you have passed diagnostics 1 and 2, though, copy is often the unlock.
First check: is your email under 70 words? We test this constantly. Emails over 100 words see a measurable drop in reply rates across every industry we operate in. Cold email is not a pitch deck. It is a conversation starter. Second check: does your opening line name the prospect's situation, or is it about you?
Don't do this
I'm reaching out because we help companies like yours streamline their sales process with our AI-powered platform that integrates with your existing CRM to provide real-time insights.
Do this instead
Saw that Acme just opened a second sales office in Austin. Most teams scaling that fast find their existing outbound process breaks around 5 reps.
In our campaigns, the difference between 0.05% and 0.85% reply rates almost always comes down to the first two sentences. Situation-naming outperforms "I'm reaching out because" and hypothetical question openers by a factor of 20.
Third check: your CTA. "Book a 15-minute demo" is a demand from a stranger. "Worth a quick conversation?" is an invitation. The soft CTA consistently outperforms the hard ask in cold outbound. People do not commit to demos with people they have never spoken to. They do commit to a conversation if the preceding sentences made them curious.
Here is a number that surprises most people: the majority of positive replies come on emails 2 through 4, not email 1. Your first email opens the door. Your follow-ups walk through it. If your sequence is one email and done, you are leaving most of your results on the table.
But there is a wrong way to follow up. "Just bumping this to the top of your inbox" is not a follow-up. It is an admission that you had nothing else to say. Every follow-up should add a new piece of value -- a different angle on the problem, a relevant data point, a case study that fits their situation, or a timely trigger event.
Check your spacing. Three to four business days between emails is the sweet spot. Shorter feels pushy. Longer and they forget the thread. A 4-email sequence over 12-15 days gives you enough touches without wearing out your welcome.
| Follow-up pattern | What happens |
|---|---|
| "Just following up" / "Bumping this" | Prospect feels pestered. No new reason to reply. Gets mentally filed as spam. |
| New angle on the same problem | Prospect sees a different dimension of the pain. May resonate where email 1 did not. |
| Relevant case study or data point | Adds credibility. Shifts from "who is this person" to "they might actually know something." |
| Timely trigger (funding, hire, news) | Shows you are paying attention. Feels personal even at scale. |
One more critical detail: are your follow-ups sent as thread replies or new emails? Thread replies sit inside the original conversation in the prospect's inbox. They get 2-3x higher engagement because the prospect sees the full context. New threads compete with every other email for attention. Unless your follow-up is a genuinely different angle that deserves a fresh subject line, keep it in the thread.
Thread replies inherit the context of the original email. The prospect re-reads your opener while seeing the follow-up. New threads force them to start cold again.
This one is sneaky. Bad contact data does not just mean emails bounce. It means your domain reputation degrades silently. Every bounce is a signal to inbox providers that you are sending to addresses that do not exist. Do that enough, and your legitimate emails start hitting spam too. The damage compounds.
There is a difference between "found" and "verified." Most enrichment tools will find an email address. That does not mean the address works. People leave companies. Domains expire. Catch-all servers accept everything (including invalid addresses) and then silently discard the email. You need a verification step that confirms deliverability, not just existence.
Above 3%, deliverability damage accelerates. We enforce a hard gate: every contact must score 97+ on deliverability verification before entering any campaign. No exceptions, no overrides.
Our standard: every email is run through deliverability verification before it enters a campaign. The email must score 97 or above out of 100 and return a "deliverable" result. If either check fails, the contact is blocked. We also verify employment -- confirming the person still works at the company we think they do. These gates are non-negotiable because one bad batch can undo months of domain warmup.
This is the most common mistake we see from founders running their own outbound. They send 200 emails, get 2 replies, both negative, and conclude that cold email does not work for their business. That is not a conclusion. That is a sample size problem.
You need at least 500 sends per copy variant to have statistically meaningful data. If you are testing two variants, that is 1,000 total sends. At 30 emails per mailbox per day across 5 mailboxes, that takes roughly a week. Most people do not have the patience, but the math does not care about your patience.
| Total sends | What you can learn |
|---|---|
| Under 200 | Almost nothing. Random variance dominates. A single reply changes your rate by 0.5%. |
| 200-500 | Directional signal. You can tell if something is catastrophically wrong, but you cannot compare variants. |
| 500-1,000 | Meaningful data per variant. You can start comparing copy, subject lines, and CTA approaches. |
| 1,000-3,000 | Reliable patterns. You can segment by persona, industry, and company size with confidence. |
| 3,000+ | Statistical rigor. You can optimize systematically and predict results for new segments. |
Timeline matters too. Cold email has a natural lag. Someone reads your email on Monday, thinks about it Wednesday, and replies Thursday. Follow-ups extend this window further. A campaign that launched last Tuesday is not done producing results for another 2-3 weeks. Judging too early is the outbound equivalent of pulling a plant out of the ground to check if the roots are growing.
Here is the honest checkpoint: if you have sent 1,000+ emails with verified deliverability, confirmed inbox placement, targeted ICP, and tested multiple copy variants -- and you are still getting zero positive replies -- the issue is probably not outbound execution. It is product-market fit, offer, or pricing. That is valuable information too. Cold email is one of the fastest ways to pressure-test whether a market actually wants what you are selling.
Most founders judge after 100-200 sends. At that volume, a single reply swings your rate by 0.5-1%. Do not make strategic decisions on noise.
Work the list top to bottom. Deliverability first, always. If your emails are not reaching the inbox, every other optimization is invisible. We have seen teams spend months rewriting copy when the real problem was a missing DMARC record that took 10 minutes to fix.
There is a point where self-diagnosing stops being productive. If you have passed all six diagnostics -- deliverability confirmed, targeting validated, copy tested across multiple variants, follow-ups adding value, data verified, and 1,000+ sends completed -- and your positive reply rate is still below 0.5%, you need an outside perspective.
That does not necessarily mean hiring an agency. It might mean a one-time audit from someone who runs outbound professionally. A fresh set of eyes can spot patterns you are too close to see. The cost of a diagnostic session ($500-2,000) is trivial compared to the cost of 6 more months of zero-pipeline outbound.
And if the diagnostic reveals that your problem is capacity -- you know what to fix but lack the bandwidth to do it consistently -- that is when an agency or fractional operator makes sense. Outbound is a daily operations discipline. It does not work as a side project you touch when you have free time.
How long does it take to diagnose a broken outbound program?
The initial diagnostic takes 2-4 hours if you have access to your sending platform, DNS records, and campaign data. Deliverability checks take 15 minutes. Targeting review takes an hour. Copy audit takes 30-60 minutes. The remaining diagnostics are faster. The fixes, however, vary. DNS fixes take a day. Rebuilding a target list takes a week. Warming new domains takes 2-3 weeks. Plan for 30-45 days from diagnosis to fully operational if deliverability is the root cause.
What is the single most common reason cold email stops working?
Deliverability decay. Programs that worked 6 months ago stop working because sending volume crept up, domains were not rotated, or bounce rates slowly climbed above 3%. It is usually not a sudden break. It is gradual degradation that goes unnoticed because most teams do not monitor inbox placement after the initial setup. By the time they notice reply rates dropping, the domain reputation has already been damaged.
Can I run this diagnostic on my own or do I need specialized tools?
You can run most of it with free tools. Mail-tester.com for deliverability scoring. MXToolbox for DNS verification. Your sending platform's analytics for bounce rates and reply rates. The one area where you may need paid tools is email verification -- services like MillionVerifier, ZeroBounce, or BounceBan cost $30-100 for a few thousand verifications, but catching invalid emails before they bounce is worth far more than the verification cost.
My open rates are high but reply rates are near zero. What does that mean?
Two possibilities. First, your opens may be inflated by Apple Mail Privacy Protection and bot scanning -- both generate fake opens. Do not trust open rates as a signal. Second, if opens are genuinely high and replies are genuinely zero, your deliverability is fine but your copy is not compelling enough to earn a response. The email reaches the inbox, the subject line gets it opened, but the body does not give the recipient a reason to reply. Focus on diagnostic 3: copy that earns a reply.
How many emails should I send before concluding cold email does not work for my business?
At minimum 1,000 sends across at least 2 copy variants, with confirmed inbox placement, to a verified ICP list. That gives you 500 sends per variant, which is the threshold for statistically meaningful data. If you have done all of that with zero positive replies, the question shifts from outbound execution to product-market fit. But most programs we audit have not actually reached this threshold cleanly -- there is usually a deliverability or targeting problem masking the signal.
Should I fix all six issues at once or one at a time?
One at a time, in order. Fixing multiple issues simultaneously makes it impossible to know which fix worked. Start with deliverability because it is the foundation. Once you confirm emails are reaching the inbox, move to targeting. Once targeting is validated, optimize copy. Each fix builds on the previous one. Stacking changes sounds faster but creates a mess when something still is not working and you cannot isolate why.
My bounce rate is under 3% but I still get no replies. Now what?
Good -- that means your contact data is clean and deliverability is likely intact. Move up the diagnostic chain: are your emails actually landing in the primary inbox (not promotions or spam)? Send test emails to seed accounts and check. If inbox placement is confirmed, the issue is targeting or copy. Pull 10 random contacts from your list and ask honestly: would this person have a reason to care about my product right now? If the answer is not a clear yes for at least 7 of 10, your targeting needs work.
Does this diagnostic work for LinkedIn outreach and cold calling too?
The framework adapts. For LinkedIn, replace deliverability with profile visibility and connection acceptance rate. Replace contact verification with profile accuracy. The targeting and copy diagnostics apply directly. For cold calling, replace deliverability with connect rates (are you reaching a live person?) and copy becomes your opening script. The priority ordering -- infrastructure first, then targeting, then messaging -- holds across every outbound channel.
We implement these systems end-to-end. First sends within 14 days.