DMARC Monitoring & Reporting Analysis: Operational Dashboard Discipline, KPIs, Alert Thresholds, Anomaly Detection, and Regression Detection

The practitioner guide to DMARC monitoring after the policy rollout: the 8 core KPIs every DMARC program tracks daily, 5 alert thresholds with escalation paths, the three-tier review cadence (daily during ramps / weekly in steady state / monthly for executive reporting), 5 anomaly detection patterns each with a recognisable signal shape, the 72-hour post-change observation protocol for regression detection, sender-inventory drift detection via weekly source-IP diff, and 6 canonical patterns that map aggregate-report data points to operational actions. Operationalises the data described in the aggregate-reports page into a working dashboard discipline.

This reference is provided in English. DMARC operational vocabulary (policy_evaluated, disposition, auth_results, dkim=pass, spf=pass, dmarc=fail, "aggregate report", "forensic report", "reporter", "alignment", "rua=", "ruf=") is standardised RFC 7489 terminology that does not translate. We keep the body in the source language so technical terms remain consistent with the specifications.

TL;DR

  • DMARC monitoring is the operational discipline that follows the policy rollout. Once your domain reaches p=reject, DMARC is not deploy-and-forget. Senders rotate keys, SaaS providers change infrastructure, marketing teams add new transactional sources, and attackers probe for spoofing opportunities. Without monitoring, alignment regressions appear as silent inbox failures days or weeks before users report them.
  • Track 8 core KPIs daily: authenticated volume, alignment pass rate, SPF pass rate, DKIM pass rate, combined SPF + DKIM pass rate, distinct sending sources, disposition distribution (none / quarantine / reject), and reporter coverage. All eight surface from RFC 7489 §7.2 aggregate (rua) reports.
  • Set 5 alert thresholds: authenticated volume drop >20 percent day- over-day, alignment pass rate drop below 95 percent for an enforced domain, new sending IP with >100 messages from a not-seen-in-30d IP, reporter coverage drop below 5 reporters per day, and forensic (ruf) report volume spike of 10x or more.
  • Three-tier review cadence: DAILY for the first 90 days of any sender onboarding or policy ramp; WEEKLY in steady state for trend review and inventory drift; MONTHLY for executive disposition reports and subdomain (sp / np) policy decisions.
  • Sender-inventory drift is the single most common operational anomaly: a new marketing platform or transactional provider starts sending on behalf of your domain without registration in SPF / DKIM. Diff the weekly source-IP list against an explicit authorized-sender inventory.
  • 72-hour post-change observation is the standard regression-detection window for any SPF / DKIM / DMARC configuration change. Capture the 7-day pre-change alignment baseline; alert if any of the 3 post-change daily values drops more than 5 percentage points below it.
  • Reporter coverage is a meta-KPI. A drop in distinct reporters means your rua= mailbox is bouncing, your DMARC record is malformed, or your sending volume to that receiver has dropped to zero. Healthy enterprise senders see 10+ distinct reporters per day.
  • Six canonical aggregate-report action patterns map every data point to an operational action: onboard new sender, investigate suspected spoofing, check upstream DKIM rotation, check sender reputation, capture pre-change baseline diff, validate sp= / np= subdomain policy. See Section 10.

1. The monitoring discipline

Most DMARC programs treat the journey to p=reject as the destination. The rollout deep dive (DMARC policy rollout) covers the migration from p=none through p=quarantine to p=reject — typically a 12-week journey. But the OPERATIONAL discipline begins on the day enforcement goes live and never ends.

Three reasons DMARC requires ongoing monitoring:

  • Sender estates drift. Marketing teams onboard new SaaS providers (SendGrid, Mailgun, Postmark, Mailchimp, Constant Contact, Klaviyo). Engineering teams spin up new transactional senders. Product teams launch surveys, NPS tools, and webhook-triggered notifications. Every new sender is a potential alignment failure unless registered in SPF and signed with custom-domain DKIM. The DMARC troubleshooting guide documents the canonical SaaS-sender-alignment failure (Pattern 1) caused by drift.
  • Infrastructure changes break authentication. DKIM key rotation is normal hygiene (DKIM explained covers cadence and key sizes). SPF records grow with each new include: directive, approaching the RFC 7208 §4.6.4 10-DNS-lookup ceiling. SaaS providers change IP ranges. Forwarding services modify bodies. Each change is a potential regression visible only in aggregate reports.
  • Attackers probe for spoofing opportunities. A spike in forensic (ruf) reports or a new IP sending with failing alignment can indicate a spoofing wave. The DMARC forensic reports page documents the signal-rich RUF samples that surface targeted phishing campaigns.

The monitoring discipline answers four questions on every operational shift: Is authenticated volume normal? Is alignment pass rate stable? Are there new senders to onboard or investigate? Are reporters still reporting? The remaining sections of this page operationalise each question.

2. The 8 core KPIs every DMARC dashboard tracks

Eight metrics, all derivable from the daily aggregate-report stream defined in RFC 7489 §7.2. Every metric should be tracked per day, per organizational domain, with a 7-day rolling average overlaid on the daily series to smooth weekend / holiday volume dips.

# KPI RUA source field Healthy range
1 Authenticated message volume / day sum of record/row/count Stable within +/-20 percent day-over-day
2 Alignment pass rate count where policy_evaluated.dkim=pass OR policy_evaluated.spf=pass / total count ≥95 percent at p=reject
3 SPF pass rate count where auth_results.spf.result=pass / total ≥90 percent typical; depends on forwarding pattern
4 DKIM pass rate count where auth_results.dkim.result=pass / total ≥95 percent typical; depends on body-modifying gateways
5 Combined SPF + DKIM pass rate count where either passes alignment / total ≥95 percent at p=reject
6 Distinct sending sources / day distinct row/source_ip Stable inventory; alert on new IPs >100 msgs
7 Disposition distribution group by policy_evaluated.disposition <1 percent quarantine or reject at steady state
8 Reporter coverage distinct report_metadata/org_name ≥5 reporters/day for SMB, 10+ for enterprise

DMARC Analyzer's dashboard (index.php) surfaces all 8 metrics: the headline cards expose KPIs 1, 2, 5, 6, and 7; the Top Source IPs panel exposes KPI 6 with per-IP alignment results; the Reporters chart exposes KPI 8; the Authentication pass-rate trend chart overlays KPIs 3 + 4 as time series. Backed by includes/DmarcParser.php which parses every rua XML report into the canonical schema described on the aggregate reports page.

3. Alert thresholds and escalation paths

Alerts convert KPIs into operational signals. Five thresholds catch the most common DMARC program regressions:

# Threshold What it indicates Escalation
1 Authenticated volume drops >20 percent day-over-day Authentication regression, deliverability throttling, or major sender outage. Pager-grade: notify the email-platform on-call within 15 minutes.
2 Alignment pass rate drops below 95 percent at p=reject Alignment regression — likely DKIM key rotation, SPF change, or new misconfigured sender. Pager-grade: notify the email-platform on-call within 30 minutes.
3 New IP with >100 messages from an IP not seen in 30 days Sender-inventory drift OR spoofing probe. Ticket-grade: route to the security team within 4 hours.
4 Reporter coverage drops below 5 reporters/day The rua= mailbox is bouncing, the DMARC record is malformed, or send-volume to that receiver collapsed. Ticket-grade: validate the rua= mailbox and DMARC record within 1 business day.
5 Forensic (ruf) report volume spikes 10x Spoofing wave or phishing campaign targeting the domain. Pager-grade: route to the security team within 1 hour.

Threshold tuning is per-program. The values above are starting points for a typical enterprise sender; small-business domains tune down (the 100-message new-IP threshold becomes 20, the 5-reporter threshold becomes 2). Alert noise from over-tight thresholds is operationally worse than missed alerts from loose thresholds — start conservative and tighten as the operational team builds intuition.

4. Operational review cadence

A three-tier review cadence covers the full operational surface without over-investment:

Tier 1 — Daily review (first 90 days + post-change)

Triggered during the first 90 days of any new sender onboarding, any policy advance (p=none → p=quarantine, p=quarantine → p=reject), or any infrastructure change. Daily review:

  • Yesterday's authenticated volume vs the 7-day moving average — flag >20 percent deviation.
  • Yesterday's alignment pass rate vs the 7-day moving average — flag drop >5 percentage points.
  • New IP sources in the past 24h not in the authorized-sender inventory — file for investigation.
  • Reporter coverage for yesterday — flag drop below 5 distinct reporters.

Cadence terminates after 90 days of stable metrics or when the change-driven trigger expires.

Tier 2 — Weekly review (steady state)

Once daily review terminates, weekly review handles the operational surface in steady state:

  • 7-day alignment-trend chart per organizational domain — look for slope changes or step functions.
  • Sender-inventory diff (this week vs baseline) — onboard new senders or file spoofing probes.
  • Reporter-coverage rolling average.
  • Top failing source IPs by message volume — drill into per-IP failure breakdown via the dashboard's source-IP detail view.
  • Disposition distribution per receiver (Google vs Microsoft vs Yahoo) — receivers sometimes apply different effective policies via policy_evaluated.reason.type overrides (local_policy, mailing_list, forwarded).

Tier 3 — Monthly review (executive + strategy)

Monthly review feeds quarterly business reviews and informs strategic decisions:

  • Month-over-month authenticated volume trend.
  • Disposition distribution by organizational domain (the executive headline).
  • Subdomain policy decisions: are any subdomains ready for an sp= upgrade or an np= override?
  • Pending BIMI / VMC deployment readiness check (BIMI deployment requires p=quarantine or p=reject + 100 percent alignment).
  • SPF lookup-count audit per organizational domain (refresh the Domain Security Checker output to verify headroom under the 10-DNS-lookup ceiling).

5. Anomaly detection patterns

Five recognisable patterns surface in aggregate-report data when something is operationally wrong. Each pattern has a canonical signal shape — recognising the shape collapses diagnosis time from days to hours.

Pattern A — Step-function drop in alignment

Signal shape: alignment pass rate was stable at 99 percent for weeks, then dropped to 70 percent overnight. Almost always a single infrastructure change — a DKIM key rotation that did not propagate, an SPF record edit that broke a sender, a SaaS provider's IP range change. Diagnose by correlating the drop date with the change-management log; capture the failing IPs via the source-IP detail view and check upstream.

Pattern B — Slow alignment decay

Signal shape: alignment pass rate gradually declines from 99 percent to 92 percent over 4-6 weeks. Usually sender-inventory drift — new senders being added without DMARC alignment work. Diagnose by diffing the weekly source-IP list against the authorized-sender inventory; the drift senders surface as new entries.

Pattern C — Volume spike with failing alignment

Signal shape: a single new IP appears with 1000+ messages in a day, all failing alignment. Either a legitimate new sender that needs urgent onboarding (a marketing campaign launched today) or a spoofing wave. Diagnose by checking whether the IP belongs to a known SaaS provider (whois / Google's known-IP-ranges JSON) and correlating with internal change tickets.

Pattern D — Reporter coverage collapse

Signal shape: reporter coverage drops from 10 reporters/day to 2 reporters/day overnight. The rua= mailbox is bouncing, quarantining, or the DMARC record was edited and receivers no longer recognise the rua= destination. Diagnose by sending a test message to the rua= address from an external account; check the DMARC record via dig +short TXT _dmarc.example.com and the Domain Security Checker.

Pattern E — Forensic-report flood

Signal shape: forensic (ruf) reports go from 5/day to 500/day. A spoofing or phishing campaign is hitting the domain. The forensic reports page covers the signal-rich RUF sample structure. Diagnose by extracting the spoofing pattern (sender display-name spoofing, cousin-domain spoofing, lookalike-domain spoofing) and escalating to security for takedown + blocklist enrichment.

6. Regression detection after a configuration change

Any change to SPF, DKIM, DMARC, or the sending infrastructure has potential to break authentication. Standard mitigation: a 72-hour observation window with explicit pre-change and post-change KPIs.

The 72-hour post-change protocol

  1. Before the change: capture the 7-day pre-change alignment pass rate per organizational domain. Capture authenticated volume, SPF pass rate, DKIM pass rate, and distinct sending sources.
  2. Day of change: deploy the change. Annotate the dashboard with a change marker (date + change ID + change owner).
  3. Day 1 post-change: review 24h aggregate-report data. Compare daily alignment, SPF pass, DKIM pass against the pre-change baseline. Alert if any KPI drops more than 5 percentage points.
  4. Day 2 post-change: repeat Day 1 review. Two consecutive bad days triggers a rollback decision.
  5. Day 3 post-change: repeat. Three consecutive good days closes the observation window. Three consecutive bad days triggers rollback.

Common regression triggers

  • SPF record changes — adding a new include: that breaches the 10-DNS-lookup ceiling causes universal permerror. See the DMARC troubleshooting Pattern 2.
  • DKIM key rotation — public key not published, signing not updated, selector typo. See DKIM explained.
  • DMARC policy advancement (p=none → p=quarantine → p=reject) — previously-passing alignment failures now surface as visible bounces. See the policy rollout page.
  • SaaS provider migration — new provider IPs not in SPF, new DKIM selectors not configured.
  • Internal SMTP relay reconfiguration — DKIM signing host changed without updating signing infrastructure.

7. Sender-inventory drift

The single most common DMARC operational anomaly. Email is permissionless within an organization — marketing buys a new tool, product launches a new survey vendor, engineering wires up a webhook-triggered sender. None of them ask the email-platform team for permission to use the company domain in the From: header. The first you learn of the new sender is when its messages appear in aggregate reports.

The inventory artefact

Maintain a single authoritative document listing every authorized sender:

Sender name        | Service          | SPF include          | DKIM selectors       | Volume tier
-------------------+------------------+----------------------+----------------------+------------
Google Workspace   | Corporate email  | _spf.google.com      | google, google-2     | High
SendGrid           | Marketing        | sendgrid.net         | s1, s2               | High
Mailgun            | Transactional    | mailgun.org          | k1                   | Medium
Postmark           | Transactional    | spf.mtasv.net        | 20240101             | Medium
Mailchimp          | Newsletter       | servers.mcsv.net     | k1, k2               | Medium
HubSpot            | Marketing CRM    | _hubspot._spf...     | hs1, hs2             | Low
Internal SMTP      | App notifications| (ip4:198.51.100.0/24)| selector1            | Low

The weekly diff

Once a week, extract the distinct source-IP list from the past 7 days of aggregate reports. Resolve each IP to its owning organization (whois + reverse DNS + known SaaS IP-range lists). Diff against the inventory. Each new entry routes to one of three outcomes:

  • Onboard — legitimate new sender. Add to SPF (or refactor to a higher-tier include: if you are approaching the 10-DNS-lookup ceiling), enable custom-domain DKIM, add to the inventory artefact. Verify alignment within 72 hours of activation.
  • Investigate — sender does not match any known business relationship. Could be shadow IT, could be spoofing. Engage business stakeholders before declaring it spoofing.
  • File spoofing — confirmed unauthorized sender. Document, escalate to security, monitor forensic reports for targeted recipients.

The DMARC Analyzer source-IP detail view (source_ip_detail.php) is the canonical interface for this workflow — it surfaces per-IP message volume, alignment breakdown, reporter coverage for that IP, and geolocation.

8. Volume-based compromise signals

Authenticated volume itself carries operational signal beyond the simple stability check. Three volume patterns deserve specific monitoring:

  • Sudden 10x volume spike from a single source IP. Either a legitimate marketing campaign launch (correlate with the marketing change calendar) or an account compromise — the attacker is using a legitimate sender's authenticated channel to push phishing or commercial spam at scale.
  • Sustained volume from an authenticated sender to an unusual geographic recipient set. Track the record/identifiers/header_from domain combined with the receiving organization (the report's org_name at the receiver side). A sudden expansion to a new TLD set (e.g., previously you sent only to .com and .de, now suddenly 30 percent of your volume targets .ru and .cn) is a compromise signal even if alignment passes.
  • Volume drop to a single receiver only. If Google reports drop to zero but Microsoft and Yahoo continue normally, you may have hit a deliverability block at Google (sender reputation, spam complaint rate, content trigger). Check Google Postmaster Tools.

9. Reporter coverage as a meta-KPI

Reporter coverage — the count of distinct receiving organizations sending you aggregate reports — is a META-KPI: it measures whether your monitoring data itself is intact. Low reporter coverage means every other KPI on this page is potentially measured on a partial sample.

Expected reporter set

A healthy enterprise sender sees reports from at least these 10 organizations per day:

  • Google (google.com)
  • Microsoft (outlook.com)
  • Yahoo (yahoo.com / yahooinc.com)
  • Mail.ru (mail.ru)
  • La Poste (laposte.net)
  • Comcast (comcast.net)
  • AT&T (att.net)
  • Apple iCloud (apple.com)
  • Fastmail (fastmail.com)
  • Cloudflare Email Routing (cloudflare.com)

Plus reporting-as-a-service operators (Postmark, DMARC Analyzer itself when configured as a rua= target, OnDMARC, Valimail, EasyDMARC, etc.) if your rua= list delegates to them.

Diagnosing low reporter coverage

Three root causes for sudden drops:

  1. The rua= mailbox is bouncing. Check the mailbox for bounce messages, delivery quotas, or DMARC policy that rejects inbound reports (the chicken-and-egg failure where your report-receiving address itself fails DMARC). The aggregate reports page documents the rua= mailbox failure modes.
  2. The DMARC record is malformed. Receivers stop sending reports when the DMARC TXT record becomes syntactically invalid. Verify with dig +short TXT _dmarc.example.com and parse against RFC 7489 §6.3.
  3. Sending volume to that receiver collapsed. No mail means no reports. Check sender-side delivery logs for the affected receiver.

10. From aggregate-report data points to operational actions

The reporting-analysis half of this guide: every aggregate-report data point maps to one of six canonical actions. Recognising the pattern collapses minutes of dashboard navigation into seconds of muscle-memory routing.

# Data-point pattern Operational action
1 New IP, high volume, failing alignment. Investigate. Either onboard (legitimate new sender, add to SPF / enable custom-domain DKIM / inventory) or file spoofing (whois the IP, escalate to security).
2 Established IP, suddenly failing alignment. Check upstream sender for DKIM key rotation that did not propagate, SPF record change at the SaaS provider, or signing-host migration.
3 Established IP, declining authenticated volume to a single receiver. Check sender reputation at that receiver (Google Postmaster Tools, Microsoft SNDS). Likely a deliverability throttle, not a DMARC issue per se — but the visibility comes via DMARC monitoring.
4 Receiver showing 100 percent quarantine despite policy_evaluated.reason.type override. Check sender reputation at that receiver. The override is the receiver telling you it knows your policy says quarantine, but it is applying its own local policy because of reputation factors.
5 Alignment pass rate dropping below 95 percent across ALL receivers. Capture full-domain configuration (SPF / DKIM / DMARC) and diff against the pre-change baseline. Probably a configuration regression from your own infrastructure side, not a receiver-side issue.
6 Subdomain showing different alignment behaviour than the parent organizational domain. Check whether sp= or np= overrides are firing as expected (see the DMARC tags page). Most often the subdomain has different sender estate than the parent and the operator forgot to inventory it separately.

11. DMARC Analyzer dashboard integration

The 8 KPIs and 5 alert thresholds described on this page map directly to the DMARC Analyzer operational surface:

  • Authenticated volume / alignment pass rate (KPIs 1, 2, 5) — the dashboard headline cards on index.php, plus the Authentication pass-rate trend chart (added in loop 2026-05-18kf) which overlays per-day SPF + DKIM pass counts as a time series with hover and keyboard navigation. Backed by includes/DmarcParser.php.
  • Distinct sending sources / per-IP alignment (KPI 6) — the Top Source IPs panel on the dashboard plus the per-IP drill-down at source_ip_detail.php. The drill-down surfaces per-IP message volume, SPF / DKIM breakdown, reporter coverage for that IP, and the alignment evaluation — the inputs to the sender-inventory diff workflow.
  • Disposition distribution (KPI 7) — the per-record drill-down at reports_detail.php exposes every policy_evaluated.disposition value along with the reason.type override codes when present.
  • Reporter coverage (KPI 8) — the Reporters panel on the dashboard plus the per-reporter drill-down at reporter_detail.php which groups all reports from a single receiver organization.
  • Single-message diagnosis — the Email Header Analyzer (header_analyzer.php, built on includes/EmailHeaderParser.php) decodes Authentication-Results headers for individual failing messages caught via the 72-hour post-change observation window or user-reported missed mail.
  • DNS-side validation — the Domain Security Checker (domain_checker.php, built on includes/DnsChecker.php) runs live DNS queries for the SPF lookup-count audit (the Tier 3 monthly task) and the DMARC-record validation for reporter- coverage diagnosis.
  • Forensic-report ingestion — RUF samples land via upload.php through includes/ForensicReportParser.php for the Pattern E forensic-flood detection path. See the forensic reports page for the per-sample breakdown.

12. Monitoring best practices

  • Annotate every infrastructure change on the dashboard. A small marker on the alignment trend chart at the date of every SPF / DKIM / DMARC change pays off the next time an anomaly appears — the operator can immediately rule in / rule out change-related causes.
  • Maintain a canonical authorized-sender inventory artefact. The single document that the weekly source-IP diff is compared against. Per Section 7 — without the artefact, sender-inventory drift goes invisible.
  • Track per-organizational-domain KPIs, not just a global rollup. A 5-percentage-point drop in the global alignment pass rate might be 50 percentage points concentrated on one subdomain. Per-domain visibility surfaces it.
  • Run 7-day rolling averages as the primary trend. Daily values are noisy (weekends, time-of-day, campaign launches). The 7-day rolling average is the operationally-useful trend signal.
  • Set alert thresholds before enforcement. Do not wait for the first p=reject incident to discover that you have no alerting. Tune thresholds during the p=none observation phase using the established baseline.
  • Maintain a runbook per alert. When alert 1 (volume drop) fires at 3am, the on-call should not have to figure out what to do from first principles. A per-alert runbook codifies the diagnostic and remediation steps.
  • Run the weekly inventory diff on a calendar reminder. Diff-on-detection is reactive; diff-on-schedule is proactive and catches drift before it becomes a regression.
  • Reconcile rua= mailbox health monthly. The single point of failure that makes every KPI on this page disappear silently.

13. Common monitoring mistakes

  1. Treating DMARC as deploy-and-forget after reaching p=reject. The single most expensive operational mistake. Sender estates drift, infrastructure changes break authentication, attackers probe — every week brings a potential regression.
  2. Reading aggregate reports manually from email attachments. The XML format is machine-readable for a reason. Manual reading captures volume but misses alignment trends, source-IP drift, and reporter coverage. Use a parser (includes/DmarcParser.php or equivalent).
  3. Alerting only on alignment pass rate. The five-threshold set catches regressions that a single alignment-pass-rate alert would miss (reporter coverage, forensic floods, new-IP probes).
  4. Setting alert thresholds without a baseline. A "20 percent drop" threshold means nothing without a stable pre-change baseline. Capture 7-day rolling-average baselines per organizational domain BEFORE relying on deviation alerts.
  5. Ignoring reporter coverage because reports are arriving. Some reports arriving is not the same as the right reporters arriving. A drop from 10 to 2 reporters/day still satisfies "reports are arriving" but means 80 percent of your sending volume is now unmeasured.
  6. Treating new IPs as anomalies without inventory context. A new IP from a sender you onboarded last week is not an anomaly. The weekly inventory diff against an explicit authorized-sender list separates legitimate drift from unauthorized sending.
  7. Failing to diff per-domain. Global rollups hide concentrated regressions. A 100 percent failure on a low-volume subdomain might be invisible in a global alignment-pass-rate chart.
  8. Forgetting that policy_evaluated shows receiver behaviour, not your policy. Receivers apply local_policy / mailing_list / forwarded overrides that can disposition mail differently from your p= tag. The aggregate reports page walks through the reason.type override codes.
  9. Never validating the rua= mailbox is alive. The chicken-and-egg failure where your report-receiving address itself fails DMARC, bounces, or hits quota. Reporter coverage catches it eventually; monthly validation catches it sooner.
  10. Confusing aggregate-report data with deliverability data. DMARC passing does not mean inbox placement. Use Google Postmaster Tools / Microsoft SNDS for deliverability — they answer different questions. See the DMARC troubleshooting guide for the "DMARC pass but mail to spam" scenario.

14. Frequently asked questions

What is DMARC monitoring and why does it matter once enforcement is enabled?
DMARC monitoring is the ongoing operational discipline of reading aggregate (RUA) reports, tracking authentication KPIs, watching for sender-inventory drift, and detecting regressions or anomalies after a DMARC program is live. It matters because DMARC is not a deploy-and-forget control. SaaS senders rotate keys without telling you, marketing teams add new transactional providers, internal infrastructure changes break DKIM signing, and attackers probe for spoofing opportunities. Without active monitoring at p=reject, legitimate mail starts failing silently and inbox complaints arrive from users you do not yet know are affected.
What are the core DMARC KPIs every program should track?
Eight metrics define a healthy DMARC dashboard. (1) Authenticated message volume per day, the headline number. (2) Alignment pass rate, the percentage of authenticated messages that align with the From: header. (3) SPF pass rate. (4) DKIM pass rate. (5) Combined SPF + DKIM pass rate (a message can pass DMARC via either). (6) Distinct sending sources count, the inventory of IPs claiming to send as you. (7) Disposition distribution (none / quarantine / reject applied by receivers). (8) Reporter coverage, the count of receivers actively sending you reports. Every metric should be tracked per day and per organizational domain, with 7-day rolling averages to smooth weekend dips.
How often should I review DMARC aggregate reports?
A three-tier cadence works for most programs. (1) Daily review during the first 90 days of any new sender onboarding or policy ramp, looking at the previous-day authenticated volume, alignment pass rate, and any new IP sources. (2) Weekly review in steady state, focused on the 7-day rolling alignment trend, sender-inventory drift, and reporter coverage. (3) Monthly review for executive reporting, focused on disposition distribution by domain, quarterly trend changes, and any subdomain (np / sp) policy decisions pending. The DMARC Analyzer dashboard surfaces all three cadences via per-source-IP failure rates, reporter breakdowns, and 7-day moving averages.
What alert thresholds should I set for a DMARC program?
Five operationally useful alert thresholds. (1) Authenticated volume drops by more than 20 percent day-over-day, indicating an authentication or deliverability regression. (2) Alignment pass rate drops below 95 percent for an enforced domain, indicating an alignment regression. (3) A new sending IP appears with more than 100 messages in a single day from an IP not previously seen in the past 30 days, indicating an inventory drift or spoofing probe. (4) Reporter coverage drops below 5 distinct organizations per day, indicating a rua= delivery failure. (5) Forensic (RUF) report volume spikes by more than 10x, indicating a spoofing wave. Thresholds tune per program; the values above are starting points for a typical enterprise sender.
What is sender-inventory drift and how do I detect it?
Sender-inventory drift is the gradual addition of legitimate senders (a new marketing platform, a new transactional provider, a new internal tool) to your DMARC-aligned estate without those senders being registered in your SPF record or DKIM signing infrastructure. It surfaces in aggregate reports as new IP addresses claiming to send as your domain, with high message volume but failing alignment. Detection workflow: maintain an explicit inventory list of authorized senders, diff weekly against the unique-source-IP list from aggregate reports, and route each new IP to either onboarding (add to SPF and enable custom-domain DKIM) or spoofing investigation. The DMARC Analyzer dashboard surfaces this via the source-IP detail view.
How do I detect a DMARC regression after a configuration change?
A DMARC regression is when an SPF / DKIM / DMARC configuration change accidentally breaks authentication for legitimate mail. Standard mitigation is a 72-hour observation window: deploy the change, watch the next 3 days of aggregate reports for alignment pass rate dropping below the pre-change baseline, and have a rollback plan ready. Specifically: capture the 7-day pre-change alignment baseline per organizational domain, capture the same metric for each of the 3 days post-change, alert if any post-change daily value drops more than 5 percentage points below the pre-change 7-day baseline. The most common regression triggers: SPF record change (10-DNS-lookup limit exceeded by a new include), DKIM key rotation (public key not propagated), DMARC policy advancement (p=quarantine reveals previously-passing alignment failures).
What does it mean if reporter coverage drops?
Reporter coverage is the count of receivers (Google, Microsoft, Yahoo, La Poste, Mail.ru, plus reporting-as-a-service operators) actively sending you aggregate reports. A healthy enterprise sender sees 10+ distinct reporters per day. If reporter coverage suddenly drops, three causes are typical. (1) The rua= mailbox is full, bouncing, or has DMARC policy that breaks the reporting flow (a chicken-and-egg failure where your report-receiving address itself fails DMARC). (2) The DMARC TXT record is malformed and receivers stopped sending. (3) Your sending volume dropped to zero for that receiver (no messages means no reports). Diagnose by checking the rua= mailbox bounces and by inspecting the DMARC record with the Domain Security Checker.
How do I map aggregate-report data points to operational actions?
Six canonical action patterns. (1) New IP with high volume and failing alignment, action: investigate whether legitimate (onboard) or spoofing (file). (2) Established IP suddenly failing alignment, action: check upstream sender for DKIM key rotation or SPF change. (3) Established IP with declining authenticated volume, action: check sender for deliverability throttling. (4) Receiver showing 100 percent quarantine despite policy_evaluated.reason override, action: check sender reputation at that receiver. (5) Alignment pass rate dropping below 95 percent across all receivers, action: capture full-domain configuration and run pre-change baseline diff. (6) Subdomain showing different alignment behaviour than parent, action: check whether sp= or np= overrides are firing as expected.

16. Start monitoring your DMARC program now

DMARC Analyzer ingests aggregate (rua) reports via includes/DmarcParser.php and surfaces every KPI documented on this page — authenticated volume, alignment pass rate, SPF / DKIM pass rates, distinct sending sources, disposition distribution, and reporter coverage — in the dashboard (index.php). The per-source-IP drill-down (source_ip_detail.php) powers the weekly sender-inventory diff; the per-reporter drill-down (reporter_detail.php) surfaces reporter-coverage drops; the Email Header Analyzer (header_analyzer.php, built on includes/EmailHeaderParser.php) handles single-message post-change diagnosis; the Domain Security Checker (domain_checker.php, built on includes/DnsChecker.php) runs the Tier 3 monthly DNS audit. Forensic (ruf) samples land via upload.php through includes/ForensicReportParser.php for the Pattern E spoofing-flood detection path.

Check my domain configuration Sign up — Free plan