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.
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.
What does this prompt do?
- 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 do I need to use this?
- 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
How can I customize it?
- 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
FAQs
Do I need Amazon's deliverability dashboard turned on?
How far back can I look?
What bounce and complaint rates should worry me?
Will this send email or change my Amazon settings?
Can I compare transactional sending against marketing sending?
Related templates
Stop buying stale lists. Reps run a saved search, work the results like an inbox, and only the accounts they approve ever reach your CRM.
Drag creators through Sourced to Wrapped on a board grouped by campaign, with audience stats on every card and a one-click brief for each creator.
Pick a repricing rule, send an assistant out to check competitor pages, then approve the new prices that clear your margin floor.
See the projected bounce rate for any outbound send before it goes out, and keep the launch button locked until the list is clean enough to be safe.
Pick any date range and see what each device in your home actually cost to run, not just how many kilowatt-hours it used.
Search three months of global coverage on your topic, rank the outlets actually writing about it, and draft a tailored pitch for each one.
See which of your email streams is actually landing.
Stop guessing from a thin console view. Pick a date range and compare streams, providers and domains in one place.