DMARC pct= Tag: Percentage (pct)

The DMARC pct tag applies your policy to only a percentage of failing messages. Removed in RFC 9989 (DMARCbis). Use the t= testing mode tag for staged rollouts instead.

Published · Last verified · Maintained by TamingDNS

Importance
Optional
Tag
pct=
Default
100
Example
pct=100
⚠️ Removed in DMARCbis (RFC 9989, May 2026). Percentage-based sampling produced inconsistent receiver behaviour. For staged rollouts use the new t=y testing-mode tag instead. More on DMARCbis →

✅ Valid Values

0-100 (integer)

💬 What This Tag Does

The "pct" tag applies your DMARC policy to only the specified percentage of messages that fail DMARC checks. For example, "pct=25" with "p=quarantine" means only 25% of failing messages are quarantined; the rest are treated as if the policy were "none". This was designed for gradual DMARC rollout, but RFC 9989 (DMARCbis) formally removes pct= from the specification in favour of the new t= testing mode tag. Existing records with pct= will continue to function at receivers that support it, but new records should use t=y for staged testing instead.

📋 Complete Example Records

Every one of these is a complete record you can paste as it stands. Each goes in a TXT record at _dmarc.yourdomain.com. Check yours with the DMARC Checker or assemble one in the DMARC Builder.

v=DMARC1; p=quarantine; sp=reject; pct=100; rua=mailto:dmarc@github.com; ruf=mailto:dmarc@github.com; fo=1

GitHub's published record. Large domains still carry pct=100, which is the default and changes nothing either way.

v=DMARC1; p=quarantine; pct=25; rua=mailto:dmarc-feedback@example.com

That is the old staged rollout: quarantine a quarter of failing mail and treat the rest as p=none. Receivers applied fractions like this inconsistently, which is why the tag was dropped.

v=DMARC1; p=quarantine; t=y; rua=mailto:dmarc-feedback@example.com

The RFC 9989 replacement for the record above. Testing mode drops the applied policy one level for everything instead of sampling a percentage.

v=DMARC1; p=reject; rua=mailto:dmarc-feedback@example.com

This is where a finished rollout lands. Once you are enforcing on all mail there is nothing for a sampling tag to do.

🛡️ Related Tools

Analyse your current DMARC record, build a new one, or read the aggregate reports that tell you whether the policy is safe to tighten.

DMARC Analyser → DMARC Builder → DMARC Report Viewer → SPF Checker →
← All DMARC tags