Skip to content
Coritan Docs

Sending reputation and deliverability

How we measure your relay's bounce and complaint rates, what happens when they cross a threshold, and how to read the Deliverability card.

View as Markdown

In the dashboard

Mail providers decide whether your mail reaches the inbox largely from two numbers: how much of it bounces, and how often recipients report it as spam. We measure both for every SMTP Relay and Mail Hosting service. Your mail leaves from addresses you share with other senders, so a service whose rates get too high goes under review, and then has its sending paused. On an SMTP Relay service, the Deliverability card on the Overview tab shows the rates, the thresholds and a health check of your setup.

  • The bounce rate is the share of sent messages that ended as bounced events: not delivered, and not tried again.
  • The complaint rate is the share that drew a complaint event: the recipient marked the message as spam, or a mailbox provider reported it as fraud or as failing authentication.
  • Both rates use the messages we accepted from the service over the last seven days. Every credential, API key and domain on the service counts together.

We work out the rates of every active service every 30 minutes. The counts behind them are added up once an hour, so they trail your sending by up to about an hour. With fewer than 200 messages in the seven days, we do not judge the rates at all.

Rate Under review from Sending paused from
Bounce rate 5% 10%
Complaint rate 0.1% 0.5%

Reaching a line is enough: a bounce rate of exactly 5% puts the service under review. The Deliverability card shows the lines in force under each rate, such as Review 5% · pause 10%.

When either rate reaches its review line, we flag the service for our staff to look at. Sending carries on. Above the tabs, every page of the service shows the Under review alert with the figures that set it off, such as flagged: 6.12% bounces, 0.04% complaints over 7d.

While the flag is on:

  • The service cannot leave probation, and an established service goes back to probation at the next daily review. Sending tiers explains what that changes.
  • A relay's hourly limit does not rise.

The flag stays until our staff clear it, even after the rates fall. Once a check finds the rates back under the review lines, the alert keeps its title and says We are reviewing your delivery rates. Sending continues while the review is open. If the rates are still at a review line when our staff clear the flag, the next check sets it again.

When either rate reaches its pause line, we pause the service's sending:

  • On an SMTP Relay service, no SMTP credential can sign in, and the send API answers 400 with Sending is paused on this service; contact support. A message that still reaches the relay over SMTP is refused with 550 5.7.1 Sending is paused for this account; contact support.
  • On a Mail Hosting service, its mailboxes cannot sign in, send or receive mail.
  • Above the tabs, the Sending is paused alert shows the figures, such as auto-frozen: 11.4% bounces, 0.08% complaints over 7d. The Status on the Service card reads Sending paused, and on a relay the Send tab shows the alert too.
  • The service goes back to probation at the next daily review. On a relay, that also resets the hourly limit to the starting limit.

We do not email you when a service goes under review or is paused. The alerts on the service's pages are where you see it.

Only our staff lift a pause. Fix the cause first (Bring the rates down), then contact support and say what you changed. The check still looks at the last seven days: if the rates in that window are still at a pause line when our staff lift the pause, the next check pauses sending again.

Our staff can also pause a service by hand. The alert has the same title, and without figures it says Bounce or complaint rates crossed the platform threshold. Clean your lists, then contact support to resume.

Separately from these rates, we turn off a single mailbox that suddenly sends far more than it usually does. See Manage mailboxes.

  • Send only to people who asked for your mail. Bought lists and old lists bounce and draw complaints.
  • Confirm new addresses when people sign up, such as with a confirmation email, so typing mistakes never reach your list.
  • Send newsletters and campaigns as marketing. Recipients then get an unsubscribe button in their mail app and can use it instead of reporting spam. See Transactional and marketing mail.
  • Leave addresses on the suppression list unless you know the problem is fixed. Each one bounced or complained before.
  • Follow bounced and complaint events on the Events tab or with webhooks, and take those addresses off your own lists too.

Every service has a sending tier. The tier decides which addresses the service's mail leaves from, so that new senders do not share addresses with senders who have a clean history.

probation
Every new service starts here. Its mail leaves from shared addresses kept for services in probation, where the region has them.
established
The service has passed probation. Its mail leaves from the main shared addresses.
dedicated
The relay has a dedicated address, and its mail leaves from its own addresses.

A review once a day moves services between tiers, using the last 14 days:

  • A service in probation becomes established after 14 days in probation, or sooner once it has sent 5,000 messages in the last 14 days. Either way, fewer than 2% of its messages in those 14 days bounced, fewer than 0.1% drew a complaint, and it is neither under review nor paused.
  • An established service goes back to probation when it is under review or paused, or when its 14-day rates reach 2% bounces or 0.1% complaints. On an SMTP Relay service, this also resets the hourly limit to the starting limit.
  • A relay that gets a dedicated address moves to dedicated.

On an SMTP Relay service, the Sending IPs card on the Overview tab ends with the tier, such as Tier: Probation. The Pool check on the Deliverability card names it too, and in probation it adds promoted after 14 clean days or 5,000 clean messages. In the API, the service summary has tier and tier_since, when the service entered its tier (null until it first changes tier).

On an SMTP Relay service, go to Email, open the relay, then the Overview tab. Mail Hosting services have no card, and their figures are in the API.

The card covers the last seven days, as its description says. It starts with a verdict on the rates as they are now:

verdict What the card says
ok Healthy: rates are within limits.
review Under review: rates are above the review threshold. Clean your lists before they reach the freeze line.
freeze Sending is paused: the bounce or complaint rate crossed the freeze threshold.
insufficient Verdict: insufficient, when the window holds fewer than 200 messages

When the service is flagged or paused, the figures that set it off follow the verdict in brackets. The verdict follows the current rates, while the alerts above the tabs stay until our staff clear them. So the card can say Healthy while the Under review alert is still there.

Four figures follow:

Inbox health
A score out of 100, with a grade. See The inbox health score.
Sent
Messages accepted in the window.
Bounce rate
The bounce rate, with the review and pause lines under it. The rate turns to the warning colour from the review line.
Complaints
The complaint rate, with its lines.

Then comes a list of checks, each with a short detail, such as Domains · 1 verified. At the bottom, Default message category sets the category of messages that do not choose one (Transactional and marketing mail).

When the report cannot load, the card says Reputation data is not available right now.

Check Weight Passes when Warns or waits when Fails when
Domains 25 Every domain is verified. Some domains are still pending. No domain is added, or none is verified.
SPF and DKIM 20 Both records pass on every verified domain. No domain is verified yet. A verified domain is missing either record.
Rates 15 Bounces are under 2% and complaints under 0.1%. Bounces reach 2% or complaints 0.1%, or the window holds fewer than 50 messages. Bounces reach 5% or complaints 0.3%.
DMARC 10 Every verified domain has its DMARC record, and at least one is at p=quarantine or p=reject. Every verified domain is at p=none, or no domain is verified yet. A verified domain's DMARC record is missing or out of date.
Reverse DNS 10 The reverse DNS name of every address your mail leaves from points back to that address. An address is not checked yet. An address fails the check.
Blocklists 10 No address your mail leaves from is on a blocklist. — An address is listed.
Providers 5 Gmail and Microsoft rate your mail well. Gmail rates your domain medium or Microsoft shows yellow, or we have no data from them yet. Gmail rates your domain low or bad, or Microsoft shows red.

The Rates check uses stricter lines than the review: 2% bounces and 0.1% complaints are what Gmail asks of senders. Reverse DNS and Blocklists look at the addresses your mail leaves from: your dedicated addresses, or the shared addresses of your tier. We manage those addresses, so tell support when either check fails. Providers reads Gmail's Postmaster Tools and Microsoft's SNDS, when we have their data for your domains and addresses.

Three more checks carry no weight:

Pool
Your sending tier, such as established pool.
Sending
Shown only while sending is paused, as sending is paused.
Review
Shown only while the service is under review, as our reputation checks flagged this for review.

Each check with a weight earns all of it when it passes, half when it warns or waits for data, and none when it fails. Inbox health is the weight earned out of the weight of the checks shown, as a number out of 100. While sending is paused, or while SPF and DKIM, Reverse DNS or Blocklists fails, the score is at most 40.

Score Grade
90–100 Excellent
75–89 Good
50–74 Fair
0–49 Poor

Mail providers send aggregate reports about the mail they receive from your domains: how many messages, from which servers, and whether they passed SPF, DKIM and DMARC. They send them to the rua= address in your DMARC record, when the record the dashboard shows has one. The reports drive the DMARC stage ramp.

On a Mail Hosting domain, TLS reports describe the mail sent to you: whether other servers could reach yours over an encrypted connection. They go to the address in the _smtp._tls record. Mail DNS records lists both records.

The dashboard does not list the reports. The API returns the latest ones with the reputation report below, together with any daily figures from Gmail's Postmaster Tools for your domains.

GET /client/smtp-relay/{service_id}/reputation returns everything the card shows, and the reports:

Shell
curl "https://api.coritan.com/api/v1/client/smtp-relay/4812/reputation?limit=5" \
  -H "Authorization: Bearer $CORITAN_TOKEN"

limit is how many reports to return, newest first: 1–200, and 50 when you leave it out. A value outside that range answers 422.

JSON
{
  "health": {
    "score": 92,
    "grade": "excellent",
    "items": [
      {"key": "domains", "status": "pass", "weight": 25, "detail": "1 verified"},
      {"key": "spf_dkim", "status": "pass", "weight": 20, "detail": "SPF and DKIM published on every verified domain"},
      {"key": "dmarc", "status": "warn", "weight": 10, "detail": "p=none: monitoring only, tightened automatically after two clean weeks of reports"},
      {"key": "fcrdns", "status": "pass", "weight": 10, "detail": "PTR and A agree on every sending address"},
      {"key": "blocklists", "status": "pass", "weight": 10, "detail": "no sending address on a blocklist"},
      {"key": "rates", "status": "pass", "weight": 15, "detail": "bounce 1.2%, complaints 0.048%"},
      {"key": "providers", "status": "info", "weight": 5, "detail": "no provider data yet (Postmaster Tools / SNDS)"},
      {"key": "pool", "status": "pass", "weight": 0, "detail": "established pool"}
    ]
  },
  "tier": "established",
  "default_category": "transactional",
  "window_days": 7,
  "sent": 8412,
  "bounced": 101,
  "complaints": 4,
  "bounce_pct": 1.2,
  "complaint_pct": 0.048,
  "verdict": "ok",
  "thresholds": {
    "bounce_review_pct": 5.0,
    "bounce_freeze_pct": 10.0,
    "complaint_review_pct": 0.1,
    "complaint_freeze_pct": 0.5,
    "min_sent": 200
  },
  "sending_frozen": false,
  "review_flag": false,
  "note": null,
  "domains": [
    {
      "domain": "example.com",
      "status": "verified",
      "checks": {"ownership": true, "mx": false, "spf": true, "dkim": true, "dmarc": true},
      "dmarc_policy": "none",
      "mta_sts_mode": "testing"
    }
  ],
  "reports": [
    {
      "id": 90211,
      "domain": "example.com",
      "type": "dmarc",
      "reporter": "google.com",
      "range_begin": "2026-09-15T00:00:00",
      "range_end": "2026-09-15T23:59:59",
      "total": 1180,
      "passed": 1176,
      "failed": 4,
      "summary": null,
      "received_at": "2026-09-16T06:12:44"
    }
  ]
}
health
The inbox health score: score (0–100), grade (excellent, good, fair or poor) and items, one for each check. Each item has a key, a status (pass, warn, fail or info), its weight in the score and a detail.
health.items[].key
domains, spf_dkim, dmarc, fcrdns (Reverse DNS), blocklists, rates, providers, pool, frozen (Sending) and review. A Mail Hosting service also gets mx, with a weight of 5: it passes when every verified domain receives its mail with us, and warns otherwise.
tier
The service's sending tier.
default_category
transactional or marketing.
window_days
The length of the window, in days.
sent, bounced, complaints
Messages accepted, bounces and complaints in the window.
bounce_pct, complaint_pct
The rates in percent: bounce_pct to two decimal places, complaint_pct to three. Both are 0.0 when nothing was sent.
verdict
ok, review or freeze, or insufficient below thresholds.min_sent messages.
thresholds
The review and pause lines in percent (bounce_review_pct, bounce_freeze_pct, complaint_review_pct, complaint_freeze_pct) and min_sent, the fewest messages we judge.
sending_frozen, review_flag
Whether sending is paused, and whether the service is under review.
note
The figures behind the flag or the pause, such as flagged: 6.12% bounces, 0.04% complaints over 7d, or null.
domains
Each domain with its status, the results of its checks, its DMARC stage in dmarc_policy, and mta_sts_mode, the mode of the MTA-STS policy we serve for it. Mail DNS records explains the checks.
reports
The latest reports, newest first, up to limit.

Each report has:

type
dmarc for a DMARC aggregate report, tls for a TLS report, or postmaster for a day of Gmail Postmaster Tools figures for the domain.
domain, reporter
The domain the report is about, and the organisation that sent it.
range_begin, range_end
The period the report covers, or null when it does not say.
total, passed, failed
The messages or connections the report covers, and how many passed and failed. All 0 on a postmaster row.
summary
Further detail we read from the report, or null. On a postmaster row it holds Gmail's figures and a one-line text.
received_at
When the report reached us.

The service summary, GET /client/smtp-relay/{service_id}, carries the results of the last check: bounce_rate_pct and complaint_rate_pct to two decimal places, reputation_checked_at, reputation_note, sending_frozen and review_flag, with tier and tier_since.

The same report is under GET /client/mail/{service_id}/reputation, which answers for both products. On a Mail Hosting service, its reports can also hold tls reports.

API operations on this page

MethodPathWhat it does
GET/api/v1/client/smtp-relay/{service_id}/reputationReputation report
GET/api/v1/client/mail/{service_id}/reputationReputation report