What is a pct= tag?

Still have a question, spotted an error, or have a better explanation or a source we should cite?

The pct= tag in a DMARC record controls what percentage of failing messages your policy actually applies to. The default is 100, meaning all messages that fail DMARC get the full policy treatment. If you set it lower, only that percentage of failing messages get quarantined or rejected.

For example: v=DMARC1; p=reject; pct=25 means that 25% of DMARC-failing messages get rejected, and the other 75% get delivered as if the policy were p=none. Which 25%? The receiving server picks randomly.

When is pct= useful? It was originally designed as a way to roll out enforcement gradually: start at pct=25, watch for problems, increase to 50, then 75, then 100. The idea is a softer landing when moving from quarantine to reject.

Why most senders skip it: In practice, pct= is less commonly used now than it once was. The cleaner approach is to stay at p=none long enough to confirm all your legitimate sending sources are passing DMARC, then move to quarantine or reject at 100% once you're confident. Using pct= to "test the waters" at reject can create inconsistent results that are hard to interpret in your reports.

If you do want to use pct=, note that it only applies to quarantine and reject policies. At p=none, it has no effect (nothing is being enforced anyway).

The gradual rollout approach that works better for most senders: use the p=none monitoring phase properly first, fix any alignment failures, then move straight to reject at 100%. Check your aggregate reports throughout to catch problems before they become delivery issues.

Contributors

Who worked on this answer

Every name links to their profile. Every company links to their site. Real people, real accountability.

Ask an AI · tailored to your setup

Get advice on the best p=reject rollout approach for your domain.

I read this on the Email Almanac about the DMARC pct= tag. My current DMARC record is: paste your record. I'm trying to [describe: roll out reject gradually / understand what pct= in my existing record means / decide whether to use pct= as part of my p=reject rollout]. What I want to understand: [describe e.g., "whether I should use pct= or just move straight to p=reject at 100%" or "what happens to the messages that pct= excludes from enforcement"].

Edit the yellow boxes, then send to the AI of your choice.