Catalog Match Lab
Are these actually the same product?
Compare messy product names using explicit checks for brand, variant, size and pack count.
The problem
Two names can share nearly every word and still describe different products. A cheap 200 ml carton must not be compared with a 1 L carton as if they were interchangeable.
The approach
- Put a simple keyword baseline beside identity checks so a visitor can see why similar words are not enough.
- Normalize a bounded vocabulary, inspect conflicting or missing attributes, and admit uncertainty when identity cannot be established.
- Include only accepted identities in the comparable-price range. Let visitors edit names, import a CSV and export the decisions.
What you can inspect
The pair inspector exposes the normalized attributes and the reason for each decision. A 24-pair fixture evaluation checks deliberately chosen boundaries.
Scope & limitations
Brands, stores and prices are fictional. The offline rules cover the fixture vocabulary; this is neither a trained semantic model nor a representative market benchmark. Live Jev comparison is optional.
Run it locally
Node.js 22 or newer. The default lab needs no API key or cloud account.
git clone https://github.com/alejandrofrank/catalog-match-lab.git
cd catalog-match-lab
npm run devThen open http://127.0.0.1:4311. Follow the repository for optional integrations and verification commands.