Deliverability & Infra

Feedback Loops And Complaint Rates Explained

The Mythic Intel Team · May 27, 2025 · 6 min read

A feedback loop is the channel through which a mailbox provider tells you that one of its users marked your message as spam. When a recipient hits the spam button, providers that run a traditional feedback loop forward you a copy of that complaint, formatted as an Abuse Reporting Format (ARF) message defined in RFC 5965, so you can find and suppress the complaining address. The complaint rate this produces is the single most sacred number in deliverability, because providers read it as a direct verdict from their own users: too many people are telling us they did not want this.

Acting on feedback loop reports is non-negotiable list hygiene. A recipient who clicked spam is telling you, through the provider, to stop. If you keep sending, the next complaint counts again, the rate climbs, and inbox placement collapses for your entire stream. The discipline is mechanical: subscribe to every feedback loop you can, parse the ARF report, pull the complaining address, and suppress it immediately.

What an ARF report actually is

ARF, also called MARF (Messaging Abuse Reporting Format), is a structured, machine-readable format for one mail operator to report abuse to another. RFC 5965 defines it as a multipart/report MIME message with report-type="feedback-report" containing three parts:

  1. A human-readable explanation of the report.
  2. A machine-readable message/feedback-report part with structured fields.
  3. The original reported message (or its headers), so you can identify the recipient and the send.

The structured middle part is what you parse:

Content-Type: message/feedback-report

Feedback-Type: abuse
User-Agent: SomeProvider-FBL/1.0
Version: 1
Original-Mail-From: <[email protected]>
Arrival-Date: Mon, 02 Mar 2026 14:22:01 +0000
Reported-Domain: example.com
Source-IP: 203.0.113.10

Feedback-Type: abuse is the complaint. Original-Mail-From and the attached original message let you map the report back to the exact recipient and campaign so you can suppress that address and attribute the complaint.

How to subscribe, and why Gmail is different

Many large providers run traditional ARF feedback loops you register for. Microsoft (Outlook, Hotmail) runs the SNDS/JMRP program. Yahoo and a long tail of providers (Comcast, Cox, Mail.Ru, La Poste, Fastmail, and others) offer their own. You typically register your sending IPs or domains, prove you control them, and the provider then mails ARF reports to an address you nominate.

Gmail is the important exception. Gmail does not run a traditional per-message ARF feedback loop. Instead it offers two things:

  • Postmaster Tools, an aggregate dashboard showing your domain and IP reputation, spam rate, and authentication results for mail to gmail.com.
  • A campaign-level feedback loop keyed on a header you add yourself, the Feedback-ID.

To get any Gmail FBL data, you add a Feedback-ID header to outgoing mail. It is up to four colon-separated identifiers ending in a mandatory sender identifier of 5 to 15 characters that stays consistent across your stream:

Feedback-ID: campaign-spring:list-42:marketing:acme123

The first three fields are optional and yours to use (campaign, list, mail type). The final field is your stable sender ID. Gmail then reports complaint rates per identifier in Postmaster Tools so you can see which campaigns draw unusual complaints. Critically, do not put anything unique-per-message in there (no message IDs), or the aggregation breaks. Gmail's data is aggregate and covers only gmail.com recipients; it never hands you an individual complainer's address the way a traditional ARF loop does.

The complaint rate is sacred

The number that matters is the spam complaint rate: complaints divided by messages delivered, per provider. The widely cited thresholds:

  • Above 0.1 percent is a warning sign. You are drawing more complaints than a healthy sender and should investigate.
  • At or above 0.3 percent you should expect filtering, spam-foldering, or outright blocking. Google's and Yahoo's 2024 bulk-sender requirements name 0.3 percent as the line to stay under, and 0.1 percent as the level to aim for.

These are user verdicts, not algorithmic guesses, which is why providers weight them so heavily. A 0.3 percent rate sounds tiny until you send a million messages and that is three thousand people actively telling the provider they did not want your mail.

Acting on the reports

The processing loop is the same everywhere:

on FBL/ARF report received:
    parse the message/feedback-report part
    extract the original recipient (from the attached original message)
    add that address to the global suppression list immediately
    attribute the complaint to its campaign (via Feedback-ID or X-headers)
    increment the complaint counter for rate monitoring

Two operational rules make the difference. First, suppress on the very first complaint; never wait for a second. A complainer who keeps receiving mail is a guaranteed repeat complaint and a reputation tax you are paying for nothing. Second, embed identifiers in every send (a Feedback-ID for Gmail, custom X- headers or VERP return paths for ARF loops) so a complaint is traceable to a specific list and campaign, which is how you find and fix the source rather than just bailing water.

A practical detail: route your FBL inbox separately from your bounce inbox and process it in real time, not in a weekly batch. A complaint you suppress on Tuesday but mail again on Wednesday is worse than useless.

Saying it out loud

In an interview: "A feedback loop is how a mailbox provider reports a user's spam-button click back to me, in ARF format per RFC 5965, which is a multipart/report carrying a message/feedback-report and the original message so I can pull the complainer and suppress them on the first complaint. I subscribe to every traditional FBL I can (Microsoft JMRP, Yahoo, and the long tail) and for Gmail I add a Feedback-ID header, since Gmail gives aggregate complaint rates in Postmaster Tools rather than per-message ARF reports. The number I protect is the complaint rate: under 0.1 percent is the target and 0.3 percent is the ceiling Google and Yahoo set, because it is a direct verdict from their users. So I suppress complainers immediately and tag every send so I can trace a complaint to its campaign." That answer shows you treat the complaint rate as the controlling reputation signal and the feedback loop as the instrument that protects it.

your turn

Stop reading about interviews. Start training for yours.