Bounce rate: the number that moves your reputation

Hard bounces tell a receiver you are mailing addresses that do not exist. Enough of them and you stop looking like a sender with a list, and start looking like a guesser.

Verified By George Hartley, CEO · Updated August 30, 2026

Hard and soft, and why the split matters

A bounce is a rejection by the receiving server. A hard bounce is permanent, typically a 5xx response meaning the address does not exist. A soft bounce is temporary, a 4xx response such as a full mailbox or a rate limit, and the same address may accept mail later.

The distinction is not academic, because the two carry completely different signals. Soft bounces are mostly noise about the recipient's mailbox state. Hard bounces are a statement about your list: you are sending to addresses that were never real, or have not been real for a long time. That is what moves reputation.

Two failures, two clocks
hard bouncepermanent failure
suppress immediately
soft bouncetemporary failure
retry
suppress at the thresholdrepeat softs become hard
Permanent means now; temporary means watch. The paths differ in timing, and both end in suppression when the address is dead.

What the numbers look like in practice

Bounce rate, read honestly

7-day rate, and what it means for a normal list
Rate
Reading
What to do
Under 1%
Healthy, well-maintained list
Nothing. Keep suppressions enforced
1% to 2%
Acceptable, some drift
Re-verify the oldest segments
2% to 3%
List hygiene is slipping
Stop importing, clean before the next send
Above 3% and rising
Reputation damage in progress
Pause, purge, then re-warm if placement dropped
Direction matters as much as level. A rising rate is an event, not a state.

Suppression is the actual control

The suppression list, not the send log, is where deliverability is really managed. We count soft bounces per email channel and suppress a recipient automatically once they hit the threshold, which for us is three consecutive soft bounces. Hard bounces are suppressed on the first occurrence, because there is no version of the story where the address becomes real again.

This is not a new lesson. SmartrMail had the same mechanism, automatically excluding recipients after repeated soft bounces, and the reason it exists in both products is that manual list hygiene does not happen. It has to be enforced by the system or it does not get done.

Suppression handles the recipient, and the sender needs a control too, so for us that is auto-pausing on high bounce, unsubscribe and complaint rates. We tuned it after our own onboarding flows got paused twice on tiny samples, so a pause now requires both a rate breach and a minimum absolute count: 3 bounces or 2 complaints. A rate alone lies at low volume.

Individual soft bounces do not belong in alerts, and what I need to know is whether a campaign, a flow or the whole account is paused. Everything below that is aggregate: we track failures, bounces, complaints and auto-pauses, and roll them into a domain reputation score where 1.0 is a healthy domain.

Kam, our co-founder, built the per-domain layer underneath this: bounce rate and complaint rate are tracked per domain, and every send is gated on the health of the specific domain it goes out on. If one brand's domain starts bouncing, that domain gets throttled or held while the other brands keep sending on their own clean domains.

Preventing them

Most hard bounces are preventable at capture. Validate addresses at the point of collection rather than at send time, use confirmed opt-in where the list will be long-lived, and re-verify segments that have gone quiet for a year or more.

Unopened mail is part of the same story. The more unopened emails you leave sitting in inboxes, the worse your deliverability gets, because mailbox providers read sustained non-engagement as a signal the mail is not wanted. Pruning chronically unengaged segments is bounce prevention one step earlier.

After that it is discipline: never import a purchased list, never resurrect an old export because a campaign needs volume, and let the suppression list do its job rather than clearing it to inflate reach. If bounce rate has already damaged placement, fix the list first, then confirm authentication is aligned, check you are not listed, and measure real inbox placement before deciding whether the problem is solved.

Catching bad addresses before they bounce is what the email validation API is for, and bounce events arrive in real time on the webhooks feed so suppression can happen without a nightly job.

Go deeper

References

The primary sources behind the rules on this page. Provider policy and the underlying standards, not vendor marketing.

Common questions

What is a good email bounce rate?

Under 2% is healthy and under 1% is good. Above roughly 3% and climbing is the point at which reputation damage becomes measurable.

What is the difference between a hard and soft bounce?

A hard bounce is a permanent 5xx rejection, such as an address that does not exist. A soft bounce is a temporary 4xx condition like a full mailbox, and may succeed on retry.

How many soft bounces before suppressing?

We suppress a recipient on a channel after three consecutive soft bounces. A hard bounce is suppressed on the first occurrence.

The number stays low when an agent enforces it

Watching bounce rate on a dashboard is reacting to a number that already moved. The fix that actually works is upstream: an AI agent that suppresses hard bounces the instant they happen and throttles sending before a rising rate becomes a reputation problem. That is what Nitrosend does by default, because email marketing is moving to being run by agents, and this is exactly the kind of enforcement a person forgets to do consistently and an agent does not.

Run your whole email stack from your AI agent, with deliverability built into every send.

Plans that grow with your sending.

Unlimited stored contacts. Compare monthly and annual plans, included verifications and add-ons on the pricing page. Existing customers can retain their agreed base price; ordinary allowances follow the current package, with explicit custom agreements preserved.