A scientist searches your store for "anti-CD20."
Your catalog returns 14 results.
Twelve of them are the same antibody.
Different clone names. Different pack sizes. Different supplier strings from three acquisitions you never reconciled. One is spelled "CD-20." One is filed under the gene, one under the protein, one under a brand name nobody uses anymore. The scientist doesn't see "the same antibody, 14 ways." They see noise. They bounce. They buy from whoever's catalog was legible.
Most reagent companies think this is a search problem. It isn't. Your system literally does not know that those 14 rows are the same biological reality — and you can't fix that with a better search bar, because the relationships aren't in your data. They're in the heads of your three most senior product managers, who are retiring.
Why "anti-CD20" is a trap in the first place
Start with the target. The gene that everyone calls CD20 has the HGNC-approved symbol MS4A1 ("membrane spanning 4-domains A1," HGNC:7315). "CD20" is listed there as a previous symbol, alongside alias symbols including B1, Bp35, Leu-16, FMC7, and S7. [1] So one biological target legitimately appears in catalogs as MS4A1, CD20, CD-20, B1, Bp35, and Leu-16 — before anyone has even chosen a clone. Each of those strings is "correct." None of them is the same string. A keyword index treats them as six different things.
Now multiply by the catalog. The commercial antibody market has gone from roughly 10,000 products about fifteen years ago to more than six million today. [2] At that scale, no human can hold the map of "which of these are actually the same reagent." And the map matters: roughly half of commercial antibodies fail to meet basic characterization standards, with estimated losses of $0.4–1.8 billion per year in the US alone. [2] The famous cautionary tale — a lab that spent about $500,000 and two years before discovering its "CUZD1" assay was actually measuring CA125 — is, at bottom, an entity-resolution failure: two different things treated as one. [2]
The industry already admitted this — and built an identifier for it
The reason RRIDs (Research Resource Identifiers) exist is precisely that catalog numbers and vendor names are not stable identities. The Antibody Registry was designated the authority for antibody RRIDs so that a single resolvable ID "tracks with this reagent throughout its lifetime, no matter how its catalog number or vendor may change." [3] As of 2022 the Registry held over 2.5 million curated antibody records from ~327 vendors — and had already manually consolidated 11,976 records found to be duplicates, while warning that "the practice of relabeling product identifiers, including clone numbers, is still far too common." [3]
Read that last part again. The people whose entire job is canonicalizing antibodies are telling you that the same clone gets relabeled across vendors so routinely that a scientist can unknowingly "validate" an antibody against itself. [4] If the global registry has to do this by hand, your e-commerce catalog is not doing it at all.
Acquisitions are duplicate-SKU machines
Here's where it compounds for any company that has grown by acquisition. When Danaher bought Abcam for about $5.7 billion in 2023 [5] — and Abcam had itself absorbed Epitomics and BioVision, while Thermo Fisher had absorbed eBioscience, and Merck had absorbed Sigma-Aldrich [6] — every one of those mergers folded one catalog into another. The OEM relationships, the relabeled clones, the overlapping SKUs: all inherited, none reconciled. The result is a catalog where the same physical antibody can sit under four legacy supplier strings, and your system has no idea.
Why this is an entity-resolution problem, not a search problem
Entity resolution is the task of deciding which records — across systems, vocabularies, and owners — refer to the same real-world thing: the same molecule, the same device, the same patient, the same product. It sounds like deduplication. It isn't. Deduplication assumes the duplicates are obvious. Entity resolution is the hard version, where the "same thing" wears a different name, code, and owner in every system it touches, and nothing in your data records that they're connected.
Two properties make it genuinely hard. First, it's quadratic: to know whether any record is a duplicate, you in principle have to compare it against every other record. As Papadakis and colleagues put it in the VLDB literature, entity resolution "typically scales to large volumes of data through blocking… each entity has to be compared with all others in order to find its matches." [ER-1] A thousand records is half a million comparisons; a million records is half a trillion. Double the data and you roughly quadruple the work.
Second, the right answer for one record depends on all the others — entity resolution needs global consistency. Whether record A and record B are the same can hinge on what C, D, and E say. This is exactly where throwing a bigger language model at it disappoints: large models reason locally, one context window at a time. They will confidently link two records that, seen against the whole dataset, obviously shouldn't be — and miss links that only become clear once you hold the full graph in view. The semantic layer that makes messy data usable isn't built by a model guessing one row at a time. It's built by deciding, consistently and across the whole set, that these N records are one thing.
Who wins the next five years
It won't be the company with the most SKUs. More SKUs, in this world, is often just more unreconciled duplicates — more noise for the scientist to wade through. The companies that win will be the ones whose catalog actually knows what it's selling: that these twelve rows are one antibody, that "CD-20" and "MS4A1" point to the same target, that the clone you acquired in 2019 is the clone you've been selling since 2012 under a different number.
That's not a feature you buy off a shelf. It's a decision you make about whether your data describes products or describes reality.
What's the worst "same product, N records" case you've seen in a reagent catalog?