Lead List Quality Scorer
A lead list is only as useful as its weakest column. This free scorer grades a pasted list out of 100 for completeness and format: usable emails, names, companies, job titles, phone numbers, websites and locations, plus duplicates, placeholders and malformed values. It runs entirely in your browser, so the list is never uploaded, stored or sent anywhere.
Free tool · nothing is uploaded
Score your lead list
Paste a CSV or a plain list of leads. The scorer checks field completeness, email and phone formats, duplicates and placeholders, then ranks the rows that need fixing.
- Completeness
- Format checks
- Duplicate emails
- Row-level fixes
1Your lead list
A header row is detected automatically. Comma, tab, semicolon and pipe files all work; quoted cells are supported. One record per line.
2Quality score
Paste a lead list to see its score, field coverage and problem rows.
—
Enter a lead list to see your score.
- Rows 0
- Usable emails 0
- Duplicates 0
- Rows to fix 0
3Field coverage
Share of rows with a usable value. A field with no matching column scores zero when it belongs to the active profile; fields outside the profile are marked.
Paste a lead list to see field coverage.
4Issues found
Paste a lead list to run the checks.
5Rows to fix
What this lead list scorer measures
A lead list can look clean in a spreadsheet and still be weak where it matters: an address with a typo, a row with no company, three copies of the same contact, or a website column that belongs to a different company. This tool turns those observations into two numbers and one overall score.
Completeness asks how much of a usable outreach record is present. Format asks whether the values that are present can be used as written. The overall score blends the two, then applies a duplicate penalty through the format side and caps the result when no row has a usable email. Every input is scored against a named profile, because an email-only newsletter list and an ABM list do not need the same fields.
How to use the scorer
- Paste a CSV export, a tab-separated spreadsheet selection, or a plain list with one email per line.
- Leave Header row on auto-detect. Override it if the first row is data or if your column names are unusual.
- Leave Delimiter on auto-detect unless the parse summary shows the wrong column count.
- Pick the Scoring profile that matches the campaign: Outreach record, Contact only, or Data hygiene.
- Read the overall score, then the field coverage bars. A field with no matching column scores zero and is listed under Issues.
- Fix the rows in the Rows to fix panel first, then re-paste. Use Copy report to hand the findings to whoever owns the list.
How the score is calculated
Each row receives a completeness score and a format score from 0 to 100. The completeness score is the sum of the field weights that are present and usable. The format score starts at 100 and loses points for the defects in the penalty table below. A row's own score uses the same blend as the list.
| Profile | Field weights (sum 100) | Blend |
|---|---|---|
| Outreach record | Email 30, name 20, company 15, job title 15, phone 8, website 7, location 5 | 60% completeness, 40% format |
| Contact only | Email 45, name 25, company 30 | 60% completeness, 40% format |
| Data hygiene | Email 100 | 40% completeness, 60% format |
Completeness is a weighted average across rows. A name earns full credit when a full-name column is filled, or when both first and last name columns are filled. If both first and last name columns exist and only one is filled, the name field earns half its weight. A value that is empty, a placeholder such as “N/A”, or unusable as written does not earn credit. A field with no detected column earns nothing, which is why the profile choice matters so much for a plain email list.
| Format check | Points off the row | What triggers it |
|---|---|---|
| Missing email | 40 | No value in the mapped email column. |
| Invalid email | 40 | Bad syntax, no dot in the domain, multiple @ signs, or a reserved test domain such as example.com. |
| Placeholder email | 40 | The email cell contains N/A, unknown, test or similar filler. |
| Disposable domain | 25 | A known temporary-inbox provider such as mailinator.com. |
| Duplicate email | 15 | The same address appears earlier in the list, compared case-insensitively. |
| Placeholder value elsewhere | 10, once per row | A name, company, title, phone, website or location cell contains filler text. |
| Invalid phone | 10 | Fewer than 7 or more than 15 digits, letters in the number, or one digit repeated for the whole number. |
| Invalid or social website | 8 | The website cell is not a domain, or it is a social/profile URL. |
| Domain mismatch | 8 | The email domain and the website domain disagree. Free or disposable mailboxes and social sites are skipped. |
| Name formatting | 6 per bad name field | A first or last name contains a number, symbol or more than four words. |
| Unusable text field | 6 per bad field | A company, title or location value is too long or contains no letters. |
Role-based addresses (info@, sales@, support@) and free-mail domains (Gmail, Outlook, Yahoo and similar) are reported as findings but do not remove format points. They are classifications, not errors. The same applies to a missing phone, title or location: that is a completeness gap, and only the email field charges format points when absent because a lead row without an address has no email channel.
The overall list score is the average row completeness and the average row format blended with the profile weights, then rounded. The two component scores are shown as whole numbers, but the overall score is blended before rounding, so recomputing it from the displayed components can differ by one point. If no row has a usable email, the result cannot exceed 25 regardless of how complete the other columns are. The final number maps to the same grade bands used across the site: A = 85–100 Excellent, B = 70–84 Good, C = 55–69 Needs work, D = 40–54 Weak, F below 40 Poor.
Completeness score vs format score
Completeness
Completeness is about usable coverage. A value must be present, not a placeholder, and pass its basic sanity check before it earns field weight. An email with a typo therefore loses the email share of completeness as well as format points; the two measurements answer different questions but neither pretends a broken value is complete. The field coverage panel shows the same information field by field: how many rows have a full-credit value, and how many have partial credit. Partial credit is possible only for the name field when first and last name are separate columns.
Format
Format measures the defects in values that exist. A missing phone number costs no format points because completeness already records the gap; an invalid one costs 10. The email field is the exception on both sides: a missing or invalid email also costs 40 format points, because a lead row without a usable address has no email channel.
Email checks: what they prove and what they do not
The email check validates shape: one local part, one @, a domain with at least one dot, a plausible top-level domain, no spaces, and no leading, trailing or doubled dots in the local part. It recognises a small set of reserved test domains and a finite list of disposable providers. It also separates role-based inboxes and free-mail domains into informational findings.
A disposable address is not counted as usable even when its syntax is valid, because the inbox is designed to disappear. None of this proves an inbox exists: the tool does not connect to a mail server, does not perform SMTP verification, does not detect catch-all domains and cannot tell whether a mailbox is full, abandoned or a spam trap. A syntactically perfect address can still bounce. Treat the email score as a cleaning step, not a verification service.
Duplicates, placeholders and column mapping
Duplicate detection compares the trimmed address in lowercase. It does not merge Gmail dots or plus tags, and it does not perform fuzzy matching. If you need those rules, run the list through the lead list deduplicator as well. A duplicate row still contributes to the other metrics, but it loses 15 format points and appears in the row list.
Placeholder detection covers common filler such as N/A, unknown, none, test and a single dash. Those values are treated as missing for completeness. Other-field placeholders cost 10 format points once per row; a placeholder in the email cell costs 40, because the row then has no usable address. Reserved domains such as example.org are treated as invalid emails, not placeholders, because they look like real addresses but cannot belong to a real prospect.
Column mapping is automatic. With a header row, common names such as Email, Work Email, First Name, Company, Job Title, Mobile and Website are recognised. If no email or phone column is recognised, those two fields get one content-based fallback; other unknown columns are ignored rather than guessed. Without a header row, the tool sniffs every column by content, including full names, titles and company suffixes, so the mapping is best-guess. Add a header row when the exact mapping matters.
Worked examples
The three samples built into the tool produce the following results. These are outputs from the code on this page, not benchmarks from real campaigns.
- Messy outreach CSV, 10 rows: 78 / 100, B · Good. Two invalid emails, one duplicate, one disposable domain and one missing email.
- Plain email list, Data hygiene profile, 7 rows: 90 / 100, A · Excellent. One malformed address, one duplicate and one free-mail address; six of seven addresses are usable.
- Clean outreach CSV, 6 rows: 99 / 100, A · Excellent. No row issues; one row has no phone number, so completeness stops just short of 100.
The messy sample scores lower because of invalid emails, a duplicate, a disposable domain, a missing email, placeholder values and several incomplete rows. The plain email list sample loads the Data hygiene profile, so it is scored on email only and can score well despite having no names or companies. The clean sample still loses a little completeness because one row has no phone number.
Common list problems this exposes
- Role inboxes. A list built from
info@andsales@addresses reaches shared inboxes, not people. It is valid data but weak for personalised outreach. - Free-mail domains. Consumer mailboxes are legitimate, but a B2B list with a high share of them may be a consumer list or a mixed source.
- Placeholder values. Rows exported from a CRM often contain
N/Aorunknownwhere a field was never filled. - Domain mismatches. An email at one company and a website at another usually means a shifted column or a bad merge.
- Missing titles. A list can be perfectly valid without job titles, but personalisation and segmentation suffer.
- Invalid phone formats. Digit counts catch truncated numbers, and the letter check catches text such as “call me”.
- Duplicates. Case differences hide repeated contacts; the tool normalises case before comparing.
Limitations
- The score is a heuristic opinion about data quality, not a deliverability guarantee and not a prediction of reply rates.
- Email checks are syntactic. There is no SMTP handshake, mailbox check, catch-all detection or spam-trap lookup.
- The email syntax check is ASCII-oriented. Internationalized domains and quoted local parts can be marked invalid even when a mail system would accept them.
- Free-mail and disposable lists are finite. A provider that is not in the list is judged on syntax alone.
- Column mapping is automatic. Headerless lists and unusual header names can map a field to the wrong column; check the mapping chips before trusting a score.
- Duplicate detection is an exact case-insensitive email match. It does not merge Gmail dots or plus tags and does not use fuzzy name matching.
- Phone validation counts digits and rejects letters. It does not confirm that a number is assigned, reachable or in the right country format.
- Only the first 5,000 data rows and the first 600,000 characters are scored in one pass; the tool says so when it trims input.
- The tool does not check consent, lawful basis or opt-out status. Data quality and compliance are different questions.
Frequently asked questions
Does the tool upload or store my lead list?
No. It is plain HTML, CSS and JavaScript running in your browser. There is no server request, account, cookie or local storage. Your paste never leaves the page.
What score should I aim for?
Use the grade as a sorting tool, not an industry standard. A and B mean the list is usable after a spot check. C means specific fields or rows need work. D and F mean the list will need cleaning before it can support personalised outreach. The profile matters: a plain email list can score well under Data hygiene and poorly under Outreach record without anything being wrong with it.
Why did my score change when I switched profiles?
Each profile uses different field weights and a different completeness/format blend. Data hygiene scores only the email field, so names and companies cannot drag it down. Outreach record expects the full set, so missing columns cost completeness points. The score is not comparable across profiles.
Does a valid email mean the address will deliver?
No. Syntax checks catch malformed values, not dead mailboxes. A valid-looking address can still bounce, and a catch-all domain can accept mail for addresses that do not exist. Use a verification service when bounce rate matters.
Can it score a headerless CSV?
Yes, with limits. The tool sniffs columns by content for email, phone, website, job title, a full name and company suffixes. Names, companies and titles are the least reliable without a header. If the mapping chips look wrong, add a header row or set Header row to "No header row" and rely on the detected mapping.
How many rows can it handle?
Up to 5,000 data rows or 600,000 characters per paste. Anything beyond that is trimmed and the report says which limit was reached. Split larger lists into chunks to score every row.
Does it remove duplicates or fix my file?
No. It scores and reports. Use the lead list deduplicator to merge duplicate rows, the bulk domain cleaner to normalise website columns, and your CRM or spreadsheet to apply the fixes.
Related tools
- Lead list deduplicator — merge rows on email or domain after this audit
- Bulk domain cleaner — strip protocols and paths before scoring the website column
- Email pattern detector — infer a company’s address pattern from a few known contacts
- Business email permutator — build candidate addresses for a domain you already trust
- Lead scoring calculator — score fit and intent after the data itself is clean
- Cold email subject line grader — check the message once the list is ready
Next step
A clean list is the start of outbound, not the whole system. mizanursguide.com builds B2B lead generation that pairs a scored, deduplicated list with research, messaging and follow-up. See how we build lead generation systems that start from data worth contacting.
