# Explore Amazon SES sending performance by stream and provider

> Pick any date range and see which email streams and mailbox providers are actually delivering, with bounce and complaint rates measured against Amazon's limits.

- Workflow type: app
- Services: Amazon SES, Google Sheets
- Categories: Operations, Marketing
- Published: 2026-08-14

## What it does

- Headline numbers for sends, deliveries, bounces, complaints, opens and clicks across whatever date range you pick
- Bounce and complaint rates shown against the limits Amazon enforces, so you spot trouble long before your account is at risk
- Side by side tables comparing each sending stream (transactional versus marketing) and each mailbox provider, so you can tell a Gmail problem from a list problem
- Account standing, open deliverability issues you can acknowledge with a note, and the verification and signing status of every sending domain
- A snapshot button that appends the current numbers to a Google Sheet, building the long term history Amazon does not keep

## What you'll need

- An Amazon Web Services account with Amazon SES already set up and sending
- Read access to that SES account, so the app can pull your sending numbers and domain settings
- A Google account and a spreadsheet where snapshots are saved
- Amazon's deliverability dashboard switched on if you want the mailbox provider and inbox placement views

## Prompt

Build me an app for exploring how our Amazon SES sending is actually performing. I open it, pick a date range, and answer one question: which of our email streams is landing and which is not. It is a drill down surface for investigating, not a scheduled report, so everything on screen reacts to the date range picker.

The top of the app is a date range picker with quick presets (last 7 days, last 30 days, month to date) plus a row of headline tiles for the selected range: sends, deliveries, bounces, complaints, opens and clicks. Pull these from Amazon SES Batch Get Metric Data for the account as a whole. Next to the bounce and complaint tiles show the rates as a percentage of sends, compared against the thresholds Amazon enforces: warn when bounce rate goes above 2 percent or complaint rate above 0.05 percent, and show danger at the levels where Amazon takes action on the account, 5 percent bounce and 0.1 percent complaint. Make both thresholds editable in a small settings area of the app.

Below the tiles, two breakdown tables built from the same metric data. The first is per configuration set: call List Configuration Sets to get every set, then request metric data broken down by configuration set so I can put transactional sending next to marketing sending in one table. Columns are sends, deliveries, bounce rate, complaint rate, open rate and click rate, sortable, with the same threshold colouring on the rate columns. Batch Get Metric Data accepts a limited number of queries per call, so batch and page the requests behind a single handler rather than firing one call per set from the client.

The second table is per mailbox provider, using the same metric data broken down by provider, so I can see when Gmail or Outlook alone is rejecting us while every other provider is fine. Same columns, sorted by volume by default. Highlight any provider whose bounce or complaint rate is materially worse than the account average, because that pattern means a provider specific problem rather than a list quality problem.

A side panel shows account standing and open issues. Use List Reputation Entities and Get Reputation Entity for the sending status and reputation policy of the account and its identities, and List Recommendations for the open deliverability issues Amazon has raised, showing each one's type, impact and status. Let me acknowledge a recommendation with a short note. Store the acknowledgement and note inside the app, keyed to the recommendation, with who acknowledged it and when, and keep acknowledged items visible but dimmed rather than hiding them. Acknowledging must not change anything in Amazon SES.

The same panel lists every sending identity from List Email Identities, enriched with Get Email Identity, showing whether it is a domain or an address, its verification status, and its DKIM status and signing key type. Sort unverified or DKIM failing identities to the top, since those are the ones doing damage right now.

A domain panel shows inbox placement and engagement per sending domain for the selected range using Get Domain Statistics Report: inbox versus spam placement, read rate, delete rate and complaint volume.

Add an Archive snapshot button. Clicking it appends one row to a Google Sheet using Append Values, containing the date range, the headline totals, the bounce and complaint rates, and a timestamp, so the team accumulates the long term history Amazon does not retain. Let me set the spreadsheet and tab in the app's settings, write a header row when the tab is empty, and confirm in the UI when the row lands. Give me an option to append the per configuration set rows for the same range as well.

Call Get Deliverability Dashboard Options when the app loads. If the deliverability dashboard is switched off, the mailbox provider table and the domain inbox placement panel must say so in plain words, explaining that those views need the Amazon SES deliverability dashboard enabled and where it is turned on, rather than rendering blank tables or zeroed charts. Do the same when a range genuinely has no activity: say there was no sending in this range instead of presenting zeros as if they were results.

Keep it exploratory and read only against Amazon SES. The only writes anywhere are the snapshot row in Google Sheets and the acknowledgement notes stored in the app. Changing the date range refreshes the tiles, both tables and the domain panel together.

## How to customize

- Change the warning and danger thresholds for bounce and complaint rates to whatever your team wants to act on
- Set the default date range and the quick presets shown next to the picker
- Point the snapshot button at a different spreadsheet or tab, and choose whether snapshots include the per stream rows too

## FAQ

### Do I need Amazon's deliverability dashboard turned on?

Not for the headline numbers. The mailbox provider breakdown and the inbox placement panel come from Amazon's richer deliverability data, which only exists once that dashboard is switched on. The app checks on load and tells you plainly which views are unavailable instead of showing you blank tables.

### How far back can I look?

Only as far back as Amazon retains this data, which is a limited window. That is exactly why the app has a snapshot button: every snapshot appends the current numbers to your Google Sheet, so your team gradually builds the long term history Amazon does not keep.

### What bounce and complaint rates should worry me?

Amazon reviews accounts once bounce rate passes 5 percent or complaint rate passes 0.1 percent. Most teams set their own alarm well below that, around 2 percent bounces and 0.05 percent complaints, which is what the app flags by default. You can change both thresholds.

### Will this send email or change my Amazon settings?

No. Everything it reads from Amazon is read only. The only things it writes are the snapshot row in your Google Sheet and the notes you leave when you acknowledge an issue, which stay inside the app.

### Can I compare transactional sending against marketing sending?

Yes, as long as those streams use separate configuration sets in Amazon SES. The app puts every configuration set in one table so you can see them side by side for the same date range.

Use this prompt in General Input: https://www.generalinput.com/prompts/explore-amazon-ses-sending-performance-by-stream-and-provider