---
name: ravn-reduce-bounce-rate
description: Use when bounces are hurting deliverability and someone wants a stale list re-verified, segmented by risk score and given a clear re-send policy.
title: Reduce Email Bounce Rate on a Stale List — Ravn
---
# Reduce bounce rate on a stale list

When bounces start climbing, re-verify the list, split it into segments by risk score, and give the user a written re-send policy: who to send to now, who to warm up slowly, and who to suppress for good. The aim is fewer hard bounces and a protected sender reputation.

## When to use

- The user's email tool reports a rising bounce rate, or a send was paused for bounces.
- A list has not been mailed in months, or it was last verified long ago.
- "Why are we bouncing so much and what should we do?"

For a one-off check of a fresh list, verify-email-list is enough. This skill adds segmentation and an ongoing policy.

## Before you start

1. Check the connection: call `get_account` with `{}` or run `npx ravn whoami`.
2. Costs: 1 lookup per unique address. On the Free plan, lookups are 1,000 in total; on Ravn ($24/month) 10,000 lookups a month are included, then $1 per 1,000, up to the spending cap (`ravn cap <dollars>`).
3. Ask for the bounce report from the user's sending tool if they have one. Hard-bounced addresses should be suppressed whatever the re-check says.

## Steps

1. Remove known bad rows first, for free: hard bounces from the report, unsubscribes and spam complaints. Keep them in `suppress.csv`.
2. Re-verify everything else. Dry run, sample, full:

```bash
npx ravn enrich list.csv --tool validate_email --column Email --dry-run
npx ravn enrich list.csv --tool validate_email --column Email --limit 10 --out sample.csv
npx ravn enrich list.csv --tool validate_email --column Email --out reverified.csv
```

3. Segment by `rw_verdict` and `rw_risk_score` (A is 90 and above, B 75 and above, C 55 and above, D 30 and above, F below 30):
   - **Send now**: `valid` with risk score A or B.
   - **Send slowly**: `valid` with score C. Mail in small batches, to recently engaged contacts first.
   - **Hold**: `risky` (usually `catch_all: true`) and `unknown`. Only mail if the contact has opened or clicked recently; otherwise leave out.
   - **Suppress**: `invalid` (for example `mailbox_not_found`, `no_mx`, `domain_not_found`), `disposable: true`, and any score D or F.
4. Look at the reasons for the suppress group. A large number of `domain_not_found` or `no_mx` usually means old companies that closed or changed domains. If the user wants, those people can be re-found with find-work-email on their new domain.
5. Write the policy for the user in plain words:
   - Re-verify any address not mailed in the last 90 days before the next send.
   - Verify new addresses at the point of capture (a single `validate_email` call on sign-up).
   - Never re-add suppressed addresses.
   - After each send, add new hard bounces to the suppression list.
6. Offer to re-run the same command on a schedule the user chooses, using the same file names so the comparison is easy.

## Output

- `send-now.csv`, `send-slowly.csv`, `hold.csv`, `suppress.csv`.
- Each keeps the original columns plus `rw_status` (`ok`, `not_found`, `error`, `dropped`), `rw_verdict`, `rw_risk_score`, `rw_reason`, `rw_catch_all`, `rw_disposable`, `rw_role_account` and `rw_mailbox_checked`.
- A short report: counts per segment, the top reasons for suppression, and the written re-send policy.

## Rules

- Suppression is one-way: unsubscribed, complained, hard-bounced and opted-out contacts never go back on the send list. See [/privacy#optout](https://askravn.com/privacy#optout).
- Drop invalid and risky addresses from the main send. Do not relabel `unknown` as `valid`.
- No FCRA uses.
- If the list is larger than the lookups left in this window, tell the user the run will pause until the reset.
- On a 429 `fair_use_exhausted`, stop and tell the human. Rows not reached are marked `dropped`; rerun to finish.

## Example prompt

> Our last newsletter had an 8% bounce rate and Mailchimp warned us. The list is 14,000 people and some haven't been emailed in a year. Fix it and tell us how to stop this happening again.
