A business may think it sends only a few hundred newsletters while its applications generate thousands of other messages. Another may divide campaigns among subdomains and assume each is a separate sender. Bulk classification requires a destination-specific count and identity model, not a count taken from one marketing dashboard.
Record the provider’s actual definition
Google's FAQ groups messages from the same primary domain, describes the threshold as close to 5,000 or more in 24 hours, and says classification persists once reached. Yahoo does not publish a numeric threshold. Microsoft's current consumer support article uses 5,000 or more with the same visible From domain; its original announcement describes daily sending. These differences should remain explicit. Google FAQ, Yahoo FAQ and Microsoft support.
Do not transfer Google's primary-domain aggregation or permanent-status wording to another provider without that provider's evidence. Conversely, an unpublished Yahoo threshold is not proof that a low-volume stream is exempt. When the classification is uncertain, document that uncertainty and meet the stronger controls where practical.
Inventory messages outside the campaign platform
List billing, support, account notifications, sales systems, event invitations and employee mailbox services. For each source, retain timestamp, destination service, visible From domain and the available sender identity fields. Define how your internal report handles retries and duplicate events so a resubmission is not silently counted as an entirely new intended recipient.
An internal report is a planning tool, not a reproduction of a receiver's private classifier. The provider may have evidence you cannot observe. Label estimated counts as estimates and preserve any provider dashboard classification separately. Avoid presenting a spreadsheet total as a formal certification of non-bulk status.
Reproduce a simple aggregation example
The private review package’s synthetic model assigns 3,000 messages to a primary domain and 2,200 to its promotional subdomain in the same observation period. The total is 5,200. For the Google grouping described above, looking only at the 2,200-message campaign would miss the combined activity.
These are invented inputs. The fixture computes the total from the named primary_domain and subdomain inputs and asserts that it equals 5,200; it does not connect to Gmail, decide how Yahoo classifies a sender or emulate Microsoft's classifier. Its purpose is to make the inventory error visible. To reproduce the exercise, change one stream count and observe how the group total changes while the source rows remain separately attributable.
Preserve history and distinguish destination scope
Keep historical classification evidence when a provider's rule makes history relevant. A quiet week does not automatically undo an earlier status. Record the date of the source review, the count window, the source systems included and any periods with missing logs. Missing history should remain a gap, not be interpreted as zero volume.
Group recipients by the actual service scope needed for the policy. A familiar desktop client or a company domain using a provider's infrastructure does not necessarily belong to the provider's consumer rule. Keep uncertain destination mappings visible and avoid sending extra mail merely to discover how a receiver classifies the sender.
Use classification to improve controls
The useful outcome is a list of applicable controls and owners, not a strategy for staying just below a limit. Splitting traffic without fixing authentication, consent or unsubscribe handling leaves those problems intact and can make the inventory harder to maintain.
Revisit the record after acquisitions, new applications, domain changes or large launches. Close with the provider-specific status, evidence and unresolved scope questions. This is a planning workflow, not a promise that a receiver will classify a sender in a particular way.