Drop this in as a replacement for your name_family helper and re-run:
def name_family(name, email_dom, url):
n = (name or "").lower()
u = (url or "").lower()
ed = (email_dom or "").lower()
# Large shard clusters
if n.startswith("dropcatch.com "): return "DropCatch shard"
if "namebright.com" in u or "turncommerce" in u or ed.endswith("namebright.com"): return "NameBright cluster"
if "sav.com" in u or ed.endswith("sav.com"): return "Sav.com cluster"
if n.startswith("gname ") or "gname." in u or ed.endswith(("gname.com","gname.net")): return "Gname cluster"
if "wdomain" in u or ed.endswith("wdomain.com"): return "WDomain cluster"
if n.startswith("17 domain") or "17domain" in u or ed.endswith("17ex.com"): return "17 Domain cluster"
if "juming" in u or ed.endswith("juming.com"): return "Juming cluster"
if "dotmedia.com" in ed or "xz.com" in u: return "DotMedia / XZ cluster"
if "networksolutions.com" in u or ed.endswith("newfold.com") or n.startswith(("snapnames","namepal.com","! #1 host")):
return "Newfold cluster" # NetSol/Bluehost/Launchpad shards
if "godaddy" in u or ed.endswith("godaddy.com") or "gcd.com" in u or "go " in n and " domains, llc" in n:
return "GoDaddy retail / country shards"
# Retail & independents
if "epik.com" in u or ed.endswith("epik.com"): return "Epik"
if "namecheap" in u or ed.endswith("namecheap.com"): return "Namecheap"
if "dynadot" in u or ed.endswith("dynadot.com"): return "Dynadot"
if "namesilo" in u or ed.endswith("namesilo.com"): return "NameSilo"
if "name.com" in u or ed.endswith("name.com"): return "Name.com"
if "enom.com" in u or ed.endswith("enom.com"): return "eNom"
if "tucows" in u or ed.endswith(("opensrs.com","tucows.com")) or "ascio" in u: return "Tucows / OpenSRS / Ascio"
if "bookmyname" in u or ed.endswith("free.org"): return "BookMyName / Scaleway"
if "easydns" in u or ed.endswith("easydns.com"): return "easyDNS"
if "pananames" in u or ed.endswith("pananames.com"): return "Pananames"
if "registrygate" in u: return "RegistryGate"
if "oray.com" in u: return "ORAY"
if "yovole.com" in u: return "YOVOLE"
if "ourdomains.com" in u: return "Ourdomains"
if "ename" in u or ed.endswith(("ename.com","ename.net")): return "eName"
if "bizcn.com" in u: return "Bizcn"
if "22.cn" in u or ed.endswith("22.cn"): return "22.cn"
if "alibaba" in u or "net.cn" in u or "wanwang.aliyun.com" in u: return "Alibaba Cloud / HiChina"
# Brand-protection / enterprise
if "markmonitor" in u: return "MarkMonitor"
if "registrarsafe" in u or ed.endswith("registrarsafe.com"): return "RegistrarSafe (Meta)"
if "cscdbs" in u or ed.endswith(("cscglobal.com","cscinfo.com")): return "CSC"
if "lexsynergy" in u: return "Lexsynergy"
if "webnic" in u or ed.endswith("webnic.cc"): return "WebNIC"
if "openprovider" in u: return "Openprovider"
if "internetx.com" in u or ed.endswith("internetx.com"): return "InterNetX"
# Regionals & notable operators
if "nic.ru" in u or ed.endswith("nic.ru") or "ru-center" in n: return "RU-CENTER"
if "r01.ru" in u or ed.endswith("r01.ru"): return "R01"
if "register.it" in u or ed.endswith("register.it"): return "Register.it"
if "aruba.it" in u or ed.endswith("aruba.it"): return "Aruba"
if "combell.com" in u or ed.endswith("combell.com"): return "Combell"
if "domainnameshop" in u or ed.endswith("domainnameshop.com"): return "Domeneshop"
if "donweb" in u or "dattatec" in u: return "Donweb / Dattatec"
if "dondominio" in u or ed.endswith("scip.es"): return "DonDominio / SCIP"
if "dinahosting" in u: return "Dinahosting"
if "automattic" in u or "wordpress.com" in u or ed.endswith("wordpress.com"): return "WordPress.com / Automattic"
if "nominetregistrar" in u: return "Nominet Registrar Services"
if "gabia.com" in u: return "Gabia"
if "hosting.kr" in u: return "Hosting.kr (Megazone)"
if "kagoya.jp" in u: return "Kagoya"
if "pavietnam.vn" in u: return "PA Vietnam"
if "idwebhost.com" in u: return "IDwebhost (Jogjacamp)"
if "domains.co.za" in u: return "Domains.co.za (Diamatrix)"
if "neubox" in u: return "Neubox"
if "theregistrarcompany.com" in u: return "The Registrar Company"
if "registrygate.com" in u: return "RegistryGate"
# Fallback
return ""
This will also collapse lots of the Newfold/NetSol and GoDaddy “country” shards, plus the DotMedia/XZ.com set you pasted (Threadagent, XZ.com, DomainName Highway, etc.).
Want me to add any more buckets (e.g., RU brands beyond RU-CENTER/R01, or more EU hosts like LWS, Register4Less, Domeneshop variants)?