Glossary · Complaint rate

Complaint rate

Spam complaints divided by messages delivered. It damages reputation fast, so segment by engagement and suppress non-openers first.

Definition

A high complaint rate damages reputation quickly. Segment by engagement, make unsubscribe easy, and suppress non-openers before adding volume.

A high complaint rate damages reputation quickly. Segment by engagement, make unsubscribe easy, and suppress non-openers before adding volume.

All glossary terms
A small brass pressure gauge with a red needle near the upper mark.

The short version

  • Complaint rate is spam complaints divided by delivered mail, counted per mailbox provider and per reporting window, never as one blended annual number.
  • Gmail asks bulk senders to stay under 0.10% and treats 0.30% or above as a guidelines breach; Yahoo publishes 0.30% as its line; Microsoft reports its own rate through SNDS.
  • The numerator only counts recipients who press report spam. Unsubscribes, deletions, ignored mail and low opens do not raise it, which is why a campaign can look healthy and still be throttled.
  • A feedback loop is infrastructure, not a report: the complaint has to reach your suppression table inside minutes, or the next campaign mails the same person again.
  • Complaint rate is a leading indicator of reputation loss and a lagging indicator of list quality. Fix the list, the frequency and the unsubscribe path rather than the subject line.
  • Indian programmes usually undercount because they blend providers, use a shared IP, and never enrol in the feedback loops that Indian mailbox providers do operate.

The definition, stated precisely enough to compute

Complaint rate is the number of spam complaints recorded by mailbox providers divided by the number of messages delivered, expressed as a percentage over a stated interval. Every word in that sentence carries weight. Complaints, not unsubscribes. Delivered, not sent. A stated interval, not a rolling average that hides a bad week. When two teams disagree about whether a campaign was fine, they are almost always using different numerators or different denominators rather than disagreeing about the outcome.

The interval matters because complaint rate is a rate over a window, and mailbox providers evaluate it on their own schedule. Gmail looks at a rolling window in Postmaster Tools and also at short spikes around a single large send. A campaign of 400,000 messages that produces 1,400 complaints in ninety minutes can trigger throttling even if the thirty-day average is comfortably under the line. Reporting the monthly average to your own leadership while the provider is reacting to the hourly figure is a common way to be surprised.

Flow showing a campaign moving through delivery, inbox placement, a report spam click and the feedback loop back to suppression. 1 Send 2 Delivered 3 Inbox or spam 4 Report spam 5 Suppress
Figure 1. The complaint path: acceptance, placement, a single click, and the loop that must close before the next send.

For an Indian sender the denominator needs one more clarification. Delivered means accepted by the receiving server after the SMTP conversation, not delivered to the inbox tab. Mail that lands in spam and is then reported is counted as delivered for this metric, because the recipient did receive it and did complain. Mail that was rejected at the gateway never appears in the denominator and never produces a complaint, which is why a hard-blocking provider can make your rate look artificially good.

Where the numerator actually comes from

A complaint begins as a recipient pressing report spam in a mail client. The client tells its provider, the provider records the event against the sending domain and IP, and, if the sender is enrolled in a feedback loop, the provider returns an ARF report, the Abuse Reporting Format defined in RFC 5965, to an address the sender registered. That report contains the original message headers or the full message, which is how you map the complaint back to a campaign, a list and a contact.

Not every provider offers a classic feedback loop. Gmail does not run a traditional FBL for bulk senders; instead it exposes spam rate, feedback loop id and reputation in Postmaster Tools, aggregate and per-domain, without per-recipient detail. Yahoo runs a Complaint Feedback Loop with per-message reports. Microsoft exposes complaint rates and trap hits through SNDS and JMRP. Indian mailbox providers vary: some return ARF, some only publish postmaster dashboards, and several offer nothing at all, which is why an Indian programme that relies entirely on FBL reports is measuring a minority of its audience.

Diagram of complaint sources feeding a normalisation layer, a suppression writer and a reporting store. Sources ARF reports Postmaster SNDS Support Ingest Parse Dedupe Map campaign Verify Act Suppress now Tag contact Alert owner Hold send Record Per provider Per stream Per day Per campaign
Figure 2. Several providers, several formats, one normalisation step before anything is written to suppression.

The practical consequence is that the numerator is always an undercount. A complaint rate of 0.04% measured from ARF reports might correspond to a true rate two or three times higher once Gmail’s dashboard and the providers with no loop are included. Treat the FBL number as a floor and the provider dashboards as the authoritative figure for the audience that matters most, which in India is usually Gmail.

The thresholds that change what happens to your mail

The numbers that matter are published, not secret, and they are lower than most teams expect. Gmail’s sender guidelines ask bulk senders to keep the spam rate below 0.10% in Postmaster Tools and state that 0.30% or higher is a violation of the guidelines. Yahoo’s best practice guidance uses 0.30% as its ceiling. Microsoft does not publish a single threshold but shows complaint rates in SNDS and applies reputation filtering well before a formal breach, so a rate that looks harmless on a dashboard can already be costing placement.

Those figures are ceilings, not targets. A sender sustaining 0.08% is technically inside Gmail’s guidance and is still losing inbox share, because complaint rate is one input into a reputation model that also weighs engagement, authentication and sending consistency. The teams that hold placement at scale run closer to 0.02% to 0.05% on marketing streams and near zero on transactional streams, and they watch the trend rather than the absolute value.

Chart comparing illustrative complaint rates for healthy, watch, warning and breach bands against provider thresholds. Healthy marketing 0.03% Watch 0.08% Gmail guidance 0.1% Yahoo ceiling 0.3% Incident range 0.6%
Figure 3. Illustrative bands against the published lines: 0.10% is the guidance ceiling, 0.30% is a breach at Gmail and Yahoo.

Thresholds also differ by stream. A password reset that generates a complaint is alarming because the recipient asked for it minutes earlier; a weekly newsletter at the same rate is unremarkable. Blending transactional and marketing complaints into one number hides both signals. Report them separately, with separate suppression behaviour, and treat any complaint on a transactional message as a data quality defect rather than a marketing problem.

Provider dashboards are not the only signal. Spam trap hits, unknown user rates and authentication failures all move before complaint rate does, and a programme that watches only complaints sees the problem late. Watch the leading indicators weekly and the complaint rate daily during a campaign. The combination gives you a warning system rather than a post-mortem, which is the difference between pausing a send and explaining one.

Complaint rate is not bounce rate, unsubscribe rate or placement

Four numbers get conflated in weekly reviews and they answer different questions. Bounce rate measures addresses that could not accept mail, so it is a list hygiene metric. Unsubscribe rate measures people who used the mechanism you provided, which means it is partly a measure of how visible that mechanism is. Inbox placement measures where delivered mail landed. Complaint rate measures how many people were annoyed enough to punish the sender, and it is the only one of the four that directly feeds reputation at every large provider.

The relationships between them are instructive. A high unsubscribe rate with a low complaint rate suggests the preference centre works and people are leaving politely. A low unsubscribe rate with a rising complaint rate usually means the unsubscribe link is hidden, broken or requires a login, so people press report spam instead. A falling open rate with a stable complaint rate is the calm phase before a list-quality problem becomes visible, because disengaged recipients have not yet been mailed enough to complain.

Comparison of four email metrics: complaint rate, bounce rate, unsubscribe rate and inbox placement. Reputation signals List signals • Complaint rate• Spam trap hits• Unknown user rate• Auth failures • Hard bounce rate• Unsubscribe rate• Open decay• Inactive share
Figure 4. Each metric has a different denominator and a different owner inside the team.

Placement and complaint rate interact in a loop that is easy to misread. Poor placement puts more mail in the spam folder, where the report spam button is the most prominent control, so placement problems manufacture complaints. Those complaints then depress reputation and worsen placement. Breaking that loop requires cutting volume to the unengaged segment rather than adding more mail to compensate for the lost reach.

Why Indian programmes routinely undercount

Three patterns explain most of the gap. The first is blending. A team sends from four subdomains through two platforms to Gmail, Outlook, Yahoo and three Indian providers, then averages everything into one monthly figure. The average is dominated by whichever audience is largest, so a serious Gmail problem disappears inside a benign overall number. Complaint rate has to be segmented by provider, by stream and by domain before it means anything.

The second is shared infrastructure. A shared IP pool borrows reputation from every other sender on it, and complaint data returned through a shared feedback loop may not be attributable to your campaign at all. Teams on shared pools therefore stop trusting the number and stop looking at it. A dedicated IP with its own loop is not automatically better, but it makes the metric yours, which is a precondition for managing it.

Map of the provider and stream combinations that need separate complaint rate reporting. Gmail marketing 0.10% ceiling Gmail lifecycle Separate stream Outlook / SNDS Reputation data Yahoo FBL reports Indian ISPs Thin data Transactional Near zero
Figure 5. Six cells, not one number: the segmentation that makes the metric actionable.

The third is that Indian sending is often treated as one activity when it is at least three. Transactional mail from the product, lifecycle mail from marketing automation and bulk campaigns from a scheduler have different volume profiles, different engagement and different complaint tolerance. A festival campaign that triples daily volume will move the blended rate for a week. Unless the campaign is measured on its own denominator, the post-mortem will blame the wrong thing.

Currency of data is another source of error. A dashboard that refreshes nightly will show a campaign in progress as clean, because complaints arrive over the following forty-eight hours. Campaign reviews held the morning after a send routinely conclude that nothing went wrong. Read the campaign at day three, not day one, and compare it with the same segment’s previous send rather than with the monthly average.

Building a loop that closes in minutes, not weeks

A feedback loop is only useful if the round trip from click to suppression is shorter than the gap between campaigns. Register the abuse address, parse ARF reports into a normalised record with the original recipient, the campaign identifier and the timestamp, write the address to a global suppression table, and make every sending path consult that table at send time rather than at list-build time. The last clause is where most implementations fail: a suppression applied to a segment that was materialised yesterday does not stop today’s send.

Deduplicate aggressively. The same complaint can arrive twice, once through ARF and once through a provider dashboard export, and a contact can complain about two campaigns in a day. Suppression should be idempotent and keyed on the address or contact identifier, with the reason recorded so an operator can tell a complaint apart from an unsubscribe or a hard bounce. Keep the campaign link, because the pattern of complaints across campaigns is what tells you whether the problem is frequency, relevance or list source.

Decision diagram for handling a complaint report: suppress immediately, investigate source, or pause the campaign. What does a complaint trigger? decision Single report Suppress at once Rate above band Pause and inspect Repeat source Retire the list
Figure 6. Three responses to one report; only the first is automatic, the other two need a named owner.

Alert on rate, not only on count. A fixed alert at fifty complaints a day is silent during a 400,000 message send and noisy during a quiet month. Alert when the rolling one-hour complaint rate for a provider crosses a fraction of that provider’s published line, and route the alert to a person who can pause the send. The ability to pause mid-campaign is the control that turns a bad afternoon into a bad hour.

Reading the number honestly when volumes are small

At low volume the metric is statistically unstable and leaders overreact to it. Twenty thousand delivered messages and six complaints is 0.03%, but the confidence interval around that estimate is wide enough that a single additional complaint moves it materially. Reporting three decimal places on a sample that small implies precision that does not exist. Report the count and the denominator alongside the rate, and use a rolling multi-week window before drawing a conclusion.

The same caution applies to campaign-level comparisons. A campaign to 3,000 highly engaged customers and a campaign to 300,000 mixed contacts cannot be ranked by complaint rate alone, because the denominators differ by two orders of magnitude and the audiences differ in intent. Compare like with like: same segment definition, same frequency, same provider mix. Otherwise the small, warm campaign always looks better and teaches the wrong lesson.

Chart of illustrative weekly complaint counts and rates showing how a small denominator distorts the rate. Week 1 21 bp Week 2 34 bp Week 3 96 bp Week 4 58 bp Week 5 41 bp
Figure 7. Illustrative weeks: the rate swings with volume, so the count and the denominator have to travel together.

There is a temptation to smooth the number until it stops moving, and it should be resisted. The value of complaint rate is that it responds to a bad send within hours. A thirty-day moving average is useful for a board slide and useless as an operational control. Keep both: the hourly figure for the on-call engineer, the weekly trend for the marketing lead, and the quarterly comparison for whoever decides how much list to buy.

Segment size is the other trap. A campaign to 4,000 contacts that produces four complaints reads as 0.10%, a number that would be alarming at scale and is statistically meaningless here. Before reacting, ask whether the denominator could distinguish a real change from noise. If it cannot, hold the conclusion, extend the window and look at the count and the list source instead. Reacting to noise teaches the organisation to distrust the metric.

Structural fixes that work better than copy changes

The highest-leverage fix is list quality, and it is unglamorous. Remove addresses that have not opened or clicked in twelve months, or move them to a low-frequency re-permission stream. Buying lists, appending phone numbers and importing event badge scans are the three most reliable ways to raise complaint rate in an Indian B2B programme, because the recipients never asked for the mail and the report button is one click away.

The second is frequency discipline. Most complaint spikes are caused by sending the same person more mail than they expected when they opted in, not by a single offensive message. A frequency cap per contact per week, applied across campaigns rather than inside one tool, prevents the situation where three teams each send a reasonable amount and the recipient receives nine messages. Cross-channel caps matter too: a WhatsApp message, an SMS and two emails in one day is a frequency problem even though each channel stayed within its own limit.

Anatomy of a preference centre with frequency, topic, channel and full opt-out controls. LoopNow runtime Frequency Weekly or monthly Topics Per interest, not all Channels Email, SMS, What… Opt out One click, no login
Figure 8. Four controls that turn a complaint into a preference change; the full opt-out must be as prominent as the rest.

The third is making the exit easy. One-click unsubscribe through the List-Unsubscribe and List-Unsubscribe-Post headers, honoured within two days as the bulk sender rules require, a preference centre that offers frequency reduction as well as removal, and a confirmation page that does not ask for a login. Every step you add between annoyance and exit converts a polite unsubscribe into a complaint. The counter-intuitive result is that a visible, working unsubscribe path lowers complaint rate while raising unsubscribe rate, and that trade is almost always worth taking.

Sunset policy is the fourth fix and the least popular. Define a period after which a non-engaged contact stops receiving marketing unless they re-confirm, and enforce it in the send path rather than in a quarterly clean-up. The list gets smaller and the rate improves, which looks like a loss in a report that counts contacts and a gain in every report that counts revenue per message. Publish both numbers so the trade is visible.

Common mistakes, and the review that catches them

The most common mistake is measuring complaints against sent rather than delivered. It inflates the denominator with bounces and rejections, so the rate looks better than the provider’s own figure and the discrepancy is discovered during an incident. The second is measuring annually. A single festival campaign can define the year, and a twelve-month average will hide it until the following year’s campaign repeats the damage.

The third is treating suppression as a marketing preference rather than a safety control. If a complaint does not block every stream, including transactional, the recipient will receive more mail from the same brand after complaining, which is precisely the behaviour that escalates a report into a block. The fourth is ignoring the provider dashboards because the FBL data feels more concrete. Gmail’s Postmaster Tools and Microsoft’s SNDS are the closest thing to the provider’s own view, and they update faster than an internal aggregation job.

Wireframe of a monthly complaint review screen showing rate by provider, top campaigns and suppression status. Rate by provider Worst campaigns Suppression check Unsubscribe test
Figure 9. The review screen: rate by provider, worst campaigns per thousand, and a suppression confirmation.

A monthly review that catches all of this is short. Compare this month’s rate by provider and stream against the previous three months, list the campaigns that contributed most complaints per thousand delivered, check that every complaint from last month is suppressed, and confirm the unsubscribe path still works from a real inbox on a real phone. Fifteen minutes, four questions, and the number stops being a surprise.

Alert fatigue is the fifth. A channel that fires on every complaint trains the team to ignore it, and the one alert that mattered is lost in the noise. Route single complaints to suppression only, aggregate complaints to a daily digest, and reserve the paging alert for a rate that crosses a fraction of the provider’s published line during an active send. Three tiers, three audiences, one on-call rota.

A worked example with real arithmetic

A Pune software company sends 480,000 marketing messages in a month across Gmail, Outlook, Yahoo and two Indian providers. The month records 1,600 complaints, which is 0.33% of delivered mail and above Gmail’s breach line, even though the internal dashboard reported 0.28% because it used sent as the denominator. The first action is not a copy rewrite; it is to split the number by provider, and the split is revealing. Gmail accounts for 62% of delivered volume and 81% of complaints.

Segmenting those Gmail complaints by campaign shows that 71% came from one source: a purchased list of 38,000 contacts imported for a webinar. Removing that list from the denominator leaves 1,600 minus roughly 920 complaints over 442,000 delivered, or about 0.15%, still above guidance but no longer an emergency. The second largest contributor is a weekly newsletter sent to the full database, including contacts with no opens in fourteen months.

Timeline of a complaint rate remediation over five weeks, from segmentation to a stable rate. Day 1 Split rate by provider Fix the denominator first Day 2 Pause the worst campaign Stop the bleeding Week 1 Delete the purchased list Remove from all tools Week 2 Enable one-click unsubscribe Test from a real inbox Week 4 Move to engaged-only sends Re-permission the rest
Figure 10. Five weeks from discovery to a stable rate; the volume reduction is the point, not a side effect.

The remediation has three parts. The purchased list is deleted and the import vendor is dropped. The newsletter moves to engaged contacts only, with a re-permission stream for the rest at one message a month. One-click unsubscribe is enabled and tested, and every complaint from the previous quarter is written to a global suppression table that all three sending tools read at send time. Four weeks later the Gmail rate is 0.05%, delivered volume is down 9% and revenue from email is up, because the mail is reaching people who still read it.

Frequently asked questions

What is a good complaint rate?

For marketing mail, sustained 0.02% to 0.05% is healthy and 0.10% is the ceiling Gmail publishes for bulk senders. Gmail treats 0.30% or above as a guidelines breach and Yahoo uses the same figure. Transactional streams should sit near zero, because a complaint on a message the recipient requested is a signal of a data or targeting defect rather than a content problem.

Is complaint rate calculated on sent or delivered mail?

Delivered. The denominator is messages the receiving server accepted, including those that landed in the spam folder. Using sent inflates the denominator with bounces and rejections and makes your number look better than the provider’s own figure. When your rate and Postmaster Tools disagree, check the denominator before you check anything else.

Do unsubscribes count as complaints?

No. An unsubscribe is a request to stop, recorded through your own mechanism, and it is a good outcome compared with a complaint. A complaint is a recipient telling their provider that the mail is unwanted, which damages reputation at the domain and IP level. A rising unsubscribe rate with a low complaint rate usually means your preference centre is working.

Does Gmail provide a feedback loop with per-recipient reports?

Gmail does not run a traditional per-recipient feedback loop for bulk senders. It exposes spam rate, domain reputation and feedback loop identifiers in Postmaster Tools, at aggregate level. Yahoo provides per-message complaint reports, and Microsoft provides complaint and trap data through SNDS and JMRP. Plan for a mixture of aggregate dashboards and per-message reports rather than one uniform feed.

How fast should a complaint suppress the contact?

Before the next send, which in practice means within minutes. Write the address to a global suppression table as soon as the report is parsed, and make every sending path query that table at send time. Applying suppression to a segment built the previous day does not prevent the next campaign from mailing the same person and generating a second complaint.

Why did our complaint rate spike during a festival campaign?

Usually three things at once: volume increased, frequency increased, and the audience was widened to include low-engagement contacts who had not heard from you in months. The recipients who complain are rarely the ones who bought. Cap frequency across campaigns, keep festive sends to engaged segments, and measure the campaign on its own denominator rather than blending it into the monthly average.

Does one-click unsubscribe reduce complaints?

Yes, consistently. The List-Unsubscribe and List-Unsubscribe-Post headers let the mailbox provider offer an unsubscribe control next to the report spam button, and bulk sender rules require it to be honoured within two days. Every additional step between annoyance and exit, such as a login or a preference survey, pushes more people toward the report button instead.

How do spam traps affect the complaint rate?

They do not appear in the complaint rate at all, which is the problem. A spam trap address never complains; it just marks your mail as unwanted at the provider. A programme can hold a respectable complaint rate while hitting traps from a stale or purchased list. Track trap hits in SNDS and Postmaster Tools alongside complaints, because they measure the same underlying list quality.

Should transactional and marketing complaints be reported together?

No. They have different causes and different tolerances. A complaint on a password reset points to a broken expectation, an old address or a compromised list, and it should trigger an investigation rather than a content review. Blending the two lets a marketing problem hide behind a large transactional volume and lets a transactional defect hide behind marketing noise.

Sources and further reading

  1. Google, Email sender guidelines
  2. Google, Postmaster Tools spam rate guidance
  3. Yahoo, Sender best practices
  4. Microsoft, Smart Network Data Services
  5. RFC 5965, An Extensible Format for Email Feedback Reports
LoopNow AI Answers from published LoopNow pages
Hi — ask me about LoopNow products, pricing, DPDP or migration. I answer from the published site and can connect you to the team.
Contact page