Forum Discussion
Discrepency between bounce count on segment vs SQL
While looking into some deliverability questions, I created a segment of recipients who have received any message after 2025-12-03, and where hard bounced is true, and found a size of 114,000
To get some better insight into the causes of these bounces, I ran a query against the USERS_MESSAGE_EMAIL_BOUNCE_SHARED table in the Query Builder, which only shows 297 bounces.
Am I looking at the wrong table, or is my segment incorrect? This feels like I have a significant misunderstanding at to what these things represent.
Thanks!
2 Replies
- NirnayMentor
You’re not looking at the wrong table. These two approaches are simply looking up for different things.
The hard_bounced = true filter in segmentation reflects the current email status on the user profile. This means your segment includes all users whose email is marked as hard bounced, as long as they’ve received any message on any channel since 2025-12-03—such as email, push, SMS, in-app messages, Content Cards, or banners.
In contrast, the USERS_MESSAGE_EMAIL_BOUNCE_SHARED table in Query Builder contains individual email bounce events. The 297 rows you’re seeing represent actual email sends that hard bounced within the timeframe you queried, which is why this number is much smaller.
It’s also worth noting that the segment filter “last received any message” applies across all channels, not just email. As a result, users who are hard bounced for email but have recently received messages via other channels will still be included in the segment.
If you want closer alignment while staying within segmentation, try switching the filter to “last received email after 2025-12-03” along with hard_bounced = true. This will give you results that are much closer to what you see in Query Builder.
Ultimately, it comes down to your use case. If you need real-time segmentation, using the last received email filter will get you there. If you need precise, message-level bounce data and attribution, Query Builder is the better option. Hope this helps!
- jordanSupporter
They’re measuring different things: hard_bounced = true is a sticky user flag (users who have ever hard bounced), while USERS_MESSAGE_EMAIL_BOUNCE_SHARED shows recent bounce events. If you're looking for people who specifically bounced after 12/3, Query Builder is the correct path.
Related Content
- 4 months ago