You ran a seed test before launch. Twelve of fourteen Gmail seeds landed in Primary, Outlook was clean, SPF/DKIM/DMARC all aligned. You launched 400 emails the next morning and 31 of them bounced back inside ten minutes.
Nothing about that is contradictory. A placement test and a bounce rate measure two completely different systems, and a good score on one tells you almost nothing about the other. If you treat a bounce spike as a deliverability failure, you'll spend a week rebuilding DNS records that were already fine while the actual problem — your list — sits untouched.
Here's how the two things come apart, and how to tell in about five minutes which one you're actually dealing with.
{"h2":"placeholder"}
A placement test only answers one question
An inbox placement test sends your real message from your real mailbox to a set of seed accounts you control across Gmail, Outlook, Yahoo, and a few business domains. It then reports where each copy landed: Primary, Promotions, Spam, or missing.
Notice what's fixed in that setup. The seed addresses always exist. They were created for this purpose, they're active, they're spelled correctly, and they will never return "user unknown." The test holds recipient validity constant so it can isolate the filtering decision.
That's exactly what makes it useful — and exactly why it cannot predict your bounce rate. It measures what happens *after* a mail server agrees that the recipient exists. A bounce happens *before* that.
A hard bounce is a different conversation entirely
When your sending server connects to the recipient's mail server, there's an SMTP handshake. Your server announces the sender, then the recipient address. If the receiving server replies with a permanent 5xx error at that point, the message never gets handed over at all. No filter runs. No spam score is calculated. No folder is chosen. The address simply isn't there.
The most common response is `550 5.1.1 User unknown` or `550 5.1.1 Recipient address rejected`. That is a list problem, full stop. Your DKIM could be perfect and that message would still bounce.
But not every 5xx is a list problem, and this is where people get confused. Some permanent rejections are reputation rejections dressed up as bounces:
| Response you'll see | What it means | List problem or infrastructure problem? |
|---|---|---|
| 550 5.1.1 / 5.1.10 user unknown | Mailbox does not exist | List |
| 550 5.2.1 mailbox disabled | Account suspended or deactivated | List |
| 550 5.4.1 relay access denied | Domain no longer accepts mail for that user | List |
| 550 5.7.1 blocked / access denied | Receiver is refusing *you*, not the address | Infrastructure |
| 554 5.7.1 listed on blocklist | Your IP or domain is blocklisted | Infrastructure |
| 421 4.7.0 too many connections | Rate limiting — temporary | Throttling |
| Delayed NDR hours later | Catch-all accepted, then rejected internally | List (usually) |
If your "bounces" are mostly rows one through three, no amount of warm-up or DNS tuning will help. If they're rows four and five, you have a reputation event and the seed test you ran was either stale or too small to catch it. Our hard bounce vs. soft bounce guide covers how a sending platform should treat each class.
Why lists decay faster than people expect
B2B contact data rots at roughly 2% per month. Over a year that's a quarter of your list. The specific failure modes:
- Job changes. The person left; IT deleted the mailbox 30-90 days later. Before deletion it may have silently forwarded or auto-replied — after, it hard bounces.
- Scraped or pattern-guessed addresses. `firstname.lastname@` guessed from a naming convention that the company doesn't actually use. These bounce at 20-40% if unverified.
- Catch-all domains. The server accepts every address at SMTP time, then discards or NDRs internally. A verifier can only mark these "accepted-all," which is not the same as valid. See what to do with unknown verification results.
- Stale exports. A CSV pulled eight months ago and verified eight months ago is not a verified list today.
- Typos and parked domains. `@gmial.com`, domains that lapsed and now resolve to a parking page with no MX record.
None of these are visible to a seed test, because none of these addresses are in your seed set.
The one place the two problems do connect
Bounces don't start as a reputation problem, but they become one. Mailbox providers treat a high unknown-user rate as a signal that you bought or scraped your list, because legitimate senders who email their own customers rarely hit 5% invalid addresses.
So the sequence looks like this: your placement test passes on Monday, you send to a decayed list on Tuesday with a 9% bounce rate, and by Thursday Google is throttling you and your placement has genuinely degraded. The seed test wasn't wrong — the conditions changed underneath it.
Practical thresholds: under 2% is normal and nothing to act on. 3-5% means stop and re-verify before the next batch. Above 5%, pause the campaign entirely. Above 10%, assume the list source is unusable and start over. We go deeper on this in what bounce rate is too high for cold email.
A five-minute diagnostic
When you see a bounce spike after a clean placement test, work in this order:
- Read the actual SMTP responses, not the summary count. Export the bounce log and group by response code. One minute of this tells you more than a day of guessing.
- Check whether bounces cluster by recipient domain. If 90% of failures are at three company domains, you've got gateway or catch-all behavior, not list rot. If they're spread evenly across hundreds of domains, it's list rot.
- Check whether they cluster by lead source. Bounces concentrated in one import file or one scraping run point straight at the source.
- Check whether they cluster by your sending mailbox. If one mailbox bounces and the others don't on the same list, that's a reputation or authentication issue specific to that sender — now it's an infrastructure problem.
- Check the age of your verification. If the file was verified more than 30 days ago, re-verify before you blame anything else.
Only if steps two through five come back clean should you go rebuild DNS or re-run warm-up.
Fixing the list, not the infrastructure
The fix for a bounce problem is boring: verify closer to send time, suppress what fails, and stop re-sending to anything that returned a permanent error even once.
Verify in batches right before each campaign rather than once at import. Treat catch-all/accept-all results as a separate tier — either send to them in a small controlled batch and measure, or hold them back if your bounce headroom is already thin. Suppress role addresses (`info@`, `sales@`, `support@`) if your offer needs a named person, though they're worth testing for local businesses. The full reasoning is in our guide to email verification for cold email.
And set a hard stop rule. If a campaign crosses 4% bounces in the first 200 sends, it should pause itself rather than keep burning your domain for the remaining 3,000.
Where Sendvanta fits
Sendvanta treats these as two separate monitors on purpose. Seed-mailbox placement tests tell you where mail lands; layered deliverability health scoring across mailbox, domain, DKIM, and IP watches reputation; and bounce handling is its own track — hard bounces go straight to suppression, and when the bounce rate crosses your threshold mid-campaign the platform slows down or pauses rather than letting a bad import take the domain with it. Bot-aware engagement classification keeps the rest of your metrics honest while you sort out which problem you actually have.
You still bring your own leads and your own mailboxes — Sendvanta doesn't sell lists and doesn't route mail through shared IPs. The free plan ($0 forever, 1,000 active leads, 3,000 emails/month, up to 10 of your own SMTP mailboxes) is enough to run a placement test and a controlled 200-lead batch to see which of the two problems you have before committing to anything. Paid plans start at $29/mo.
Can a placement test ever predict bounce rate?
No. Seed addresses are guaranteed valid, so the test holds recipient existence constant by design. It measures filtering, not list quality. The two are independent until bounces get high enough to damage reputation.
My bounces say 'blocked' — is that a list problem?
No. 550 5.7.1 blocked or 554 listed-on-blocklist means the receiver is refusing your sender, not that the address is invalid. That's a reputation issue. Check blocklists, authentication alignment, and recent volume changes.
I verified the list and still got 6% bounces. Why?
Most likely the verification is stale, the file contains catch-all domains the verifier couldn't resolve, or the addresses were pattern-guessed rather than sourced. Re-verify within 7 days of sending and segment catch-alls separately.
Should I retry a hard bounce later?
No. A permanent 5xx on an unknown user won't change, and repeat attempts to invalid addresses are exactly the pattern mailbox providers use to identify purchased lists. Suppress immediately and permanently.
What bounce rate should trigger a pause?
Pause at 5% for the campaign as a whole, and ideally set an earlier trip wire — 4% within the first 200 sends — so a bad import gets caught before it runs through the whole list.
Ready to send outbound that lands?
Create your free Sendvanta workspace — no credit card required.
Start free