[ Reports & investigation ]

Separate reporting coverage from the total population of email sent

Measure DMARC reporting coverage without treating received aggregate rows as a census of every message the organization sent.

By the EmailAuth research team · 7 min read

[ Key points ]

  • Report observations and sender attempts are different populations.
  • Missing reports are not equivalent to zero failures.
  • Reconciliation needs stable scope, timestamps and exclusion records.
On this page

Name the denominator before calculating a rate

A DMARC dashboard may show a large number of message observations, but that number is not automatically the total population of mail sent by the organization. Aggregate reports describe observations reported by participating receivers for particular intervals. Sender systems describe their own attempts and events. These populations differ in origin, timing, grouping and visibility, so dividing one by the other without a defined reconciliation method can produce a misleading coverage claim.

Start by naming the question. Are you measuring the share of an approved sender inventory represented in reports, the share of known recipient services returning reports, or a relationship between reported counts and sender events for a bounded interval? Each requires a different denominator and different evidence. A generic “coverage percentage” obscures those choices. RFC 9990, section 3.1 and 9.1

Separate reporting participation from ingestion health

A missing report can reflect a receiver’s reporting behavior, lack of relevant traffic, delivery problems, processing delays or an ingestion defect. An empty dashboard interval does not distinguish those possibilities. Track the reporting relationship and the collector pipeline separately so an analyst can see whether a file was expected, received, rejected, delayed or simply not evidenced.

Preserve report sender, reporting organization, interval, identifier and processing status. Record any known delivery or parser failure without translating it into zero observed authentication failures. An excluded artifact changes the analyzed population and belongs in an error or exclusion log. If a later report fills the gap, retain the dataset revision rather than silently rewriting the earlier conclusion.

No universal reporting-completeness guarantee is assumed here. The proposed review must use the actual receiver population and available collection evidence. A report from one mailbox provider cannot establish the behavior of other receivers, and repeated observations from a dominant provider should not be mistaken for broad population diversity.

Choose compatible sender-side evidence

Define which sender event belongs in the comparison. An application request, provider acceptance, attempted delivery, receiving-server acceptance and final failure are not interchangeable events. Retries, multiple recipients and application resubmissions can create several records for what a business user thinks of as one message. Preserve the event semantics and aggregation rule before reconciling counts.

The retained SendGrid event reference illustrates the distinction: processed means the provider received the message and it is ready to be delivered; delivered concerns delivery to the receiving server, not proof of inbox placement or human reading. This is a provider-specific example, not a universal event schema. Other systems require their own current definitions. SendGrid Event Webhook Reference

Keep original timestamps and a documented normalized time basis. A report interval and an application’s calendar-day total may not align. Late-arriving reports, queue retries across a boundary and changed stream classifications should be visible in the reconciliation rather than absorbed into a fabricated correction factor.

Map domains and routes without assuming perfect joins

Aggregate observations may not contain the same transaction identifiers as sender logs. Avoid promising a one-to-one message join when the data supports only grouped comparison. Map source addresses, authentication domains and policy context to owned routes with stated confidence, and preserve shared-infrastructure ambiguity. A provider brand alone does not prove which customer account generated the observed traffic.

Keep raw SPF or DKIM results distinct from DMARC alignment. A rate calculated from all raw SPF passes does not necessarily measure aligned authentication coverage for the visible From domain. The core specification’s alignment rules determine which identity relationship matters to that conclusion. An unknown route should remain unknown rather than being added to the approved population merely to improve the rate. RFC 9989, section 4.4

Reconciliation worksheet and dataset contract

Create a dataset contract listing source systems, extraction method, versions, interval boundaries, event definitions, included streams, receiver scope, deduplication rules and exclusions. Retain immutable source references or hashes and the transformation steps needed to recreate the analyzed dataset. If a field cannot be retrieved, state its absence and the conclusion that becomes unsupported.

The worksheet should contain the reporting population, sender population, overlap assumptions, unmatched groups, late data and excluded artifacts. Provide counts only when actual evidence exists. Separate unknown coverage from measured noncoverage. A report that cannot be mapped to an approved route should not be silently dropped, but it also should not automatically increase the count of legitimate mail.

Acceptance requires another analyst to reproduce the population definition and obtain the same bounded comparison from the same dataset version. A chart can summarize that comparison, but it should disclose material gaps and the last complete interval. A higher observed authentication rate is not necessarily evidence that total organizational coverage improved if the reporting mix changed.

Fictional diagnosis: a quieter dashboard after a pipeline gap

Imagine a fictional organization whose collector receives reports from several receiver groups. During one interval, a large group’s report fails parsing and is excluded. The remaining reports show fewer failures. No actual dataset or parser execution was used for this example; the situation is invented to illustrate denominator risk.

The analyst should not announce improved authentication merely because the surviving records look healthier. The analyzed population changed. The appropriate output is a limited result for the retained receiver groups plus an explicit collection-quality gap. Sender-side events may help establish continued activity toward the missing group, but they do not reconstruct its unreceived authentication observations.

If the report is later recovered under an authorized process, the dataset should receive a new version and the comparison should be recalculated. Preserve both the initial limited conclusion and the revised one. This makes the change explainable and prevents an apparent trend from being manufactured by silent backfilling.

Original evidence and release boundary

The catalogue requires a versioned dataset, query method and error/exclusion log that another analyst can reproduce. This manuscript supplies a method and fictional example only. No sender logs, reports, recipient lists or live queries were collected, and no coverage percentage is claimed.

Original evidence, human review, source applicability, production routes, visual accessibility and owner release remain open. Before operational publication, obtain authorized data, minimize unnecessary identifiers and confirm the event definitions for every included system. The final conclusion should state the observed population and its limits rather than imply that aggregate reporting is a complete census of all email sent.

[ Takeaway ]

Describe the observed reporting population before calculating a coverage or authentication rate.

[ By role ]

What this means for you

Choose your role for practical next steps.

Reporting analyst

State the denominator

A large dataset is not necessarily a complete population.

Next steps

  1. Define receiver and time scope.
  2. Retain excluded and late data.

Messaging operator

Explain sender events

Queue and delivery stages affect comparisons.

Next steps

  1. Document event semantics.
  2. Preserve retry and recipient rules.

Reviewer

Check reproducibility

Trend claims depend on stable populations.

Next steps

  1. Recreate the dataset version.
  2. Separate unknown coverage from measured outcomes.

[ FAQs ]

Frequently asked questions

Are aggregate counts the total number of messages sent?

Not automatically. They represent a reporting population that must be scoped and reconciled.

RFC 9990: DMARC Aggregate Reporting

Does no report mean no failures?

No. Missing observations and observed zero counts are different.

Can processed and delivered events be mixed?

No. The retained SendGrid reference defines distinct stages, and other providers need their own definitions.

Twilio SendGrid: Event Webhook Reference

Does delivered prove a message was read?

No. The cited event concerns delivery to the receiving server.

Twilio SendGrid: Event Webhook Reference

Can raw SPF pass measure DMARC alignment?

Not by itself. Alignment must be assessed against the relevant From domain.

RFC 9989: DMARC

Should late data replace earlier results silently?

No. Preserve dataset revisions and the reason for recalculation.

Was a coverage dataset measured here?

No. The example is fictional and no counts or rates are claimed.

What original evidence remains open?

A versioned dataset, reproducible query method and error/exclusion log remain required.

[ Sources ]

Sources

  1. RFC 9989: DMARC

    Sections §2.4 Out of Scope · §4.4 Identifier Alignment Explained · §4.7 DMARC Policy Record Format · §4.10 DNS Tree Walk · §5 DMARC Participation · §6 DMARC Feedback · Appendix A.6 Removal of the "pct" Tag · Appendix C Changes from RFC 7489

  2. RFC 9990: DMARC Aggregate Reporting

    Sections §3.1 Aggregate Reports · §3.3 Changes in Policy During a Reporting Period · §3.4 Report Request Discovery · §3.5 Report Delivery · §4 Verifying External Destinations · §5 Extensible Reporting · §8.1 Report Content as an Attack · §8.2 False Information · §9 Operational Considerations · §9.3 Report Storage · Appendix A DMARC XML Schema · §1 Introduction · §7.1 Report Recipients · §7.2 Data Contained Within Reports · §9.1 Report Generation

  3. Twilio SendGrid: Event Webhook Reference

    Sections Delivered events · Deferred events · Dropped events · Processed events

[ Glossary ]

Glossary

Reporting population
The observations included from report-generating receivers within the stated scope.

RFC 9990: DMARC Aggregate Reporting

Sender population
The defined sender-side events selected for comparison.
Reconciliation assumption
A documented rule connecting datasets that may lack one-to-one identifiers.
Collection gap
Missing or excluded evidence that limits the analyzed population.

Enterprise provenance

Why top financial institutions and governments retired their email security dashboards.

Traditional email authentication platforms sell you a dashboard and ask your engineers to do the labour. In high-stakes environments, manual oversight means delayed enforcement, configuration drift and unmonitored shadow domains.

EmailAuth is the agentic email provenance platform. Our agents enforce p=reject, keep third-party senders aligned and move your domains to full RFC 9989 compliance, the new DMARC standard,, with human-in-the-loop auditability.

Governments Large enterprises Tier-1 financial institutions

SaaS · Dedicated tenancy · Air-gapped on-prem · BYOK encryption

Knowledge Base