For outbound and RevOps teams
You are managing sender reputation against quota pressure. Every address you suppress is pipeline you did not touch; every one you should have suppressed is a bounce against a domain you cannot replace.
The trade you are actually making
A single verifier hands you valid, invalid and a large pile of unknown. The unknowns are where the decision lives, and a label gives you nothing to decide with — so teams pick a rule of thumb, suppress everything ambiguous, and quietly discard a chunk of a list they paid for.
A calibrated probability turns that into a threshold you can set deliberately and defend afterwards. If your tolerance is a 2% bounce rate, that is a number you can filter on, not a vibe.
Set a threshold you can defend
const r = await verify(email, { context: { purpose: "outbound" } })
// The interval matters as much as the point estimate. A tight 0.08
// and a 0.08 with a ceiling of 0.5 are not the same address.
const risky = r.bounce_probability > 0.05 || r.confidence_interval[1] > 0.35
// Deliverability and appropriateness are separate questions.
const wrongTarget = r.actor_class === "role_account"
|| r.actor_class === "agent_mailbox"
if (risky || wrongTarget) suppress(email, { reason: r.actor_class ?? "risk" })What protects the domain
- Hard bounces are the thing to avoid, and they concentrate in a minority of your list. A probability lets you spend suppression where it buys reputation instead of spreading it evenly out of caution.
- Role accounts deliver and complain.
info@andsales@rarely bounce and are disproportionately where spam complaints originate. Suppressing them is a reputation decision, not a deliverability one, andactor_classkeeps the two separable. - Agent mailboxes never reply. They do not hurt deliverability at all — they hurt your reply rate and your attribution. See agent mailboxes.
- Catch-all domains cannot be resolved by anyone. For cold outreach they are usually a suppress; for a warm list they are usually a send. Same data, different call, which is why Sortance reports the interval instead of making it for you.
The metrics to watch
| Metric | Where it comes from |
|---|---|
| Hard bounce rate | Your ESP. Post it back to /v1/outcome and it becomes calibration input rather than just a dashboard number. |
| Suppression rate | Your threshold. Track it against bounce rate — if you are suppressing 20% to avoid a 1% bounce rate, the threshold is costing you more than it saves. |
| Reply rate by actor_class | Segment on the field. This is usually where a mysterious decline turns out to be agent and role mailboxes. |
| Calibration state | calibration: "prior" vs "fitted". Until it reads fitted, the numbers are benchmarks rather than your traffic. |
When Sortance is not the right fit
If you want a hygiene score to screenshot, or a list scrubbed against your CRM, this is the wrong product. Uploading a CSV and getting it back with a verdict per row does work: the list guide covers the Bulk verify screen, the four API calls, and the loop for teams that would rather the list never leave their systems.