Email Bounce Rate Explained: Hard Bounces, Soft Bounces, and What to Do | DexcyJet Blog

Email Bounce Rate Explained: Hard Bounces, Soft Bounces, and What to Do

Everything you need to know about email bounce rate — hard vs soft bounces, healthy thresholds, how to calculate your rate, and actionable steps to reduce bounces before they hurt your sender reputation.

MS

Megha Sharma

Deliverability Lead · January 22, 2026 · 6 min read

Email Bounce Rate Explained: Hard Bounces, Soft Bounces, and What to Do

Email bounce rate is one of the earliest warning signals of a list health problem. A rising bounce rate means real messages are failing to reach real inboxes — and if you ignore it long enough, mailbox providers will start treating your entire domain as a low-quality sender.

This post covers what hard and soft bounces actually are, how to calculate your bounce rate, what thresholds are considered acceptable, and the specific steps to bring a problematic rate back under control.

Hard Bounces vs Soft Bounces

The terminology comes from SMTP response codes defined in RFC 5321. The 4xx family are temporary failures (soft bounces); the 5xx family are permanent failures (hard bounces).

Hard bounces (permanent failures)

A hard bounce means the email cannot be delivered and will never be deliverable to that address. Common causes:

  • Address doesn’t exist: 550 5.1.1 The email account that you tried to reach does not exist
  • Domain doesn’t exist: The MX records for the domain can’t be found
  • Address has been deactivated or deleted

Hard bounces are the dangerous ones. Every hard bounce is a signal to mailbox providers that your list has quality problems. Hard bouncing above 0.5% on a send will trigger spam filtering at Gmail and Outlook.

DexcyJet automatically suppresses hard-bounced addresses — once an address hard bounces, it goes into the global suppression list and will not be delivered to again.

Soft bounces (temporary failures)

A soft bounce means the delivery failed this time but may succeed on retry. Common causes:

  • 452 4.2.2 Mailbox full — recipient’s inbox is over quota
  • 421 4.3.2 Service temporarily unavailable — the receiving mail server is temporarily down
  • 450 4.1.8 Domain does not exist — DNS lookup failed transiently

DexcyJet retries soft bounces automatically on an exponential backoff schedule. If an address soft bounces repeatedly across multiple sends (configurable, but typically 3–5 consecutive soft bounces), it gets suppressed as a chronic soft bounce — treated similarly to a hard bounce for list hygiene purposes.

Other bounce-adjacent categories

  • Spam complaints (FBL): Not a bounce, but critically important. When a subscriber marks your email as spam, that feedback loop report is functionally worse than a hard bounce. Keep complaint rates below 0.08% (Gmail’s published threshold is 0.1%; stay below that).
  • Blocked: Some receiving servers reject your email at the connection level due to IP/domain reputation. These look like bounces in your metrics but are a sender-reputation problem, not a list-quality problem.

How to Calculate Email Bounce Rate

Bounce rate = (Number of bounced emails / Number of emails sent) × 100

Be precise about your numerator: are you counting hard bounces only, or total bounces (hard + soft)? Most industry benchmarks cite hard bounce rate specifically. Soft bounces typically resolve on retry and shouldn’t be counted as failures unless they become chronic.

Example

You send a campaign to 12,500 subscribers.

  • 87 hard bounces
  • 143 soft bounces (40 of which resolved on retry, 103 remained)

Hard bounce rate: 87 / 12,500 × 100 = 0.70% — this is above the safe threshold. Action required. Soft bounce rate (unresolved): 103 / 12,500 × 100 = 0.82% — worth investigating but less urgent.

In DexcyJet, the campaign analytics dashboard breaks bounces down by type and shows you which addresses contributed to each category, with the SMTP response codes so you can diagnose the root cause.

What Are Healthy Bounce Rate Thresholds?

Bounce type Acceptable Warning Critical
Hard bounces < 0.5% 0.5%–1.0% > 1.0%
Soft bounces (chronic) < 1.0% 1.0%–2.0% > 2.0%
Spam complaint rate < 0.05% 0.05%–0.1% > 0.1%

These thresholds come from Google’s Postmaster Tools guidelines and broadly align with what Mailbox Provider Compliance teams enforce. Note that these are per-campaign thresholds, not averages across your entire account.

6 Specific Steps to Reduce Bounce Rate

1. Use double opt-in for new subscribers

The single most effective prevention is confirming email addresses before they enter your active list. A confirmed subscriber has, by definition, a real, deliverable address. See our detailed breakdown of double opt-in vs single opt-in.

2. Validate emails at the point of collection

Use a real-time email validation API (ZeroBounce, NeverBounce, Hunter’s Verify) to check addresses as they’re submitted. At minimum, validate:

  • Syntax (RFC 5322 compliant format)
  • Domain MX record exists
  • Mailbox existence (where the API supports it — not all do without a test message)

3. Clean lists before import

Before importing an old list into DexcyJet — from a previous platform, a tradeshow, or a historical CRM export — run it through a bulk validation service. Remove addresses that haven’t been engaged in 12+ months unless you have a specific re-engagement plan.

4. Suppress hard bounces immediately and permanently

DexcyJet does this automatically, but if you’re managing multiple sending platforms, you need a centralised suppression list. Export your suppression list regularly and apply it across all your senders. Sending to known hard bounces is one of the fastest ways to get your domain reputation tanked.

5. Apply a sunset policy for chronic soft bouncers

If an address has soft-bounced on three or more consecutive sends over 60+ days, it’s functionally dead. Suppress it. The address is either abandoned or the mailbox is permanently over-quota.

6. Warm up new sending domains and IPs

A common cause of elevated bounce rates on new accounts is sending too much too fast from a fresh IP or domain. Mailbox providers apply stricter filtering to new senders, and some addresses that would accept mail from established senders get deferred or bounced. Follow a proper warmup schedule — see our post on email warmup for new domains.

Reading Bounce Codes in DexcyJet

DexcyJet logs the full SMTP response for every bounce. In the Deliverability tab, you can filter by bounce code:

{
  "event": "bounce",
  "type": "hard",
  "email": "user@example.com",
  "smtp_code": 550,
  "smtp_enhanced_code": "5.1.1",
  "smtp_message": "The email account that you tried to reach does not exist",
  "timestamp": "2026-03-15T08:42:11Z",
  "provider": "gmail"
}

This event is also sent to your webhook endpoint so you can sync suppressions back to your CRM in real time. See the features page for webhook setup details.

For a broader view of what feeds into deliverability beyond bounce rates, read our post on 12 tactics to improve email deliverability.

Try DexcyJet: Automatic bounce handling, real-time suppression, and per-campaign delivery analytics are built in from day one. Start free — 2,000 emails/month on the Free plan.

Filed under #deliverability

Stay sharp on email deliverability.

Get new posts on email infrastructure, compliance, and engineering delivered directly. No spam — we eat our own cooking.

Try DexcyJet free →

Related posts

More on topics from this article.

deliverability growth

Email List Cleaning and Hygiene: A Systematic Protocol

A complete email list cleaning and hygiene protocol — sunset policies, re-engagement campaign design, when to remove subscribers permanently, and the deliverability math behind the decisions.

Megha Sharma Mar 13, 2026 · 6 min