Spam score: the number that decides where your email lands
Spam score is a number a spam filter assigns to each incoming message. It reflects how many signals point toward spam. The higher the number, the more likely the message goes to the spam folder or gets rejected outright by the receiving server.
How spam score is calculated
Every filter has its own formula, but the logic is the same: a message passes through a set of checks, each one adding or subtracting points. The total is compared against a threshold. Cross it, and the message is treated as spam.
SpamAssassin, the most widely deployed open-source filter, uses a default threshold of 5.0. A score of 2.3 gets through without issue. A score of 7.8 goes straight to spam. Some server admins lower the threshold to 3.0 or raise it to 8.0 depending on their tolerance for false positives.
What raises the score
The factors fall into three buckets: content, technical setup, and reputation.
Content. Trigger words and phrases ("free", "earn money", "click now"), all-caps subject lines, HTML with suspicious elements (hidden text, invisible links), no plain-text version, or a message built entirely from one image with no text at all.
Technical setup. Missing SPF record, invalid DKIM signature, no DMARC policy, a From address that does not match the actual sending domain, or no List-Unsubscribe header. Since February 2024, Google and Yahoo both require authentication and a working unsubscribe mechanism for bulk senders.
Reputation. A sending IP on Spamhaus, Barracuda, or another blocklist, a low-reputation domain, or a history of spam complaints. This does not always feed directly into the score number, but it shapes the provider's final routing decision.
What lowers the score
Some checks work in your favor, pulling the number down:
- A valid DKIM signature removes between 0.1 and 1.0 points depending on the filter.
- A correctly published SPF record that passes alignment.
- A DMARC policy set to
rejectorquarantine. - Clean, valid HTML with a plain-text alternative.
- A proper List-Unsubscribe header with one-click support.
- A physical sender address in the footer (required under CAN-SPAM).
Gmail and Outlook do not use SpamAssassin
Both run their own machine-learning systems. You will not see a numeric score — the provider makes a binary call: inbox or spam. But the same weighted logic runs underneath; it is just not exposed to the outside.
Gmail adds one more variable: engagement. If recipients regularly open your messages and never mark them as spam, Google factors that in for the sender. Content triggers matter less when engagement is strong. The reverse is also true: a technically clean message can still land in spam if recipients have been ignoring it for months.
How to check your spam score before sending
Send a test message to a checking service: mail-tester.com, GlockApps, or Litmus. These tools run the message through SpamAssassin and other filters, then show you the final score and the exact rules that fired. You can see which elements pushed the number up and fix them before the real send.
Worth running each time you substantially change your template, add new links, or switch to a different sending domain or IP address.
Spam score and list quality
The score technically measures message content, not your contact list. But the two are connected. Sending to a dirty list — invalid addresses, spam traps, long-inactive subscribers — generates bounces and complaints. Providers lower your sender reputation, and filters start scoring your content more harshly. The same template that scored 2.4 last quarter might score 5.1 today if your sending history has deteriorated.
uChecker validates your list before you send: it removes invalid addresses, spam traps, and risky contacts. Fewer bounces, fewer complaints, better reputation — and a lower spam score on every message you send.
