Email Security Grading Rubric

How we calculate the A–F grade on /tools/email-checker. Published in full so you can audit, argue with, and replicate our scoring.

Base score

Every domain starts at 100. We subtract points for issues found in each of seven categories.

Letter grade thresholds

Score Grade Label
≥ 90AExcellent
80 – 89BGood
60 – 79CFair
40 – 59DPoor
< 40FCritical

Deduction categories

SPF (max −30)

DMARC (max −30)

DKIM (max −20)

MX (max −20)

MTA-STS — RFC 8461 (max −8)

TLS-RPT — RFC 8460 (max −2)

Note: we verify the TLS-RPT record syntax only. We do not ingest TLS-RPT reports on behalf of customers.

BIMI (max −3)

BIMI also requires DMARC p=quarantine or p=reject. If you publish BIMI with DMARC p=none, receivers will not render the logo — we surface that as a BIMI-category deduction.

Why these weights?

SPF, DKIM, DMARC and MX get the heaviest weights because they determine whether mail is accepted at all and whether spoofing is blocked. MTA-STS and TLS-RPT are newer transport-security signals with lower enforcement today — we deduct, but not as aggressively. BIMI is brand-signalling, so absence is neutral; breakage is penalised because it signals a half-finished rollout.

The letter-grade thresholds are deliberately forgiving at the top (A = ≥90) so that a domain with perfect SPF/DKIM/DMARC/MX but missing MTA-STS still grades A. This keeps backward compatibility with scans produced before MTA-STS/TLS-RPT/BIMI were added to the rubric.

Suggestions or disagreements?

If you think a weight is off, email [email protected] with the domain and the weighting you'd expect — we publish this rubric precisely so people can argue with it.