SES complaint rate unexpectedly increasing for months



I am using SES to send Newsletters about my product for many years. I never had problems with the complaint rate. I have implemented the bounce and complaint tracking system to store the response to the DB and to analyze these reputation parameters. 

In the latest months, I did not send newsletters and only used SES for the site notification email sending initiated by users (about 100 per day)

However, starting from July 2021 I noticed an increase in the complaint rate even though there were no Newsletters sent. The increase was in progress for several months. See these pictures for details: Complaint Increasing, Complaint Rate
And I do NOT see any complaint events registered in the database. The current complaint rate is 0.1% which is a warning level. And I am worried because I plan to start Newsletter sending to many users soon and do not want the account suspension.

The only thing I did was sending many test emails to my own 3 gmail accounts. But it happens only for several days a few months ago. The increase in the percentage of complaints is steadily increasing.

Why the complaint rate is increasing over months and NOT decreasing in my situation? Are there any hidden reasons I do not understand?

Andrey.     Account ID: 712958123389

asked 2 years ago1327 views
3 Answers

Hi jsonc,

Thanks for your answer!

Yes sure I track all the notifications for complaints and bounces for years. And I do see some complaints in my tracking systems sometimes so it works.

The problem is that there are NO notifications about recent complaints and the rate is increasing. The other problem is that complaints rate is increasing and is not decreasing for months now.

Maybe my problem is related for the issue reported here?

I published my AccountID in a hope someone from AWS investigate the issue I reported.

Thanks, Andrey.

answered 2 years ago

The complaint rate calculation has a bug, it's showing a totally different value compared to what's the real metrics give by total(complaint) / total(sent).

I've spent some time writing this script to calculate the correct value.

Please submit it to the technical team to review, I don't have that level of subscription.

SEND=$(aws cloudwatch get-metric-statistics \
  --namespace AWS/SES --metric-name Send \
  --start-time 2023-01-01 --end-time 2024-01-01 \
  --period 864000000 --statistics Sum --query 'Datapoints[0].Sum')

BOUNCE=$(aws cloudwatch get-metric-statistics \
  --namespace AWS/SES --metric-name Bounce \
  --start-time 2023-01-01 --end-time 2024-01-01 \
  --period 864000000 --statistics Sum --query 'Datapoints[0].Sum')
COMPLAINT=$(aws cloudwatch get-metric-statistics \
  --namespace AWS/SES --metric-name Complaint \
  --start-time 2023-01-01 --end-time 2024-01-01 \
  --period 864000000 --statistics Sum --query 'Datapoints[0].Sum')
BOUNCE_RATE=$(bc <<< "scale=4; ($BOUNCE/$SEND)*100")
COMPLAINT_RATE=$(bc <<< "scale=4; ($COMPLAINT/$SEND)*100")

echo "bounce rate: $BOUNCE_RATE%"
echo "complaint rate: $COMPLAINT_RATE%"
answered 9 months ago

Hi. Good question, Andrey.

First off, I would recommend not giving out your Account ID.

One thing you could do is to track notifications for complaints and bounces:

Those notifications can give you more information about the categorization and why you're seeing some of the complaints. That may help you determine the cause of the complaints.

answered 2 years ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions