CubeAPM
CubeAPM CubeAPM

How to Monitor AWS SES Delivery Rates and Bounce Metrics

How to Monitor AWS SES Delivery Rates and Bounce Metrics

Table of Contents

If you are sending email through Amazon Simple Email Service (SES), monitoring your delivery rates and bounce metrics is not optional. AWS enforces strict thresholds on bounce and complaint rates. Once your bounce rate crosses 5% or your complaint rate crosses 0.1%, your account can be placed under review or have sending paused entirely. This guide explains exactly how to monitor AWS SES, which metrics matter most, and the tools you can use to stay ahead of problems.

Key Takeaways
  • ✓ AWS SES has two primary reputation metrics: bounce rate (keep below 5%) and complaint rate (keep below 0.1%).
  • ✓ SES exposes events via the Reputation Metrics console, CloudWatch, Virtual Deliverability Manager (VDM), and SNS notifications.
  • ✓ Configuration sets and event publishing are the foundation of any custom monitoring pipeline.
  • ✓ CloudWatch Alarms let you receive automated alerts before thresholds are breached.
  • ✓ Third-party tools (Datadog, Prometheus, CubeAPM) simplify dashboard setup and cross-service correlation.
  • ✓ SES now includes inbox placement metrics and blocklist monitoring via VDM (launched May 2026).

Why AWS SES Monitoring Matters

AWS SES Monitoring
How to Monitor AWS SES Delivery Rates and Bounce Metrics 2

AWS SES is a bare-bones email service compared to all-in-one providers like SendGrid or Mailgun. It does not have a built-in dashboard that surfaces real-time deliverability health in one view. Left unmonitored, a sudden spike in hard bounces or spam complaints can go unnoticed until AWS suspends your sending account.

Common scenarios that silently degrade your list quality:

  • Work emails that become invalid when an employee leaves a company
  • Users signing up with typos or disposable addresses (hard bounces)
  • Unclear unsubscribe flows that lead recipients to hit the spam button instead (complaints)
  • Expired aliases or cancelled email subscriptions

According to AWS documentation, SES actively tracks bounce and complaint rates and may place your account under review if these rates are too high. Monitoring proactively is the only way to act before this happens.

Core AWS SES Metrics You Must Track

SES produces several event types. Not all carry the same risk weight. Here are the ones that matter most for account health and deliverability:

MetricWhat It MeasuresSafe ThresholdRisk if Exceeded
Bounce RateHard bounces as a percentage of emails sentBelow 5%Account review or sending pause
Complaint RateEmails marked as spam by recipientsBelow 0.1%Account review or sending pause
Delivery RateEmails successfully delivered to recipient mail serverAs high as possibleLow delivery = reputation damage
Reject RateEmails rejected by SES before delivery (e.g., virus detected)Near 0%Indicates content or attachment problems
Open RateRecipients who opened the email (via configuration sets)Benchmark varies by industryPersistent low open rate signals disengagement
Click RateRecipients who clicked a tracked linkBenchmark varies by industryUsed to gauge engagement quality

Hard bounces occur when an email address does not exist, the domain does not exist, or the receiving server permanently rejects delivery. Soft bounces are temporary failures. AWS SES retries soft bounces automatically, but persistent soft bounces should eventually be treated the same as hard bounces. 

Method 1: Using the SES Reputation Metrics Console

The quickest way to check account health is the Reputation Metrics page inside the Amazon SES console. This dashboard shows the same information the AWS SES team uses when assessing individual account health.

How to Access It

  1. Sign in to the AWS Management Console and open the Amazon SES console at https://console.aws.amazon.com/ses/
  2. In the left navigation pane, choose Reputation metrics.
  3. Review Account Status, Bounce Rate, and Complaint Rate.

The Account Status field summarises combined account health and can display one of five states:

  • Healthy: No issues are impacting your account.
  • Under Review: AWS has flagged bounce or complaint issues and is monitoring the account.
  • Pending End of Review Decision: A manual review is in progress before further action.
  • Sending Paused: AWS has paused sending. You must request a review to restore access.
  • Pending Sending Pause: Issues are unresolved and a sending pause is imminent.

The Reputation Metrics page can also surface information about spamtrap hits and other reputation signals unrelated to direct bounces or complaints. This makes it a valuable first stop when diagnosing sudden deliverability drops.

Method 2: Virtual Deliverability Manager (VDM)

The Virtual Deliverability Manager (VDM) is AWS’s most comprehensive built-in deliverability monitoring tool. It tracks the complete journey of an email: from send to delivery, bounce, complaint, open, and click. VDM now also includes inbox placement metrics and blocklist monitoring, features launched by AWS in May 2026.

What VDM Now Includes

  • Delivery rates, bounce rates (hard and soft), complaint rates, open rates, and click rates in a unified view.
  • Inbox placement rate: the percentage of messages that land in the inbox versus the spam folder, based on industry sample data per sending domain and campaign.
  • Proactive inbox placement testing: test candidate email content against top mailbox providers before sending.
  • Blocklist monitoring: passive awareness of when your sending domains or IPs appear on public email blocklists.

How to Enable VDM

  • In the SES console, go to Account dashboard.
  • Under Virtual Deliverability Manager, choose Enable.
  • Once enabled, the VDM dashboard is available under Deliverability in the left navigation pane.

Method 3: Configuration Sets and Event Publishing

Configuration sets are the foundation of any custom aws ses monitoring pipeline. They let you define which email events (send, delivery, bounce, complaint, open, click, reject, rendering failure) are captured and where they are sent.

Supported Event Destinations

  • Amazon CloudWatch: Store metrics for alerting and dashboards.
  • Amazon SNS: Push real-time bounce and complaint notifications to queues or Lambda functions.
  • Amazon Kinesis Data Firehose: Stream events to Amazon S3, Redshift, or OpenSearch for long-term storage and analysis.
  • Amazon Pinpoint: Use for engagement analytics on marketing campaigns.

Creating a Configuration Set (AWS Console)

  • In the SES console, choose Configuration sets from the left menu.
  • Click Create set and give it a descriptive name (e.g., transactional-emails).
  • Under Event destinations, choose Add destination.
  • Select the event types to track (Bounces, Complaints, Deliveries are the minimum).
  • Choose your destination type (CloudWatch, SNS, or Kinesis Firehose) and complete the setup.
  • Associate the configuration set with your sending identity by adding it to your SendEmail API calls or SMTP headers.

Method 4: Setting Up CloudWatch Alarms for SES

CloudWatch Alarms let you define thresholds and receive notifications via email, SMS, or PagerDuty before you breach the limits that trigger AWS account action. This is the recommended approach for proactive aws ses monitoring.

Key Metrics to Alarm On

CloudWatch MetricNamespaceRecommended Alarm Threshold
Reputation.BounceRateAWS/SESAlert at 2%, Critical at 4%
Reputation.ComplaintRateAWS/SESAlert at 0.05%, Critical at 0.08%
SendAWS/SESMonitor for anomalous spikes
DeliveryAWS/SESAlert when delivery rate drops below 95%
BounceAWS/SESCount-based alert for absolute bounce volume
ComplaintAWS/SESCount-based alert for absolute complaint volume

Creating a Bounce Rate Alarm in CloudWatch

  • In the CloudWatch console, choose Alarms, then Create alarm.
  • Click Select metric, navigate to SES, and select Reputation.BounceRate.
  • Set the threshold: alert when BounceRate >= 0.02 (2%) for 1 datapoint out of 1 period.
  • Under Notification, choose or create an SNS topic and add your alert email address.
  • Name the alarm (e.g., SES-BounceRate-Warning) and create it.

Method 5: Real-Time Bounce and Complaint Handling via SNS

SNS notifications give you real-time visibility into delivery failures. The standard architecture routes SES events to SNS topics, then to an SQS queue, and finally to a Lambda function that stores or acts on the data. Here is the minimum viable setup using the AWS CLI:

Step 1: Create SNS Topics

aws sns create-topic --name ses-bouncesaws sns create-topic --name ses-complaintsaws sns create-topic --name ses-deliveries

Step 2: Connect SNS Topics to Your SES Identity

aws ses set-identity-notification-topic  --identity yourdomain.com  --notification-type Bounce  --sns-topic arn:aws:sns:us-east-1:123456789:ses-bouncesaws ses set-identity-notification-topic  --identity yourdomain.com  --notification-type Complaint  --sns-topic arn:aws:sns:us-east-1:123456789:ses-complaints

Once SNS notifications are confirmed working, disable the default email feedback forwarding to avoid duplicate notifications. 

Domain-Level Monitoring with CloudWatch

When you operate multiple sending domains from a single SES account (for example, one domain for transactional email and another for marketing), account-level metrics are not granular enough. A single high-bounce campaign can affect the reputation of all domains on the account.

The solution is to use SES message auto-tags to publish domain-level delivery events to CloudWatch as custom metrics. By tagging sends with the source domain, you can create separate CloudWatch dashboards per domain and set independent alarms. This approach is detailed in the AWS Messaging Blog.

For multi-domain setups, the recommended architecture is:

  • Create one configuration set per sending domain.
  • Route each configuration set to its own CloudWatch event destination.
  • Use CloudWatch metric filters to build per-domain dashboards and alarms.
  • Use VDM for the aggregated view across all domains.

Best Practices for AWS SES Monitoring and Deliverability

Double opt-in requires new subscribers to confirm their email address before being added to your list. This removes typos, mistyped addresses, and invalid emails at the point of signup rather than when a send fails.

Hard-bounced addresses should be removed from your sending list immediately. SES adds hard-bounced addresses to the account-level suppression list automatically, but you should also remove them from your own database to prevent re-importing them in the future.

When increasing send volume, ramp gradually. A jump from a low send volume to hundreds of thousands of emails overnight looks suspicious to ISPs and raises bounce and complaint rates. Increase volume by no more than 20% to 30% per week.

AWS will act when bounce rate exceeds 5% and complaint rate exceeds 0.1%. Set your own alarms at 2% and 0.05% respectively. This gives you time to investigate and resolve issues before they reach AWS thresholds.

Shared SES IPs carry the reputation of all senders on that pool. If you are sending more than 100,000 emails per day, a dedicated IP gives you full control over your sending reputation. It also makes IP-level blocklist monitoring more straightforward since you own the entire sending history for that IP.

Email authentication is a baseline requirement for good deliverability. Ensure DKIM is enabled and verified in SES, that your domain has a valid SPF record, and that DMARC is configured with at least a p=none policy to start collecting alignment reports before moving to enforcement.

AWS SES Observability
Stop Flying Blind on Your SES Metrics
CubeAPM gives you out-of-the-box AWS SES monitoring with pre-built dashboards for delivery rates, bounce rates, and complaint rates. Set threshold alerts, visualize trends over time, and catch deliverability issues before they trigger an AWS account review. No complex setup required.
  • ✓ Monitor delivery, bounce, and complaint rates in real time
  • ✓ Receive proactive alerts before reputation metrics exceed AWS thresholds
  • ✓ Visualize long-term deliverability trends with pre-built dashboards
  • ✓ Consolidate SES metrics alongside logs, traces, and infrastructure telemetry
Get Started with CubeAPM Today →

Conclusion

AWS SES monitoring is a multi-layer problem. The Reputation Metrics console and VDM give you quick visibility into account health. Configuration sets with CloudWatch event destinations give you the granular, time-series data you need for alerting. SNS notifications let you process bounces and complaints in real time and automatically update your suppression lists. Third-party tools like Datadog and Prometheus reduce the operational overhead of maintaining these pipelines.

The most important takeaway is to set your alarms well before AWS thresholds, act on every hard bounce, and make list hygiene a default part of your sending workflow. A clean list does not just protect your SES account, it improves deliverability for every email you send.

DisclaimerThis article is intended for informational purposes only. AWS SES thresholds, console layouts, and service features may change over time. Always refer to the official Amazon SES documentation for the most current guidance. Third-party tool integrations mentioned are based on publicly available information and do not constitute an endorsement by CubeAPM or its affiliates.

FAQs

1. What is a safe bounce rate for AWS SES?

Keep your hard bounce rate below 5%, which is the threshold at which AWS may review or pause your account. Set your own internal CloudWatch alarm at 2% to give yourself time to act. The ideal long-term target is below 1%.

2. How do I check my current AWS SES bounce rate?

Open the Amazon SES console and select Reputation metrics from the left navigation pane. For historical trends, go to CloudWatch, filter by the AWS/SES namespace, and select the Reputation.BounceRate metric.

3. What is the difference between a hard bounce and a soft bounce in SES?

A hard bounce is a permanent failure where the address does not exist or the server has permanently rejected the message. SES adds these to the account suppression list automatically. A soft bounce is a temporary failure such as a full mailbox, and SES retries these automatically before treating them as permanent.

4. Can I monitor AWS SES metrics at the domain level?

Yes. Use configuration sets with message auto-tags to publish per-domain delivery events into CloudWatch as custom metrics. Create one configuration set per sending domain, route each to a CloudWatch event destination, and build separate dashboards and alarms. Virtual Deliverability Manager also provides domain-level data in a single view.

5. What happens if AWS pauses my SES sending account?

You will be unable to send any email until the issue is resolved. Submit a review request through the AWS Support Console, explain the root cause, and describe the remediation steps you have taken. AWS manually reviews the account before restoring access, which can take several business days.

×
×