Confidence
Every result carries confidence, a number in [0, 1].
What it is not
Section titled “What it is not”It is not a probability. It is a rule-based evidence score: a summary of how much the checks agreed and how strong the strongest evidence was. It has not been calibrated against real delivery outcomes, because doing that honestly requires knowing what actually happened to messages sent to addresses we answered about — and until that exists, a number presented as a probability would be a number invented.
So 0.9 does not mean nine in ten. It means “this verdict rests on strong,
consistent evidence” and nothing arithmetically more precise than that.
Do not threshold on it as though it were one. A rule like
confidence > 0.85 → allow looks principled and is a coin weighted by a
constant nobody measured. Branch on
status and reason_codes,
which mean exactly what they say.
What it is useful for
Section titled “What it is useful for”- Ranking within a status. Two
riskyresults with different confidences are genuinely different: one is risky because the domain accepts everything, the other because a single weak signal fired. - Triage in a review queue, where a human is going to look anyway and wants the least certain cases first.
- Noticing a change over time. A steady drop in confidence for one domain is usually the domain changing behaviour.
Freshness is the other half
Section titled “Freshness is the other half”freshness reports when each class of evidence was gathered:
"freshness": { "dns_checked_at": "2026-09-05T09:14:22Z", "smtp_checked_at": "2026-09-05T09:14:23Z"}They are separate because DNS evidence and SMTP evidence age at very different rates. A domain’s MX records are usually good for weeks; whether a particular mailbox was accepted an hour ago is a much weaker claim about now.
A result served from cache carries the timestamps of when the evidence was actually gathered, not of when you asked. If either is older than your tolerance, ask again — the answer may be the same one, and it will say so.