Deliverability

How to Join _Sent to _Bounce for Deliverability Audits

5 min read · SFMC SQL practitioner guide

Two valid join paths

_Bounce can join to _Sent on the four engagement keys (JobID, ListID, BatchID, SubscriberID) when you need bounces tied to a specific deployment.

For subscriber-level bounce history independent of a single send, join on SubscriberKey instead.

Send-level bounce audit

SELECT
  s.JobID,
  s.SubscriberKey,
  s.EventDate AS SentDate,
  b.EventDate AS BounceDate,
  b.BounceCategory,
  b.SMTPCode
FROM _Sent s
INNER JOIN _Bounce b
  ON s.JobID = b.JobID
  AND s.ListID = b.ListID
  AND s.BatchID = b.BatchID
  AND s.SubscriberID = b.SubscriberID
WHERE b.BounceCategory = 'Hard bounce'
  AND b.EventDate >= DATEADD(day, -30, GETDATE())

Deliverability checklist

  • Separate hard vs. soft bounces — hard bounces often trigger auto-unsubscribe.
  • Cross-check _Subscribers.Status after hard bounces to confirm list hygiene.
  • In child BUs, profile attributes may require Ent._Subscribers.

Related reference: _Sent · _Bounce · _Subscribers