How to calculate Email Bounce Rate

Email bounce rate is the share of sent emails that could not be delivered to the recipient's mail server.

Formula

Bounce rate = bounced emails ÷ emails sent

SQL query

This example assumes: email_sends(id, campaign_id bigint, sent_at timestamptz, bounce_type text). It is written in PostgreSQL syntax; date functions differ slightly in MySQL, BigQuery and SQLite, and your column names will differ from these.

SELECT campaign_id,
       COUNT(*) AS sent,
       COUNT(*) FILTER (WHERE bounce_type = 'hard') AS hard_bounces,
       COUNT(*) FILTER (WHERE bounce_type = 'soft') AS soft_bounces,
       COUNT(*) FILTER (WHERE bounce_type IS NOT NULL)::numeric / NULLIF(COUNT(*), 0) AS bounce_rate
FROM email_sends
GROUP BY campaign_id
ORDER BY bounce_rate DESC;

Common mistakes that make Email Bounce Rate wrong

  • Hard bounces (invalid address) and soft bounces (full mailbox, temporary) mean different things; report them separately.
  • A soft bounce that is retried and delivered should not be counted as a bounce.
  • Counting by recipient instead of by send changes the answer for people emailed repeatedly.

Ask for Email Bounce Rate in plain English

Instead of writing the query yourself, you can type the question. SchemaChat turns it into SQL against your connected database or uploaded file, runs it, and shows the SQL and the figures it used so you can check the answer before you share it. It does not replace your judgement about the definition: check that the query matches the formula your business uses.

  • What is the hard bounce rate for each campaign?
  • Which campaigns had a bounce rate above 2%?

Frequently asked questions

What is Email Bounce Rate?
Email bounce rate is the share of sent emails that could not be delivered to the recipient's mail server.
How do you calculate Email Bounce Rate?
Bounce rate = bounced emails ÷ emails sent. The SQL example on this page shows the same calculation against a simple table.
What commonly goes wrong when calculating Email Bounce Rate?
Hard bounces (invalid address) and soft bounces (full mailbox, temporary) mean different things; report them separately.