How they work
You register your sending domain or IPs with a receiver's feedback loop programme. When a recipient at that receiver marks your message as spam, the receiver sends you a report — traditionally an ARF-format email containing the original message — and you remove that address from your lists. Yahoo, Microsoft, Comcast and most large ISPs run one. Gmail does not: it reports an aggregate spam rate through Postmaster Tools and never identifies the complainer.
Why the rate is what matters
Receivers do not count complaints, they compute a rate: complaints divided by mail delivered to the inbox. Gmail's published ceiling is 0.30% with 0.10% as the target. Because the denominator is inbox deliveries, a low-volume domain can breach the ceiling with a single complaint on a slow day. That is why cold email fleets with many small domains are so sensitive to list quality — there is no volume to dilute a mistake.
What to do with the data
Suppress every complaining address immediately and permanently. Then look at what the complaints have in common — a list source, a segment, a template — because a cluster of complaints is a list problem, not a copy problem. Feedback loop data is also the fastest early warning available: a rising complaint rate shows up a day or two before placement drops, which is enough time to pause a campaign.
Which receivers offer one, and how
Yahoo runs the Complaint Feedback Loop, which sends you a copy of every message a Yahoo or AOL user marks as spam, keyed by your DKIM signing domain. Microsoft runs the Junk Mail Reporting Program (JMRP) for Outlook.com and Hotmail, keyed by sending IP, alongside SNDS, which shows complaint and trap-hit data per IP. Both are free and take a few days to approve. Comcast, Cox, and a handful of other ISPs run their own.
Gmail does not run a traditional feedback loop and never sends you the complaining address. What it offers instead is Postmaster Tools, which shows the spam rate per domain as a percentage, plus the Feedback-ID header: add Feedback-ID: campaign:customer:type:sender to each message and Postmaster Tools reports spam rate broken down by those identifiers. That is enough to tell which campaign or which client is generating complaints, even without the individual addresses.
Complaint rate maths on a cold email fleet
Gmail's published limits are a spam rate under 0.3% at all times and ideally under 0.1%, measured per domain from Postmaster Tools. On a cold email domain those thresholds are close: an inbox sending 25 messages a day across three inboxes is 75 a day, 525 a week, and 0.3% of that is one and a half complaints. Two people hitting the spam button in a week on one domain is enough to cross the line. This is why per-inbox volume stays low, why lists are verified before every campaign, and why a one-click unsubscribe — which gives an irritated recipient something to press that is not the spam button — matters even when the header is not strictly required.
Read the rate per domain, not per campaign. A campaign spread across twenty domains can average 0.1% while two of the twenty are at 0.5% and sliding into junk. The reputation risk calculator takes daily volume and complaint counts and shows how close each domain is to the threshold.
Setting it up on a fleet
Register every sending domain in Postmaster Tools — it is a DNS verification per domain, and the email DNS setup tool can include the verification record in the set it generates. Enrol the fleet's DKIM domains in Yahoo's CFL. Add a Feedback-ID header through the sending tool if it supports custom headers, with at least the client and campaign in it. Point every loop at one mailbox that something reads: a complaint that arrives and is not suppressed is worse than no loop, because you were told and did nothing.
Then treat a complaint as a per-address, permanent suppression across every campaign and every client, and treat the second complaint from the same list source in a week as a signal to stop and look at the list. The spam trap page covers the other way a bad list announces itself.
Check yours
These run free in your browser. Nothing you type reaches a server.
Common questions
How do I enrol in feedback loops?
Each receiver has its own form: Yahoo's Complaint Feedback Loop, Microsoft's SNDS and JMRP, and similar programmes at the large ISPs. Gmail has no per-message loop; use Postmaster Tools for the aggregate rate.
What complaint rate is safe?
Under 0.10% at Gmail and similar elsewhere. Rates above 0.30% trigger throttling and rejections. Well-run cold email fleets sit below 0.05%.
Why does Gmail not tell me who complained?
Privacy. Google reports the rate per domain in Postmaster Tools but never identifies individual users. You manage the rate through list quality rather than by suppressing individuals.
Does Gmail have a feedback loop?
Not in the traditional sense — Gmail never returns the complaining address. It gives you two things instead: the spam rate per domain in Postmaster Tools, and the Feedback-ID header, which breaks that rate down by campaign, client or any identifier you put in the header. Between them you can find which stream is generating complaints without knowing who complained.
What complaint rate is safe for cold email?
Under 0.1% per domain, per Gmail's own guidance, with 0.3% as the hard line where placement is affected. On a cold email domain sending a few hundred messages a week that is one complaint. Keep per-inbox volume low, verify every list before it is loaded, and make unsubscribing easier than reporting spam — those three things are what keep a cold domain under the line.
Related concepts
If this is the thing going wrong
The pages explain it. If you would rather it was simply fixed, that is the work I do.