[ Reports & investigation ]

DNS changes during a reporting window: preserve the historical context

Interpret a report against the configuration history that existed while its observations were collected.

By the EmailAuth research team

[ Key points ]

  • Current DNS cannot reconstruct every earlier receiver observation.
  • Keep policy snapshots, aligned evaluation and disposition separate.
  • Annotate transitions and retain evidence of simultaneous changes.
On this page

A current DNS lookup cannot prove what a receiver used earlier in a reporting window. A policy change can cross report boundaries, DNS cache states and receiver generation practices. Preserve the history before interpreting an apparent mismatch between a report and today's record.

Save the change timeline

References: RFC 8767 §4.

Record the old and new DMARC records, affected domain, approved change time, authoritative observations and relevant TTL information. Preserve related SPF and DKIM changes separately. A policy edit and a sender authentication repair may occur together but explain different aspects of the resulting reports.

Record times in UTC with the observation method. An authoritative answer at a given time establishes what that server returned then; it does not establish that every receiver immediately discarded a cached answer. Avoid an invented universal propagation deadline. Qualifying serve-stale behavior under RFC 8767 §4 can retain usable data beyond normal TTL freshness.

Read the reported policy in context

References: RFC 9990 §3.3, RFC 9989 §5.4.

RFC 9990 section 3.3 describes mixed-policy reporting during changes. A receiver may produce multiple reports for the period or a single report whose observations span policy states while its policy_published element contains one configuration. The report's one policy snapshot is not a message-by-message DNS audit.

Inspect the covered interval, reported configuration and handling information separately. A reported disposition is also not a substitute for the aligned authentication result. Receiver-local decisions can differ from the domain owner's requested handling.

Work through a transition

Illustrative case: the owner changes p=none to p=quarantine at 12:00 UTC. A report covers 00:00–24:00 and records a final published quarantine preference. It can still include earlier observations or handling associated with the previous policy. That mismatch alone is not evidence that the receiver ignored a policy it had already observed.

The correct investigation compares the change log, reporter window and available message-level samples. If policy-specific reports are separate, preserve their identity and check overlap before summing. Do not rewrite older observations to inherit the current DNS state.

Verify the actual change separately

Check the authoritative publication and representative subsequent messages through important routes. Record trusted authentication results and any receiver-specific findings. A clean later reporting interval can provide additional evidence, but neither it nor a current DNS lookup proves behavior at every receiver.

Annotate charts with configuration events and keep pre-change, transition and later intervals distinguishable. Close the change with observed results, unresolved implementation differences and recovery criteria. Historical reporting is most useful when it retains the uncertainty that existed at the time.

Keep a change evidence packet

Place the approved record diff, publication observations, test-message references and relevant report identities in one access-controlled record. Note any other changes deployed nearby, including gateway transformations or provider signing updates. Those confounders can explain an authentication shift that otherwise appears linked to the policy edit. Record the analyst's interpretation separately from the original report so a later reviewer can revisit it. Use a clear stop condition for expansion to other domains if critical routes show unexplained failures.

Continue the investigation

Use the aggregate-report walkthrough to interpret the underlying fields and the alignment diagnosis guide when a raw authentication pass does not satisfy DMARC.

Executed synthetic evidence

The supplied locally rerun synthetic field fixture represents a policy transition at interval second 43,200 from none to quarantine. The report spans second 0 through 86,400 and policy_published records domain brand.example with p=quarantine. Relative seconds make this a model, not a historical DNS record. Two supplied records are processed:

  • Fixture row: Billing; Count: 90; Disposition: none; Aligned DKIM: pass; Aligned SPF: fail; Ownership evidence: Known only as a supplied fixture fact
  • Fixture row: Unknown source; Count: 10; Disposition: none; Aligned DKIM: fail; Aligned SPF: fail; Ownership evidence: Unclassified

Executed arithmetic yields 100 observations, 90 aligned passes and 10 aligned failures. The field-to-decision chain is specific: date_range straddles the change, policy_published is one snapshot, and the 10 failures' none disposition does not identify when those messages were evaluated. Investigate those 10 using historical policy observations and authorized samples. Do not automatically label them pre-change or conclude that the receiver ignored quarantine. The known billing fixture needs no authentication repair on this evidence because its aligned DKIM passes, although business delivery still needs separate evidence. Real service attribution, DNS observations and receiver samples remain pending.

Keep the decision bounded

The local exercise counts 90 supplied aligned passes and 10 failures, but leaves the 10 failures’ evaluation times unknown. The model cannot infer pre-change timing or receiver noncompliance from none disposition. No DNS lookup, policy change or receiver test was performed.

[ Takeaway ]

Current DNS cannot reconstruct every earlier receiver observation. Keep policy snapshots, aligned evaluation and disposition separate. Annotate transitions and retain evidence of simultaneous changes.

[ By role ]

What this means for you

Choose your role for practical next steps.

IT / Mail Admin

Save old and new DNS values.

Preserve the underlying observations and use the workflow above to separate the actual failure stage from assumptions.

Next steps

  1. Save old and new DNS values.
  2. Annotate report windows with change events.
  3. Verify subsequent message behavior.

CISO / SecOps

Avoid retrospective certainty from current DNS.

Keep coverage, provenance and remaining uncertainty visible before relying on these findings for a security decision.

Next steps

  1. Avoid retrospective certainty from current DNS.
  2. Review unexplained transition findings.
  3. Retain audit evidence and decision owners.

Founder / Non-technical

Require an approved change history.

Connect this reporting task to an owned business decision and require evidence proportionate to its impact.

Next steps

  1. Require an approved change history.
  2. Separate transition data from steady-state results.
  3. Keep recovery criteria visible.

[ FAQs ]

Frequently asked questions

Does today’s DNS answer explain yesterday’s report?

Not necessarily. Preserve the relevant historical configuration and timing.

RFC 9990 §3.3

Can one report contain observations across a policy change?

Yes. RFC 9990 explicitly describes mixed-policy reporting during changes.

RFC 9990 §3.3

Is policy_published a per-message history?

No. It contains one policy configuration for the report.

RFC 9990 §3.3

Should old rows be relabelled with the current policy?

No. Keep their reported context and annotate later interpretation separately.

Can TTL prove every receiver switched at one instant?

No. Record cache-related uncertainty and actual observations.

RFC 8767 §4

Does different disposition prove noncompliance?

Not alone. Consider the observed policy, transition timing and receiver-local handling.

RFC 9990 §3.3 RFC 9989 §5.4

Why separate DKIM changes from policy changes?

They affect different parts of authentication and handling, even if deployed together.

What should close a DNS change review?

Publication evidence, representative message results, later reporting context and remaining limitations.

[ Sources ]

Sources

  1. RFC 9989

    Sections §5.4

  2. RFC 9990

    Sections §3.3

  3. RFC 8767

    Sections §4

[ Glossary ]

Glossary

Published-policy snapshot
A report contains one policy configuration even when observations span a configuration change.

RFC 9990 §3.3

Serve-stale behavior
Qualifying resolver use of cached DNS data beyond normal freshness; TTL alone is not a universal change deadline.

RFC 8767 §4

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