
TL;DR
- Our April 22, 2026 graph study contained 534,515 stores, 712,801 contact records and 657,428 filled-in email rows. These are historical records, not a current send list.
- 97,770 rows had a stored bounced status and 297,173 had found or matched status. Route them to suppression or verification rather than treating them as currently deliverable.
- Exact lowercase/trimmed-email deduplication removes 34,388 extra rows. Keep account relationships while preventing duplicate sends.
- 22,095 stores had a bounced row and no verified, found/matched or catch-all/guessed alternatives under the study's rule. Other statuses can remain, so this is not a strict every-email-bounced count.
- Sender opt-outs and campaign exclusions take precedence over a verified row, newer export or saved-list membership.
Account Exclusions and Address Exclusions
Suppress an address for an address-specific issue; suppress an account for an account-specific campaign decision. A relevant store with a bad email can remain in a research queue for another appropriate contact. A current customer, active opportunity or opted-out account needs the applicable sender/campaign exclusion even if its new contact data looks attractive.
Save the scope and reason of each rule. A temporary offer-fit or cooling-off decision differs from a marketing opt-out. Do not expire an opt-out simply because a campaign ends or a fresh export rediscovers the address.
| Rule | Typical scope | Operational action |
|---|---|---|
| Marketing opt-out | Applicable sender and requested contact/account scope | Retain and enforce across future imports/sends |
| Bounced address | Normalized address | Hold from sends unless documented later evidence resolves the status |
| Duplicate address | Address within sender/campaign | Keep one send record, preserve linked accounts |
| Current customer/open opportunity | Account | Coordinate ownership and exclude inappropriate acquisition outreach |
| Previous outreach | Account/contact and offer | Apply explicit campaign/cooling-off policy |
| Offer mismatch | Account and offer | Record why it does not fit; do not infer budget from public stack alone |
| Uncertain role/address | Contact | Research or verify before using the record |
What the April Study Measured
The extraction expanded stored contact email lists that had at least one entry. It normalized addresses with lowercase and trimming, and classified generic inboxes by an exact allowlist after removing dots, underscores and hyphens from the local part. This heuristic does not prove personhood or mailbox ownership.
Role flags use stored normalized roles and title patterns. LinkedIn is a stored, filled-in URL, not a verified current employer or buyer. Email status is stored evidence rather than a current campaign delivery outcome. The query has no active-store or maximum record-age filter.
A contact's last-verified timestamp can describe a person refresh rather than a check of each address. For a current export, require address-level verification time, source and result; do not transfer one row's status to a different address or assume the contact timestamp proves email freshness.
Status and Routing Counts
All percentages below use 657,428 email rows, not distinct addresses, people or stores. The eight routing rows partition the email rows under the script's precedence; generic classification is applied before the verified-role buckets.
| April routing condition | Rows | Share | Research/export action |
|---|---|---|---|
| Verified non-generic + mapped role + LinkedIn field | 15,150 | 2.3% | Validate current identity/role and sender suppression |
| Verified non-generic + mapped role, no LinkedIn field | 373 | 0.1% | Validate current role and contact evidence |
| Verified non-generic, no matched outreach-role flag | 85,259 | 13.0% | Role may be unknown; investigate the relevant person |
| Verified generic inbox | 156,357 | 23.8% | Evaluate channel purpose, role and suppression |
| Found or matched | 297,173 | 45.2% | Verify address evidence before sending |
| Catch-all or guessed | 5,322 | 0.8% | Hold and investigate uncertainty |
| Bounced | 97,770 | 14.9% | Suppress pending documented resolution |
| Other status | 24 | 0.0% | Manual review |
The verified buckets sum to 257,139 rows (39.1%). Of these, 100,782 are non-generic. Across all statuses, 330,917 rows (50.3%) match the generic heuristic. A non-generic local part is not proof of a named person, and a generic address is not automatically invalid.
The underlying role count includes generic rows too, explaining why it can differ from the non-generic routing buckets. Do not rename the 85,259 fallback as “known other role” or the 15,150 group as automatically ready to send.
Exact-Email Duplication
| Historical deduplication observation | Count |
|---|---|
| Distinct normalized addresses | 623,040 |
| Email rows in duplicate groups | 50,588 |
| Extra rows after exact-email deduplication | 34,388 |
| Distinct addresses appearing more than once | 16,200 |
| Addresses associated with multiple stores | 13,621 |
| Rows in cross-store duplicate groups | 45,427 |
| Maximum rows for one address | 516 |
657,428 − 623,040 = 34,388 extra rows. Exact normalization does not merge aliases, prove two addresses are the same person or resolve parent-company relationships.
Preserve every address's linked accounts and evidence history. Before choosing a preferred duplicate row, combine applicable opt-outs, sender blocks, bounce evidence and campaign history. A verified duplicate must not overwrite an opt-out or silently erase a newer bounce. Resolve status conflicts using address-specific dates and sources; hold unresolved conflicts.
Keep one send record per normalized address within the campaign. If the address belongs to several accounts, choose the account relevant to the offer while retaining the other relationships for coordination. Do not infer separate people merely from different storefront records.
Store-Level History Uses a Different Denominator
| April group | Store records | With email rows | With any bounced row | Bounced rows with no specified alternative |
|---|---|---|---|---|
| All stores | 534,515 | 397,693 | 72,338 | 22,095 |
| Estimated 50K+ traffic | 184,072 | 155,930 | 31,322 | 7,061 |
| Estimated 50K+ with verified non-generic email | 29,993 | 29,993 | 7,419 | 0 |
“No specified alternative” requires a bounced row and zero verified, catch-all/guessed, found or matched rows. It does not require every email row to be bounced; other statuses may coexist. These stores need review before an email export rather than a blanket assertion that every contact bounced.
The third row shows 7,419 accounts can have both a verified non-generic address and bounced history. Account history does not invalidate every address, and a valid-looking address does not remove other account exclusions. Assess both scopes.
Stored Bounced-Email History by Category
The denominator is stores with at least one filled-in email row in the category. The numerator is stores with any stored bounced row. This is not the future bounce probability of a deduplicated, currently verified campaign.
| Selected category | Email-bearing stores | With bounced history | Share |
|---|---|---|---|
| Baby & Kids | 4,363 | 984 | 22.6% |
| Electronics | 5,617 | 1,218 | 21.7% |
| Health & Wellness | 10,516 | 2,239 | 21.3% |
| Sports & Fitness | 9,785 | 2,011 | 20.6% |
| Home & Garden | 29,623 | 6,007 | 20.3% |
| Food & Beverage | 24,264 | 4,838 | 19.9% |
| Beauty | 21,341 | 4,180 | 19.6% |
| Fashion | 57,620 | 10,528 | 18.3% |
Address depth, data age and source coverage can affect this statistic, but the study does not isolate their effects. Apply suppression and current verification across categories rather than declaring a category safe or unsafe from historical shares.
Saved-List Overlap Is Platform-Wide
The April extraction reports 37 lists, 30,272 contact membership rows, 21,244 distinct contacts, 7,967 contacts in multiple lists and 9,028 extra memberships. It also reports 45,235 contact reveal rows for 32,158 distinct revealed contacts.
Those aggregates are platform-wide, without a workspace, sender or campaign restriction. Independent users can save the same contact legitimately. These counts do not prove repeated sends, duplicate exports by one agency or currently enforced suppression.
Within your own workspace/sender, compare both contact IDs and normalized addresses across relevant campaigns. List names or membership alone are not a central opt-out ledger. Confirm which exclusions the export and sending systems enforce; apply the remaining checks manually before import.
Proposed Include/Exclude Workflow
This is a manual operating procedure, not a product flow we executed in the study.
- Define the offer and include cohort, with dated estimated traffic/category/vendor observations. Validate the task; public signals are not confirmed need or budget.
- Apply current customer, active opportunity, sender opt-out and campaign/account exclusions.
- Research the relevant contact and obtain current address-level status, source and check time.
- Combine duplicate histories before selecting a row, preserving all applicable suppression.
- Route uncertain statuses and role/channel mismatches to review.
- Import only the resulting campaign records and verify the sending platform's exclusion/deduplication behavior.
- Record the final export, responsible owner, campaign ID and subsequent opt-out/bounce events in the sender's suppression system.
- Reapply that system on every future export; a refreshed research list does not reset contact history.
A saved exclusion list can support this workflow, but verify its current enforcement and scope. Do not assume saving a segment automatically prevents future sends. StoreInspect pricing, checked October 10, 2026, provides CSV on paid plans; Free has no CSV. Export access itself does not establish sender-side suppression.
Opt-Out and Sender Requirements
The FTC's CAN-SPAM guide, checked October 10, 2026, covers commercial email, including B2B. It requires a clear opt-out mechanism and honoring requests within 10 business days. A currently verified address does not override an opt-out.
Google's personal Gmail sender guidelines, checked the same day, require SPF or DKIM for all senders. Senders at about 5,000 or more messages per day to personal Gmail need SPF, DKIM and DMARC, with one-click unsubscribe for marketing/subscribed messages. Review the full linked scope and requirements; suppression does not replace authentication or establish permission to contact.
FAQ
Should I delete bounced records?
Preserve the historical reason and evidence while suppressing the address from sends. Reconsider only with documented later address-specific evidence; do not let a new import erase the history.
Should I exclude an entire store?
Use account exclusions for account-level decisions and address exclusions for address issues. A store with bounced history may have a separate appropriate contact, subject to account and sender rules.
Are verified non-generic rows executive contacts?
No. The prefix heuristic, stored status and role field need separate validation. The fallback verified group can include unknown roles.
Does overlap in saved lists prove duplicate outreach?
No. The reported overlap is platform-wide. Inspect the relevant workspace, sender, normalized address and campaign history, and verify actual exclusion enforcement.
Find Shopify Clients Worth Your Time
Search by niche, traffic, and tech stack. Export with verified founder contacts.Search stores by niche, traffic, and tech stack. Export with verified founder contacts so you can skip the research.
![Shopify Gift Wrap Apps [144,253-Store Study]](/_next/image?url=%2Fimages%2Fblog%2Fshopify-gift-wrap-apps.webp&w=3840&q=75&dpl=dpl_HhRKbHyNF9AhNYuz89BGHTogyLTF)
![Shopify Currency Converter Apps [144,232-Store Study]](/_next/image?url=%2Fimages%2Fblog%2Fshopify-currency-converter-apps.webp&w=3840&q=75&dpl=dpl_HhRKbHyNF9AhNYuz89BGHTogyLTF)
![Shopify Color Swatches [260,118-Store Study]](/_next/image?url=%2Fimages%2Fblog%2Fshopify-color-swatches.webp&w=3840&q=75&dpl=dpl_HhRKbHyNF9AhNYuz89BGHTogyLTF)