Metrics9 min read

Inbox-placement-rate: the metric Inbox Check was built for

“Delivered” means your ESP handed the message to Gmail. It says nothing about whether Gmail put it in the inbox, Promotions, Spam, or dropped it silently. IPR is the number that matters.

Nearly every email platform in the world reports “delivery rate” somewhere near 99%. That number is true and useless. It means the recipient mail server responded with a 250 OK at the SMTP transaction. What happened after that — whether the message landed in Primary, Promotions, Spam, or was silently dropped — is invisible without a different instrument. That instrument measures inbox-placement-rate (IPR).

TL;DR

IPR = inbox landings ÷ attempted landings, measured against real seed mailboxes. Inbox Check was built because existing tools either did not report it or gated it behind $500/mo contracts.

The definition, precisely

IPR is a per-provider metric:

ipr(provider) = inbox_landings(provider) / attempted_landings(provider)

where
  inbox_landings     = messages arriving in the inbox folder
  attempted_landings = messages that did not hard-bounce

For Gmail, “inbox” is specifically the Primary tab. Promotions is not inbox for commercial purposes. Updates is borderline. Spam is never inbox. Missing (accepted-then-dropped) counts against you.

Why “accepted” is not “landed”

Gmail accepts almost everything at SMTP and makes the filter decision asynchronously. A 250 OK is a promise about bytes, not about folders. Mail.ru will sometimes accept a message and then silently discard it within 30 seconds. Outlook Consumer will accept and file directly into Junk without a trace.

How IPR is measured honestly

You cannot ask the recipient where your email went. You can own seed mailboxes across every major provider and send the same campaign to them, then read the folder assignment. That is the entire premise.

  1. Maintain seed mailboxes on 20+ providers (Gmail, Outlook.com, M365, Yahoo, Mail.ru, Yandex, GMX, ProtonMail, iCloud, FastMail, etc.)
  2. Inject the seeds into your normal send list
  3. After send, connect via IMAP and classify: Inbox / Promotions / Spam / Missing
  4. Compute IPR per provider, then a weighted aggregate based on your actual audience mix

Weighted IPR is the only honest aggregate

Reporting “95% IPR” is meaningless unless you say which providers and what weights. A 95% unweighted IPR from a list that is 70% Gmail but you only tested Yahoo and Mail.ru is a lie by omission.

# Weighted IPR (pseudo)
audience_mix = {
  "gmail":    0.52,
  "outlook":  0.18,
  "yahoo":    0.09,
  "mailru":   0.07,
  "other":    0.14,
}
weighted_ipr = sum(ipr[p] * audience_mix[p] for p in audience_mix)

Pull the audience mix from your actual sends, not from global industry averages.

Thresholds that mean something

  • > 95% — healthy, nothing to fix
  • 85–95% — acceptable, watch trend
  • 70–85% — investigate authentication, content, list hygiene
  • < 70% — stop sending, fix the problem

A 61% IPR campaign is burning 39% of your addressable audience and poisoning reputation every send. Do not launch at scale until you understand why.

Where placement disappears

  1. Auth mismatch. SPF fails because you forgot to add a sender. DKIM fails because a key rotated. DMARC is p=none and nothing reports the failure.
  2. Content triggers. Too many links, missing unsubscribe header, image-heavy HTML.
  3. Reputation drift. New sending IP, unwarmed domain, or a recent complaint spike.
  4. List hygiene. Old addresses hitting recycled spam traps.
Run a placement test before every launch

Inbox Check runs against 20+ real mailboxes and returns per-provider verdicts plus SPF/DKIM/DMARC and spam-engine scores. Free, no signup. CI-friendly API for programmatic checks.

Making IPR a release gate

Once you trust the number, wire it into CI. Block deploys of transactional email changes if placement against a known good template drops below 90%. Treat it like a test suite for email.

# .github/workflows/email-placement.yml (sketch)
- run: |
    IPR=$(curl -s -X POST https://check.live-direct-marketing.online/api/v1/placement \
      -H "Authorization: Bearer $ICHECK_TOKEN" \
      -d @payload.json | jq .weighted_ipr)
    if [ "$(echo "$IPR < 0.90" | bc)" -eq 1 ]; then
      echo "Placement regression: $IPR"
      exit 1
    fi

FAQ

How many seeds do I need for a stable IPR number?

Fifteen to twenty per provider is the sweet spot for variance. Three seeds per provider gives you an estimate but wide confidence intervals. Fewer than three is noise.

Does Gmail Promotions count as inbox?

Depends on your business. For e-commerce promotions, it is the correct folder. For B2B cold outreach, it is a partial loss. Report it as a separate category, not lumped with Primary.

How do I measure IPR for transactional email?

Seed a subset of your transactional events (e.g. test accounts trigger password reset every 15 min). Aggregate placement across a rolling 24 hours.

Is IPR enough, or do I still need open rate?

IPR plus reply rate plus pipeline is enough. Keep open rate as a diagnostic for bot-click/scanner detection, not as a KPI.
Related reading

Check your deliverability across 20+ providers

Gmail, Outlook, Yahoo, Mail.ru, Yandex, GMX, ProtonMail and more. Real inbox screenshots, SPF/DKIM/DMARC, spam engine verdicts. Free, no signup.

Run Free Test →

Unlimited tests · 20+ seed mailboxes · Live results · No account required