BounceCheckBounceCheck
    • Features
      Bulk Email Verification
      Verify thousands of emails at once
    • Tools
      Disposable Email Checker
      Detect throwaway email domains
      Disposable Providers
      Temp-mail services & the domains they use
      Email Extractor
      Extract emails from any text or file
      DNS Health Checker
      Check MX, SPF, DMARC, DKIM & blacklists
      SPF Record Generator
      Build a valid SPF record for your domain
      DMARC Record Generator
      Build a DMARC policy to stop spoofing
    • Pricing
    • Compare
    • Blog
    • Docs
    Sign inStart Free
    Back to The Field Guide
    § Email Deliverability

    DMARC Aggregate Report: How to Read RUA Reports

    BounceCheck TeamBounceCheck Team
    July 23, 2026
    5 min read
    Diagram showing how a DMARC aggregate report flows from a mailbox provider back to the domain owner

    A DMARC aggregate report is an XML file that mailbox providers like Gmail, Yahoo, and Microsoft send back to you, summarizing every message that used your domain in the From address over a set window (usually a single day). It tells you which sending sources passed or failed SPF and DKIM, whether those results aligned with your domain, and what the receiver did with the mail. Read correctly, it is the single best source of truth for who is sending email as your brand, including senders you never authorized.

    The reports arrive at whatever address you put in the rua= tag of your DMARC record, which is why they are often called RUA reports. This guide breaks down what is inside one, how to read the raw XML field by field, why almost everyone runs the data through a DMARC monitoring service instead of reading it by hand, and what actions the data should drive.

    What is a DMARC aggregate report?

    DMARC (Domain-based Message Authentication, Reporting, and Conformance) does two things: it tells receivers how to handle mail that fails authentication, and it asks them to report back on what they saw. The aggregate report is the reporting half. Each participating receiver batches up every message claiming to come from your domain, groups those messages by sending IP and authentication outcome, and sends you one XML summary per reporting period.

    An aggregate report contains counts and results, never message content. It will tell you that 4,812 messages came from a given IP, that they passed DKIM but failed SPF alignment, and that your policy told the receiver to quarantine them. It will not show you subject lines, recipients, or the body of any message. That privacy-safe design is what lets providers send these reports at scale, and it is the reason the format is consistent enough to parse. The structure is defined by the DMARC specification published at dmarc.org, so every provider's report follows the same schema.

    What is inside a DMARC aggregate report

    Open a raw report and you will find three logical blocks wrapped in a single <feedback> element: metadata about the report itself, the DMARC policy you had published when the report was generated, and one record per sending source. The record rows are where the value is.

    Example of a raw DMARC aggregate report XML file showing the report metadata and policy published sections

    Here is what each part of the XML holds:

    XML blockKey fieldsWhat it tells you
    report_metadataorg_name, email, report_id, date_rangeWhich receiver sent the report and the exact time window it covers
    policy_publisheddomain, adkim, aspf, p, sp, pctThe DMARC policy the receiver read from your DNS at report time
    record > rowsource_ip, count, policy_evaluated (disposition, dkim, spf)How many messages came from each IP and what the receiver did with them
    record > identifiersheader_fromThe visible From domain those messages used
    record > auth_resultsspf (domain, result), dkim (domain, result)The raw SPF and DKIM outcome for each source, before alignment

    The distinction between auth_results and policy_evaluated trips up most first-time readers. The auth_results block shows whether SPF and DKIM passed on their own. The policy_evaluated block shows whether those passes aligned with the From domain, which is what DMARC actually judges. A message can pass SPF against the sender's own domain yet still fail DMARC because that domain does not match your From address.

    How to read a DMARC aggregate report

    To read a DMARC aggregate report, work through it in the same order every time: identify the reporting provider and time window in report_metadata, confirm the policy_published block matches your published DNS, review each record row by sending IP and volume, then investigate any row where authentication failed. Reading one report by hand at least once is worth doing so the fields stop being abstract.

    Raw XML record rows in a DMARC aggregate report showing source IP, SPF and DKIM results, and the evaluated disposition

    Identify the reporter and the window

    Start in report_metadata. The org_name tells you who generated the report (google.com, Yahoo, Enterprise Outlook, and so on), and the date_range gives you the start and end timestamps in Unix epoch seconds. Convert those to a date so you know which day's traffic you are looking at. Reports from different providers cover the same day but arrive separately, so you will process several files for any given date.

    Check the policy the receiver saw

    Move to policy_published and confirm it matches what you intended. If you set p=quarantine but the report shows p=none, your DNS change had not propagated when the report was generated. This block also shows your alignment modes (adkim and aspf, relaxed or strict) and the pct value controlling how much mail your policy applies to.

    Review each sending source

    Every record is one sending IP. Read the source_ip, look up who owns it, and match it against your known senders: your ESP, your CRM, your helpdesk, your own mail server. The count shows the message volume. This is where authorized infrastructure and unauthorized senders both surface in plain sight, which is the whole point of turning reporting on. Getting SPF and DKIM configured correctly across every legitimate source is the foundation of SPF, DKIM, and DMARC authentication, and the report is how you confirm that work landed.

    Investigate the failures

    For any row where policy_evaluated shows dkim and spf as fail, cross-check the auth_results. If SPF passed there but failed in policy_evaluated, you have an alignment problem, not an authentication problem. If both failed outright, either the source is misconfigured or it is not yours. A legitimate source that consistently fails needs its SPF record or DKIM signing fixed; an unknown source sending real volume is a spoofing or shadow-IT signal worth chasing down.

    Aggregate (RUA) vs forensic (RUF) reports

    DMARC defines two report types, and the rua= and ruf= tags request them separately. Aggregate (RUA) reports are the daily statistical summaries described above. Forensic (RUF), sometimes called failure reports, are near-real-time samples of individual messages that failed authentication, with content redacted for privacy.

    AttributeAggregate (RUA)Forensic (RUF)
    DMARC tagrua=ruf=
    ContentCounts and results, grouped by sourceRedacted samples of individual failed messages
    FrequencyTypically once per dayNear real time, as failures occur
    FormatGzipped XMLAFRF (email forensic format)
    Provider supportBroad (Gmail, Yahoo, Microsoft, others)Rare, most major providers do not send it
    Best forOngoing visibility and moving to enforcementDebugging a specific failure sample

    In practice, aggregate reports do almost all of the work. Most mailbox providers stopped sending forensic reports over privacy concerns, so a monitoring setup built entirely on RUA data is normal and sufficient for reaching enforcement.

    Why you need a DMARC monitoring service or report analyzer

    You need a DMARC monitoring service because the daily volume and raw XML format of aggregate reports make manual reading impractical for any real domain. You can read one report by hand. You cannot read a hundred. A domain of any size receives separate XML files every day from every participating receiver, each gzipped, each covering a different slice of traffic. Reading them manually means unzipping files, parsing nested XML, resolving IP addresses to sender names, and reconciling the same source across dozens of reports. That workload is exactly why teams route the rua= address to a DMARC monitoring service instead of a mailbox.

    DMARC monitoring service dashboard converting raw XML aggregate reports into a human-readable insights view

    A DMARC report analyzer ingests every incoming report, parses the XML, and aggregates the data into a dashboard where each sending source is named, grouped, and charted over time. That turns a pile of machine-readable files into a view a human can act on. Just as important is what raw reports leave out. On their own, aggregate reports do not give you:

    • Trend analysis across days or weeks, since each file is a single-day snapshot
    • IP or sender reputation context beyond the bare source address
    • Message samples or any content that would help debug a specific failure
    • Automatic identification of which vendor owns a given sending IP

    An analyzer fills those gaps by stitching reports together and enriching the source data, which is the difference between knowing a report exists and understanding what it means. Standalone analyzers and all-in-one platforms make different tradeoffs, a decision that sits alongside the rest of your email deliverability tools. Bulk senders in particular have little choice here, because the Gmail and Yahoo bulk sender requirements make a published DMARC record mandatory, and monitoring is how you verify it is actually protecting the domain.

    What to do with aggregate report data

    The report is a means, not an end. The goal is a domain where only authorized senders pass DMARC and everything else is rejected. The data drives three moves: spotting and shutting down unauthorized senders, fixing SPF and DKIM alignment on sources you own, and moving safely from p=none to enforcement.

    DMARC analyzer view showing SPF and DKIM alignment results per sending source

    Spot and shut down unauthorized senders

    Any source in your reports that you cannot account for is a lead. It might be a legitimate internal tool nobody told you about, or it might be a spammer spoofing your domain. Trace each unknown IP, and either bring the legitimate ones under proper authentication or confirm the rest are being caught by your policy.

    Fix SPF and DKIM alignment

    When a source you own is failing, the report points at the cause. An SPF failure usually means the sending IP is not listed in your SPF record; add it. A DKIM failure means the source is not signing, or is signing with a key that does not match your published DNS record. Because DMARC requires alignment, the passing domain must also match your From domain, so a shared ESP sending domain that passes SPF for itself can still fail your DMARC until you configure a custom authentication domain. Alignment fixes are also one of the levers in a broader effort to improve email deliverability, since authenticated mail is treated more favorably by receivers.

    Move from p=none to enforcement safely

    Most domains start at p=none, which monitors without affecting delivery. Once your reports show every legitimate source passing DMARC with alignment, tighten the policy in stages: move to p=quarantine, watch the reports for any authorized sender that starts failing, then move to p=reject. Using the pct tag to apply the policy to a fraction of mail first lets you ramp without risking a mass of legitimate messages. Enforcement is only safe once the aggregate data confirms you will not block your own mail.

    FAQs

    How often are DMARC aggregate reports sent?

    Most mailbox providers send one aggregate report per domain per day, covering a 24-hour window. The DMARC record can request a different interval, but daily is the near-universal default, so expect a steady stream of separate files from each participating receiver.

    Why am I not receiving DMARC aggregate reports?

    The usual causes are a missing or malformed rua= tag in your DMARC record, a typo in the reporting address, or requesting reports at a domain you do not control without the required external authorization record. Confirm your DMARC TXT record is published correctly and that the rua= mailbox or service address actually exists and accepts mail.

    What is the difference between RUA and RUF reports?

    RUA reports are daily aggregate summaries of authentication results grouped by sending source, with no message content. RUF reports are individual forensic samples of failed messages, sent near real time with content redacted. RUA is broadly supported and does most of the work; RUF is rarely sent by major providers today.

    What does a DMARC report analyzer do?

    A DMARC report analyzer collects every incoming XML aggregate report, parses it, and consolidates the data into a dashboard that names each sending source, tracks pass and fail rates over time, and flags unauthorized senders. It turns raw, single-day XML files into a trend view a person can act on.

    How do I fix SPF and DKIM alignment from aggregate reports?

    Find the failing source in the report, then check whether the SPF or DKIM domain matches your From domain. For SPF, add the sending IP to your SPF record and, where needed, use a custom sending domain so the passing domain aligns. For DKIM, enable signing on the source with a key whose selector matches your published DNS record. Re-check the next day's reports to confirm the source now passes with alignment.

    Authentication protects your domain from abuse, but it does not clean the list you are sending to. Run your list through BounceCheck before your next send so invalid addresses never get the chance to drag down the sender reputation your DMARC setup works to protect.

    BounceCheck Team

    BounceCheck Team

    The team behind BounceCheck - helping businesses verify emails and improve deliverability.

    • What is a DMARC aggregate report?
    • What is inside a DMARC aggregate report
    • How to read a DMARC aggregate report
    • Identify the reporter and the window
    • Check the policy the receiver saw
    • Review each sending source
    • Investigate the failures
    • Aggregate (RUA) vs forensic (RUF) reports
    • Why you need a DMARC monitoring service or report analyzer
    • What to do with aggregate report data
    • Spot and shut down unauthorized senders
    • Fix SPF and DKIM alignment
    • Move from p=none to enforcement safely
    • FAQs
    • How often are DMARC aggregate reports sent?
    • Why am I not receiving DMARC aggregate reports?
    • What is the difference between RUA and RUF reports?
    • What does a DMARC report analyzer do?
    • How do I fix SPF and DKIM alignment from aggregate reports?

    More Articles

    Explore guides on email deliverability, verification, and sender reputation.

    Browse All Articles

    § KEEP READING

    You might also like.

    Google Postmaster Tools Deliverability Analysis, Explained
    § Email DeliverabilityAug 20, 2026· 5 min read

    Google Postmaster Tools Deliverability Analysis, Explained

    Your domain can pass every compliance check and still get throttled by Gmail. Here's the dashboard that tells you why, error by error.

    By BounceCheck TeamRead →
    13 Best Bulk Email Verification and Validation Services
    § Guides & TutorialsAug 17, 2026· 24 min read

    13 Best Bulk Email Verification and Validation Services

    Compare the 13 best bulk email verification services of 2026. Detailed reviews covering accuracy, pricing, integrations, and features to help you choose the right tool.

    By BounceCheck TeamRead →
    10 Best DeBounce Alternatives for Email Verification (2026)Featured
    § Guides & TutorialsAug 17, 2026· 17 min read

    10 Best DeBounce Alternatives for Email Verification (2026)

    Looking for a DeBounce alternative? Compare 10 top email verification tools by accuracy, pricing, features, and integrations to find the best fit for your needs.

    By BounceCheck TeamRead →

    § COLOPHON

    Email verification, made simple. Built for teams who care about clean data and clean code.

    § STATUS

    All systems operational
    BounceCheckBounceCheck

    Real-time email verification with a stealth SMTP engine. Built for deliverability obsessives.

    § PRODUCT

    • Features
    • Bulk Email Verification
    • Single Verify
    • Real-Time API
    • Integrations

    § TOOLS

    • Email Extractor
    • Disposable Email Checker
    • DNS Health Checker
    • SPF Record Generator
    • DMARC Record Generator

    § RESOURCES

    • Docs
    • Blog
    • Compare
    • Security
    • Pricing

    § COMPANY

    • About
    • Contact
    • Privacy
    • Terms

    © 2026 BounceCheck — All rights reserved.

    GDPRCCPAENCRYPTEDPRIVATE