Data cleanup · demo

1,093 messy rows → 815 clean, deduplicated companies

A typical B2B lead list merged from expo lists, directories, Google Maps and an old CRM. Cleaned with a reproducible Python script: every change is logged, nothing is silently deleted.

1,093rows in
815unique companies out
278duplicates merged
3,961cell fixes, all logged
721phones in +E.164
788valid emails (34 repaired)

Before → after

Real rows from the run. Red is what came in, green is what goes into the clean sheet.

CompanyCountryPhoneEmailWebsite
GREENFIELD PRINT LLCGreenfield Print LLCUSAUS0013232129833+13232129833officegreenfield-print32.exampleoffice@greenfield-print32.examplewww.greenfield-print32.examplehttps://greenfield-print32.example
SOLVEX TEXTILES SP. Z O.O.Solvex Textiles Sp. z o.o.polandPL+48 201 080 181+48201080181office @solvex-textiles80.exampleoffice@solvex-textiles80.examplehttp://solvex-textiles80.example/https://solvex-textiles80.example
Nordwind Foods llcNordwind Foods LLCamericaUS77895—INFO@NORDWIND-FOODS74.EXAMPLEinfo@nordwind-foods74.examplewww.nordwind-foods74.examplehttps://nordwind-foods74.example
RIVERSTONE DENTAL LTD Riverstone Dental LtdUnited KingdomGB00442715605879+442715605879inforiverstone-dental88.exampleinfo@riverstone-dental88.examplehttps://www.riverstone-dental88.example/contacthttps://riverstone-dental88.example
TATRA DENTAL SP. Z O.O.Tatra Dental Sp. z o.o.polandPL+48 802 955 963+48802955963MAX@TATRA-DENTAL35.EXAMPLEmax@tatra-dental35.exampleTATRA-DENTAL35.EXAMPLEhttps://tatra-dental35.example
original valuefixed value— empty: could not be confirmed, flagged instead of guessed

Rules applied

  1. Company names — trimmed, consistent case, one form of the legal suffix (GmbH, Sp. z o.o., Ltd, LLC, TOV).
  2. Countries — 25 different spellings (Deutschland, u.k., america…) mapped to ISO codes: PL 168 · GB 164 · DE 162 · US 161 · UA 160.
  3. Phones — any format (00…, (…) …-…, spaces) converted to +E.164; wrong length flagged, not invented.
  4. Emails — lowercased, spaces and commas fixed, a missing “@” restored when the domain is known from the website.
  5. Websites — one canonical form https://domain, paths and “www.” removed; domain recovered from email when the site is empty.
  6. Duplicates — matched by domain (or name + country + phone), the most complete record is kept and empty fields are filled from its copies; sources are merged.

Flags for review

559 rows carry at least one note. Grey is informational.

Generic inbox (info@, office@, sales@) — usable, but not a person481
Phone too short or too long — needs a source check65
Email repaired (missing “@” restored from the website domain)34
No phone in any source29
No email in any source26
Email could not be repaired1

What you receive

One Excel file with filters and frozen headers, plus the script, so the same cleanup runs again on next month’s list.

Clean

815 companies, one row each, ready for CRM import.

Flags

Rows that need a human look, with the reason next to each.

Duplicates

Which original rows were merged into which — easy to audit.

Change log

3,961 cell-level edits: row, field, before, after.

All companies, domains (.example) and phone numbers on this page are fictional and generated for the demo.