DMARC Census, August 2026
We looked up the DMARC and SPF records of 1,000,766 domains. For each one, we checked whether it publishes a policy receivers act on and whether anyone can receive its DMARC reports.
We scanned the Tranco top 1 million (list JZ8PY) and 1,321 US federal domains between 20 Aug 2026 and 21 Aug 2026. 555 of the federal domains are already in the million, so the total is 1,000,766 domains.
Most percentages on this page are out of the 1,000,296 domains whose DMARC lookup got an answer. We call these the measured domains. Where we use a different group, we say which. We left out the 470 lookups that failed after retries, because a failed lookup can't show whether a record exists.
Jump to key findings, tiers, rank, countries, TLDs, reports that go nowhere, SPF, the federal cohort, collectors, methodology or the data.
Key findings
- Of the top 1,000 domains in the August 2026 scan, 72.1% publish a valid DMARC record and 55.8% are in the enforced tier. Across ranks 100,000 to 1,000,000, those shares are 45.7% and 19.4%.
- 427 of the domains with a usable SPF record in the August 2026 scan end it with +all. That lets any host on the internet send as them.
- Of 1,321 registered US federal .gov domains, 79.2% publish p=reject in the August 2026 scan and 198 publish no DMARC record. That list is wider than the mail-sending executive-branch set that Binding Operational Directive 18-01 has held to p=reject since October 2018, so the gap isn't a count of agencies breaking the directive.
The quality tiers
We put each domain in one tier, based on whether receivers act on its policy and whether anyone can receive its DMARC reports.
| Tier | Domains | Share |
|---|---|---|
| No record | 525,752 | 52.6% |
| Broken | 5,129 | 0.5% |
| Dead reporting | 128,980 | 12.9% |
| Monitoring | 105,464 | 10.5% |
| Partial enforcement | 27,320 | 2.7% |
| Enforced | 207,651 | 20.8% |
- No record 525,752 domains (52.6%) No DMARC record at the _dmarc name.
- Broken 5,129 domains (0.5%) A record exists and receivers ignore it: more than one record, a bad v= tag, or no usable p=.
- Dead reporting 128,980 domains (12.9%) p=none, and no rua destination that can receive a report.
- Monitoring 105,464 domains (10.5%) p=none, with at least one rua destination that can receive a report, or one the scan could not rule out.
- Partial enforcement 27,320 domains (2.7%) quarantine or reject, weakened by pct below 100 or a softer sp=.
- Enforced 207,651 domains (20.8%) quarantine or reject, with no pct or sp tag weakening it.
Two tags weaken a policy without changing it. pct= applies the policy to only that share of failing mail, and sp= sets a separate, often softer, policy for subdomains.
5,129 domains publish a broken record that receivers can't use, including 4,477 with more than one DMARC record. RFC 7489 tells receivers to treat that as no record at all, so we don't count broken records as valid.
Of the 469,415 valid records, 49.9% set p=none, 24.9% set p=quarantine and 25.2% set p=reject.
47.4% of measured domains publish something at the _dmarc name, but that count mixes every tier, broken records included. 207,651 domains (20.8%) reach the enforced tier. 525,752 (52.6%) publish no record. Most of the rest publish p=none, with 128,980 in the dead tier and 105,464 in monitoring.
Among domains at quarantine or reject, 10,318 apply the policy to only part of their failing mail with pct below 100, and 18,596 leave subdomains weaker than the organizational domain. Some domains do both, so the two figures add up to more than the 27,320 domains in the partial-enforcement tier.
Percentages are out of the 1,000,296 domains whose DMARC lookup got an answer. We left out the 470 domains whose lookup failed after retries, because a failed lookup can't show whether a record exists.
Valid records and enforcement by rank
The top 1,000 domains publish and enforce at far higher rates than the rest of the million, so don't quote their percentages for the whole list. Both bars are percentages of the domains in that rank range whose DMARC lookup got an answer.
| Rank range | Measured | Valid DMARC | Enforced tier |
|---|---|---|---|
| Top 1k | 1,000 | 72.1% | 55.8% |
| 1k to 10k | 8,998 | 66.0% | 43.8% |
| 10k to 100k | 89,924 | 57.0% | 31.5% |
| 100k to 1M | 899,608 | 45.7% | 19.4% |
Fewer domains publish a record the further down the list you go, and the enforced share falls faster than the valid-record share.
The rank ranges cover the Tranco million only. The 766 federal domains outside the million count toward the overall percentages but not toward any rank range.
Adoption by country
The map shades each country by the percentage of measured domains under its ccTLD that publish a valid DMARC record. Hover over a country to see its numbers.
- under 30%
- 30 to 39%
- 40 to 49%
- 50 to 59%
- 60% and up
- under 200 domains
| Country | ccTLD | Measured | Valid DMARC | At enforcement |
|---|---|---|---|---|
| Norway | .no | 1,790 | 78.4% | 49.7% |
| Denmark | .dk | 2,288 | 74.6% | 52.8% |
| Saudi Arabia | .sa | 554 | 72.9% | 55.6% |
| Anguilla | .ai | 3,564 | 72.6% | 40.5% |
| Australia | .au | 8,418 | 72.4% | 40.8% |
| Estonia | .ee | 732 | 72.4% | 43.9% |
| Ireland | .ie | 1,464 | 70.8% | 36.6% |
| Slovenia | .si | 763 | 70.5% | 33.7% |
| Luxembourg | .lu | 261 | 70.5% | 48.7% |
| New Zealand | .nz | 1,727 | 70.1% | 37.8% |
| Bolivia | .bo | 200 | 70.0% | 51.5% |
| Croatia | .hr | 1,098 | 69.9% | 29.1% |
| Tanzania | .tz | 216 | 69.9% | 42.1% |
| Romania | .ro | 3,984 | 69.6% | 29.6% |
| Belgium | .be | 3,301 | 68.8% | 39.0% |
| Singapore | .sg | 891 | 68.4% | 45.8% |
| Portugal | .pt | 2,023 | 68.3% | 37.9% |
| Uruguay | .uy | 487 | 68.2% | 34.7% |
| Paraguay | .py | 307 | 68.1% | 43.6% |
| Lithuania | .lt | 1,059 | 67.6% | 31.4% |
| Argentina | .ar | 3,230 | 67.0% | 25.5% |
| Israel | .il | 1,671 | 66.8% | 22.6% |
| Algeria | .dz | 217 | 66.8% | 46.1% |
| Slovakia | .sk | 1,820 | 66.6% | 30.1% |
| Greece | .gr | 3,518 | 66.5% | 26.3% |
| Ecuador | .ec | 551 | 66.4% | 45.2% |
| United Arab Emirates | .ae | 728 | 66.3% | 40.5% |
| Sweden | .se | 3,484 | 66.1% | 36.5% |
| Poland | .pl | 9,006 | 65.6% | 33.4% |
| Finland | .fi | 2,221 | 65.5% | 28.9% |
| Chile | .cl | 2,588 | 65.1% | 34.1% |
| Switzerland | .ch | 3,785 | 65.0% | 37.6% |
| Bulgaria | .bg | 1,191 | 64.7% | 30.9% |
| Spain | .es | 5,409 | 64.7% | 34.5% |
| Bosnia and Herzegovina | .ba | 314 | 64.3% | 37.3% |
| South Africa | .za | 2,804 | 64.2% | 34.8% |
| Italy | .it | 10,344 | 63.9% | 23.2% |
| France | .fr | 10,705 | 63.5% | 29.4% |
| Czechia | .cz | 4,920 | 63.0% | 26.6% |
| Austria | .at | 2,985 | 62.9% | 31.7% |
| Moldova | .md | 400 | 62.7% | 33.0% |
| Costa Rica | .cr | 222 | 62.6% | 44.6% |
| Guatemala | .gt | 233 | 62.2% | 39.5% |
| Latvia | .lv | 846 | 61.9% | 39.7% |
| Brazil | .br | 16,992 | 61.7% | 26.9% |
| Venezuela | .ve | 245 | 61.6% | 42.0% |
| Turkey | .tr | 3,083 | 61.5% | 36.0% |
| Hungary | .hu | 2,976 | 61.1% | 21.8% |
| Canada | .ca | 6,236 | 60.9% | 32.4% |
| Dominican Republic | .do | 275 | 60.0% | 33.1% |
| Germany | .de | 27,159 | 59.7% | 30.6% |
| Peru | .pe | 1,201 | 59.0% | 32.7% |
| Bangladesh | .bd | 659 | 58.9% | 38.1% |
| Hong Kong | .hk | 883 | 57.9% | 35.3% |
| Serbia | .rs | 1,039 | 57.5% | 22.5% |
| North Macedonia | .mk | 283 | 57.2% | 27.6% |
| Malaysia | .my | 1,629 | 57.0% | 36.2% |
| Japan | .jp | 16,967 | 56.4% | 12.7% |
| Kenya | .ke | 523 | 56.2% | 27.2% |
| Armenia | .am | 352 | 55.7% | 38.1% |
| Mexico | .mx | 3,358 | 55.3% | 29.6% |
| Iceland | .is | 448 | 54.7% | 28.8% |
| Indonesia | .id | 4,761 | 54.5% | 25.8% |
| Egypt | .eg | 324 | 54.3% | 34.3% |
| Thailand | .th | 981 | 53.3% | 28.1% |
| European Union | .eu | 5,897 | 53.2% | 27.6% |
| Niue | .nu | 280 | 52.9% | 25.4% |
| British Indian Ocean Territory | .io | 10,113 | 52.4% | 30.7% |
| Philippines | .ph | 1,359 | 51.9% | 27.8% |
| Micronesia | .fm | 335 | 51.9% | 21.8% |
| Nigeria | .ng | 670 | 51.9% | 17.5% |
| Colombia | .co | 7,113 | 51.5% | 27.7% |
| Morocco | .ma | 547 | 50.1% | 23.6% |
| Pakistan | .pk | 1,660 | 49.7% | 17.5% |
| Guernsey | .gg | 766 | 48.8% | 24.2% |
| Georgia | .ge | 446 | 48.7% | 23.5% |
| India | .in | 12,070 | 48.6% | 25.2% |
| Belarus | .by | 1,279 | 48.3% | 26.3% |
| Kyrgyzstan | .kg | 262 | 48.1% | 31.7% |
| Uzbekistan | .uz | 646 | 47.5% | 27.6% |
| Ukraine | .ua | 4,768 | 46.1% | 20.4% |
| Sri Lanka | .lk | 507 | 44.0% | 18.1% |
| Nepal | .np | 260 | 43.8% | 25.8% |
| Taiwan | .tw | 2,784 | 43.7% | 20.1% |
| United Kingdom | .uk | 27,738 | 42.4% | 22.8% |
| Azerbaijan | .az | 544 | 41.9% | 28.3% |
| Saint Helena | .sh | 274 | 40.5% | 25.5% |
| Russia | .ru | 37,713 | 38.7% | 20.3% |
| Tunisia | .tn | 309 | 38.2% | 17.2% |
| Kazakhstan | .kz | 1,506 | 37.8% | 21.0% |
| Iran | .ir | 3,223 | 37.2% | 20.6% |
| Netherlands | .nl | 18,896 | 36.6% | 20.0% |
| Tuvalu | .tv | 2,715 | 35.8% | 17.1% |
| Vietnam | .vn | 2,731 | 34.3% | 17.4% |
| Isle of Man | .im | 266 | 33.8% | 20.7% |
| Montenegro | .me | 2,911 | 33.3% | 17.2% |
| Soviet Union | .su | 1,035 | 30.8% | 15.2% |
| United States | .us | 4,114 | 30.7% | 19.7% |
| Samoa | .ws | 374 | 29.4% | 19.5% |
| Laos | .la | 201 | 28.4% | 15.4% |
| Tonga | .to | 856 | 26.2% | 12.5% |
| South Korea | .kr | 4,616 | 23.3% | 4.7% |
| Sao Tome and Principe | .st | 251 | 21.5% | 13.5% |
| Palau | .pw | 302 | 18.5% | 9.6% |
| China | .cn | 10,881 | 15.1% | 8.2% |
| Cocos Islands | .cc | 4,630 | 15.0% | 9.0% |
106 countries have at least 200 measured domains under their ccTLD in this snapshot, and 89 of them are shaded on the map. Norway is highest, with 78.4% of measured .no domains publishing a valid DMARC record. .cn is lowest, at 15.1%.
A domain counts toward a country by its TLD alone. Every .de domain counts as Germany, wherever it's hosted or owned. Domains on gTLDs like .com have no country in their name, so they're left off the map. The TLD table below covers them. ccTLDs registered mostly from outside their country, .io, .ai, .co, .tv and .me among them, are measured and listed in the table but not shaded, because shading them would color the wrong country. Countries with fewer than 200 measured domains stay uncolored. A few too small to draw at this size, Singapore and Hong Kong among them, are marked with a dot in the same colors.
Adoption by TLD
The same measurement grouped by TLD, so it includes generic TLDs like .com that the map can't show. Every TLD with at least 1,000 measured domains, biggest first.
| TLD | Measured | Valid DMARC | At enforcement |
|---|---|---|---|
| .com | 428,071 | 47.6% | 23.7% |
| .net | 48,955 | 35.9% | 18.6% |
| .org | 38,845 | 54.7% | 26.7% |
| .ru | 37,220 | 39.0% | 20.5% |
| .uk | 27,738 | 42.4% | 22.8% |
| .de | 27,159 | 59.7% | 30.6% |
| .nl | 18,896 | 36.6% | 20.0% |
| .br | 16,992 | 61.7% | 26.9% |
| .jp | 16,967 | 56.4% | 12.7% |
| .in | 12,070 | 48.6% | 25.2% |
| .cn | 10,881 | 15.1% | 8.2% |
| .fr | 10,705 | 63.5% | 29.4% |
| .it | 10,344 | 63.9% | 23.2% |
| .io | 10,113 | 52.4% | 30.7% |
| .pl | 9,006 | 65.6% | 33.4% |
| .au | 8,418 | 72.4% | 40.8% |
| .co | 7,113 | 51.5% | 27.7% |
| .xyz | 6,827 | 10.8% | 5.1% |
| .ca | 6,236 | 60.9% | 32.4% |
| .eu | 5,897 | 53.2% | 27.6% |
| .info | 5,419 | 30.8% | 15.0% |
| .es | 5,409 | 64.7% | 34.5% |
| .top | 5,173 | 5.5% | 2.9% |
| .cz | 4,920 | 63.0% | 26.6% |
| .shop | 4,869 | 38.4% | 3.7% |
.com is the largest registry in the snapshot at 428,071 measured domains, 47.6% of them publishing a valid DMARC record. 61 further TLDs clear the 1,000-domain bar and aren't listed here. The full set is in the published aggregates.
Domains are grouped by the last label of their name, so .co.uk is grouped under .uk. All percentages are based on the domains whose DMARC lookup got an answer, which matches the rest of this report.
Reports that go nowhere
The rua tag on a DMARC record holds the addresses receivers send aggregate reports to. A record with a rua on it looks like monitoring. Whether anything can arrive depends on a second record, and the destination has to publish that one.
128,980 domains publish a p=none DMARC record whose reporting address is missing, dead, or not authorized by its owner. That's 12.9% of measured domains and 27.5% of every valid record in the scan. We call it monitoring theater. The record passes a presence scan as adoption, but receivers that follow the standard send the domain no reports.
The scan reads DNS, so it can see whether a destination can receive a report. It can't see whether anyone reads one. The monitoring tier means a report can arrive. It doesn't mean anyone reads it.
When a rua address sits on another organization's domain, RFC 7489 requires an authorization TXT record at <domain>._report._dmarc.<rua-host>. A receiver that finds no DMARC version tag there must not send the report, and it raises no error to the domain that named the address. 34,506 domains in this scan name at least one outside address whose owner hadn't authorized them when we scanned. Receivers that run this check send nothing to that address. Some of those domains also name another address, on their own domain or with authorization, and receivers can still send reports there.
29,782 domains name only outside addresses without authorization. They're the domains in the unauthorized group with no other address to fall back on. Neither group covers the whole dead tier, because a p=none record with no rua tag is dead too. It gives receivers nowhere to send a report.
192,507 domains name at least one outside reporting address. 143 of them name at least one address the scan could not resolve to a verdict, which counts as neither authorized nor dead. A domain is counted once in each category it has an address in, so the categories overlap. At least 2,066 domains name more than one kind, which is why the counts sum past the total.
SPF
DMARC passes on SPF or DKIM alignment. When receivers can't evaluate a domain's SPF record, its mail can pass DMARC only on DKIM.
639,844 of the 1,000,296 measured domains publish an SPF record. 36,735 of those records (5.7%) return permerror, which means receivers refuse to evaluate the record at all. 16,591 exceed the ten-lookup limit and 10,474 publish more than one record. The scan also flags an include that points at a name with no SPF record, and an include or redirect loop. It doesn't check for other syntax errors, so the true permerror count can only be higher.
How the records end
| Ending | Domains | Share |
|---|---|---|
| -all (fail) | 236,546 | 39.2% |
| ~all (softfail) | 332,221 | 55.1% |
| ?all (neutral) | 15,856 | 2.6% |
| +all (pass everything) | 427 | 0.1% |
| no all mechanism | 18,059 | 3.0% |
Percentages are out of the 603,109 domains with a usable SPF record. Records that already permerror are left out, because receivers never reach their final mechanism.
US federal .gov domains
This is every registered federal .gov zone in CISA's public registry, across the executive, legislative and judicial branches. CISA's Binding Operational Directive 18-01 required executive-branch domains that send mail to reach p=reject by October 2018. This list is wider than that, and its parked and redirect names have no mail to protect, so its reject share is not a compliance rate.
| Tier | Domains | Share |
|---|---|---|
| No record | 198 | 15.0% |
| Broken | 6 | 0.5% |
| Dead reporting | 25 | 1.9% |
| Monitoring | 20 | 1.5% |
| Partial enforcement | 9 | 0.7% |
| Enforced | 1,063 | 80.5% |
The enforced count, 1,063, sits above the reject count, 1,046, because 26 quarantine domains join the tier and 9 weakened domains leave it.
The federal reject share is 79.2% (1,046 domains). Across the whole scan it's 11.8% (118,165 domains), and that figure already includes this cohort. 198 federal domains (15.0%) publish no DMARC record, and 25 publish a dead one. Some of those are parked names that send no mail. The registry doesn't say which.
1,321 domains in the cohort. 79.2% publish p=reject and 81.2% publish quarantine or reject.
Who is named to receive the reports
The rua tag lists where a domain wants its reports sent, so counting rua hosts shows which platforms domains pick to receive them. A rua entry doesn't prove a report arrives, and these counts aren't the platforms' customer numbers. The largest named collector is Cloudflare, on 27,809 domains, then Brevo at 15,817 and Valimail at 14,379.
A p=none domain moves from the dead tier to monitoring once it has a working rua address. With a free collector, an operator can get a first report without signing a contract. Cloudflare, the largest collector in the scan, includes collection with the domain. Postmark's free DMARC Digests is the sixth largest collector.
Each bar counts the domains whose rua list includes a destination on that platform, once per domain. A domain naming two platforms counts for both.
140,950 matches across 27 platforms. The largest destination matching no platform in the list is axa.com, named by 3,904 domains.
MTA-STS, TLS-RPT and BIMI
Far fewer domains publish these three records than publish DMARC.
Out of the 1,000,296 measured domains, 1.0% publish MTA-STS, 1.1% TLS-RPT and 1.7% BIMI.
Methodology
| Population | Tranco list JZ8PY, 1,000,000 domains, plus the cohort frames below. We scanned 1,000,766 domains in total. Tranco builds the list from the Crux, Farsight, Majestic, Radar and Umbrella rankings over the 30 days before the list date, combined with the Dowdall rule. Reference: Victor Le Pochat, Tom Van Goethem, Samaneh Tajalizadehkhoob, Maciej KorczyĆski and Wouter Joosen, "Tranco: A Research-Oriented Top Sites Ranking Hardened Against Manipulation", NDSS 2019, doi:10.14722/ndss.2019.23386. |
|---|---|
| Frames | tranco:
1,000,000 domains from https://tranco-list.eu/list/JZ8PY cohort:us-federal-gov: 1,321 domains from research/cohorts/us-federal-gov.csv 555 cohort domains also rank in the Tranco million and were scanned once, which is why the frames add up to more than the number of domains scanned. |
| Collection window | 2026-08-20T07:24:24.037Z to 2026-08-21T08:47:10.620Z. Aggregated 2026-09-03T16:20:11.913Z. |
| Resolver | Queries went to unbound:5353, with retries against 1.1.1.1, 8.8.8.8. |
| Error rate | 470 DMARC lookups failed after retries, which is 0.05% of the domains scanned. We left those domains out of every percentage on this page. |
| Public Suffix List | Whether a reporting address is external is decided by comparing organizational domains against the Public Suffix List fetched 2026-08-19T18:23:44.687Z, sha256 780c7961bd74b9ee. The list is pinned per snapshot so a re-run classifies destinations the same way. The list is used with its private section, so two customers of one platform that publishes a private rule count as external to each other, and a report address on a sibling tenant needs its own authorization record. |
| Multiple records | More than one v=DMARC1 record at _dmarc is invalid per RFC 7489. This scan scores those 4,477 domains as broken. |
| Vendor classification | Each rua destination is classified by the host that receives the mail, so a platform reselling another platform's collection counts under the receiving host. Hosts we don't recognize stay unmatched. We don't guess. |
| Absence versus failure | NXDOMAIN or an empty TXT answer is absence. A timeout or SERVFAIL after retries is unknown. Failures are never counted as absence. |
| Independent comparison | The adoption tracker at dmarcdkim.com/dmarc-adoption updates daily. It covers 1.35 million domains it has collected over time. When we checked it in August 2026 it reported 11.4% at full reject, where this scan finds 11.8% (118,165 domains) at p=reject. This scan's count includes 1,858 rejects weakened by pct and 7,758 with a weaker sp, which the tier framework scores as partial. The two measurements agree closely on policy rates. Their adoption headlines are not directly comparable, because the tracker measures an accumulated set of domains and this scan measures one pinned Tranco snapshot. We haven't compared the two populations. |
| Scanner | Version a551ef2-dirty. |
Limitations
The scan reads what domains publish in DNS. Nothing here is a delivered-mail pass rate or an actual rejection.
A domain whose reporting address couldn't be resolved to a verdict counts as neither authorized nor dead. At p=none that puts it in monitoring, so the true dead-reporting count can only be higher.
- This edition covers one scan window, so it reports a level and not a trend.
- Some DNS lookups fail even after retries. 470 ended in error and are excluded rather than scored as no DMARC. If those lookups had succeeded, any count on this page could have moved by up to that many domains.
- We checked rua authorization at scan time only. If a destination's owner added or removed an authorization after the scan, this snapshot doesn't show it.
- So far the only named cohort is the 1,321 US federal domains. Other planned cohorts aren't in this edition.
- We haven't matched every rua host to a platform yet. As we add more, some unmatched destinations will move into named platforms.
The data
- aggregates.json: every count and percentage on this page, as published. Dates, list ids and the scanner version are in the manifest next to it.
- Data repository: the per-snapshot files.
- Hugging Face dataset: the same files for every edition, with the headline counts as one CSV.
Citing and reusing the data
We publish the aggregate data under CC BY 4.0. Reuse it, including commercially, with attribution. Suggested citation: