[{"data":1,"prerenderedAt":230},["ShallowReactive",2],{"learn-lesson-matching-products-across-sites-why-matching-is-the-hard-part":3},{"course":4,"lesson":67,"index":197,"outline":198,"prev":228,"next":229},{"slug":5,"order":6,"level":7,"time":8,"card_text":9,"seo":10,"hero":16,"outcomes":26,"who":35,"syllabus":46,"faq":49,"lessonCount":66},"matching-products-across-sites",5,"You have data from more than one site","6 lessons, about 70 minutes","Collecting prices is the easy half. Deciding that this product on your site and that product on a competitor's are the same thing is where price monitoring actually succeeds or fails. Identifiers, fuzzy matching, variants, confidence scores and how to measure your match rate without flattering yourself.",{"title":11,"description":12,"keywords":13,"og_title":14,"og_description":15},"Matching Products Across Sites: A Free 6-Lesson Course","How to match the same product across different retailers. GTIN and EAN matching, fuzzy title matching, variants and multipacks, confidence scoring, review queues, and measuring match rate honestly. Free, ungated.","product matching, product data matching, gtin matching, ean barcode matching, fuzzy product matching, sku mapping, competitor price matching, product catalogue matching","A free course on matching the same product across different retailers","Six written lessons on product matching: identifiers first, fuzzy matching when there is no barcode, variants and multipacks, confidence scores and review queues.",{"badge":17,"title":18,"subtitle":19,"cta_primary":20,"cta_secondary":23},"Course five","Match the same product across different sites","A price comparison is a claim that two things are the same thing. Almost every disappointing price monitoring project fails here rather than at collection: the prices were fine and the matches were not. This course is about doing the matching properly — leaning on identifiers where they exist, being honest about confidence where they do not, and measuring the result in a way that does not flatter you.",{"label":21,"url":22},"Start with lesson one","/learn/matching-products-across-sites/why-matching-is-the-hard-part",{"label":24,"url":25},"See the data a run returns","/custom-scrapers",{"title":27,"items":28},"What you will be able to do",[29,30,31,32,33,34],"Explain why matching, not collection, is where price monitoring projects fail","Use GTIN, EAN, UPC and MPN correctly, including the checks that stop a bad identifier poisoning a match","Build a defensible fuzzy match for the majority of products that carry no usable barcode","Handle variants, bundles and multipacks without silently comparing a three-pack to a single unit","Attach a confidence score to every match and route the uncertain ones to a human","Measure your match rate with a denominator that tells the truth",{"title":36,"for_title":37,"for":38,"not_title":42,"not_for":43},"Who this is for","Written for",[39,40,41],"Pricing and e-commerce teams who have competitor data and cannot trust the comparisons","Developers building the matching layer and looking for the failure modes before they find them in production","Anyone evaluating a price monitoring vendor who wants to ask better questions than \"how many sites do you cover\"","Not written for",[44,45],"Teams who do not yet have data from more than one source — collection comes first, see course one or three","Anyone expecting a machine learning tutorial. The techniques here are mostly deterministic, because deterministic matches are the ones you can defend to a pricing manager.",{"title":47,"intro":48},"The six lessons","Lessons two and three are the mechanics. Lesson four is the one that catches most teams out, and lesson six is the one that stops you believing your own numbers.",{"badge":50,"title":51,"description":52,"items":53},"FAQ","Before you start","The questions that come up as soon as somebody looks closely at a match table.",[54,57,60,63],{"title":55,"description":56},"What match rate should I expect?","It depends almost entirely on the category, and anyone who quotes you a single number across all categories is not being careful. Electronics and groceries carry barcodes and match well. Fashion, furniture and bikes are hard because the same frame is sold under different model names with different component specs. We have seen a real project stall at 18% on bicycles, which was a correct measurement of a genuinely hard category rather than a broken system.",{"title":58,"description":59},"Can I just match on product title?","You can, and you will get a result that looks plausible and is wrong often enough to be dangerous. Lesson three is about doing it properly when there is no alternative, which there frequently is not. The important part is not the string algorithm — it is attaching a confidence score and refusing to auto-publish the weak ones.",{"title":61,"description":62},"Should a human be in the loop?","Yes, for the middle band. The strong matches do not need a person and the hopeless ones do not deserve one. The value of a review queue is entirely in how well you have sorted it, which is lesson five.",{"title":64,"description":65},"Is this specific to Scrapewise?","No. Lesson five mentions how we structure a review queue, and that lesson is labelled. The rest is method and applies to a spreadsheet, a Python script or any vendor's matching engine.",6,{"slug":68,"nav_title":69,"title":70,"summary":71,"time":72,"needs_account":73,"seo":74,"blocks":78,"takeaways":188,"next_step":193},"why-matching-is-the-hard-part","Why matching is hard","Why matching is the hard part","The same object is described differently by every retailer that sells it, and the differences are not noise — they are deliberate.","10 min",false,{"title":75,"description":76,"keywords":77},"Why Product Matching Is Harder Than Scraping Prices","Retailers describe the same product differently on purpose. Why that makes matching the real bottleneck in price monitoring, and what a wrong match actually costs.","product matching, product data matching, price comparison accuracy, competitor price monitoring, catalogue matching",[79,84,89,122,127,133,143,174,183],{"type":80,"paragraphs":81},"prose",[82,83],"Teams start price monitoring projects worrying about collection. Can we read the pages, will we get blocked, how fresh will it be. Those are solvable and the answers are mostly engineering.","Then the data arrives and the real problem shows up: you have forty thousand rows from six retailers and no reliable way to say which of them refer to the same object. Every comparison, every price index, every alert depends on that mapping being right, and nothing in the collection layer helps you build it.",{"type":80,"title":85,"paragraphs":86},"The differences are deliberate",[87,88],"It is tempting to treat the variation in how retailers describe products as sloppiness. It is not. A retailer's product title is a marketing asset — it is tuned for their own search, their own SEO, their own customer. Two shops selling the identical item have active reasons to describe it differently, and a retailer with an exclusive-looking model name has a reason to make comparison harder.","So you are not cleaning up an accident. You are reconciling six catalogues that were each built for a different purpose, by people with no interest in them lining up.",{"type":90,"title":91,"intro":92,"headers":93,"rows":97},"table","One product, six retailers","A composite built from patterns we see constantly. Every column is a correct description of the same physical object.",[94,95,96],"Retailer","Title as published","What makes it hard",[98,102,106,110,114,118],[99,100,101],"A","Bosch Professional GSB 18V-55 Combi Drill (2x4.0Ah)","Battery spec in the title, pack contents implied",[103,104,105],"B","GSB18V-55 Cordless Hammer Drill Driver Kit","No brand word, model number unspaced, different category noun",[107,108,109],"C","Bosch Blue 18V Combi Drill + 2 Batteries + Case","Sub-brand instead of model, contents as a list",[111,112,113],"D","Bosch GSB 18V-55 (Body Only)","Looks like the same product. It is not — no batteries.",[115,116,117],"E","Akkuschrauber Bosch GSB 18V-55 Professional","Different language, different word order",[119,120,121],"F","Bosch 06019H5302","Manufacturer part number as the entire title",{"type":123,"variant":124,"title":125,"text":126},"callout","warning","Row D is the whole lesson","Of the six, five are the same purchasable thing and one is not. Retailer D is the body alone — no batteries, no charger, roughly half the price. A title-similarity match will score it extremely high against the others, and the result is an alert telling your pricing team that a competitor has undercut you by 48%. Somebody then reprices against a product that does not exist. The worst matches are not the ones that look obviously wrong.",{"type":80,"title":128,"paragraphs":129},"What a wrong match costs, specifically",[130,131,132],"A missed match costs you visibility. You do not see a competitor's price, your coverage is lower than you thought, and the index is computed over a smaller set. That is a real cost and it is recoverable.","A false match costs you money and credibility. It produces a confident, precise, wrong number, and that number goes into a repricing rule or a board slide. The first time a pricing manager finds one, they stop trusting the whole feed — and they are right to, because they have no way to know which other rows are wrong.","This asymmetry should drive the entire design. Being conservative and leaving a product unmatched is nearly always cheaper than guessing. Systems tuned to maximise match rate are tuned for the wrong thing.",{"type":134,"title":135,"intro":136,"items":137},"list","The five ways the same product diverges","Worth internalising, because each one needs a different handling strategy.",[138,139,140,141,142],"Naming — brand word present or absent, model number spaced or not, category noun varying","Language and locale — the same product in a different language, with different units and decimal separators","Pack and bundle — single unit, multipack, with-accessories, body-only","Variant — colour, size, capacity, which may or may not affect price","Identifier availability — some retailers publish a barcode, most do not, and some publish the wrong one",{"type":90,"title":144,"intro":145,"headers":146,"rows":150},"Worked example: what one false match costs","A single wrong pair, followed by an automatic repricing rule, over thirty days. Their listing is the 1-litre bottle and yours is the 2-litre; the two titles agree on brand, product and very nearly every word, which is why this match scored higher than most of your correct ones. You sell 40 units a day at €18.00 with €5.40 of margin, so the product costs you €12.60.",[147,148,149],"","Before the match","After the rule acts",[151,155,159,163,167,171],[152,153,154],"Their price, as matched","—","€9.95, being the 1-litre bottle",[156,157,158],"Your price","€18.00","€9.85",[160,161,162],"Margin per unit","€5.40","−€2.75",[164,165,166],"Units in thirty days","1,200","1,200, and probably more",[168,169,170],"Margin over thirty days","€6,480","−€3,300",[172,147,173],"Swing","€9,780, on one SKU",{"type":134,"title":175,"intro":176,"items":177},"What usually goes wrong","Matching goes wrong in the design rather than in the code, and nearly always in the same direction.",[178,179,180,181,182],"Tuning for match rate. It is the metric that rewards exactly the behaviour above, because the pairs it adds last are the ones most likely to be wrong.","Treating a missed match and a false match as the same size of error. One costs you visibility on a line; the other costs margin, quietly and continuously.","Assuming the collection layer helps. A flawless scrape of a wrong pair is a precisely wrong number, which is considerably harder to notice than a missing one.","Expecting retailers' titles to converge. They are marketing assets with a search term inside them, written differently on purpose, and no amount of cleaning turns them into a shared key.","Deferring the question until the data has arrived. Matching decides whether the feed is intelligence or fiction, so it belongs in the plan rather than in the clean-up.",{"type":80,"title":184,"paragraphs":185},"The order of operations for the rest of the course",[186,187],"Identifiers first, because when they exist they are nearly free and nearly certain. Then fuzzy matching for everything else, with a confidence score attached rather than a yes or no. Then variant and pack handling, which is the step that catches row D. Then a review queue for the band in the middle. Then measurement, so you know what you actually have rather than what you hope you have.","Skipping straight to fuzzy matching is the common mistake, and it means doing hard probabilistic work on products where a barcode would have answered the question outright.",[189,190,191,192],"Collection is engineering; matching is the bottleneck, and nothing in the collection layer helps with it.","Retailers describe products differently on purpose — their titles are marketing assets, not catalogue keys.","A missed match costs visibility. A false match costs money and credibility, and is often the highest-scoring one.","Design conservatively: unmatched is cheaper than wrongly matched, so do not tune for match rate.",{"text":194,"label":195,"url":196},"Next: the cheap certain wins — barcodes, part numbers, and the checks that keep them honest.","Lesson 2: identifiers first — GTIN, EAN, MPN","/learn/matching-products-across-sites/identifiers-first-gtin-ean-mpn",0,[199,200,206,212,217,223],{"slug":68,"navTitle":69,"title":70,"summary":71,"time":72,"needsAccount":73},{"slug":201,"navTitle":202,"title":203,"summary":204,"time":205,"needsAccount":73},"identifiers-first-gtin-ean-mpn","Identifiers first","Identifiers first: GTIN, EAN, UPC and MPN","What each identifier means, how to validate one before trusting it, and the three ways a correct-looking barcode still produces a wrong match.","11 min",{"slug":207,"navTitle":208,"title":209,"summary":210,"time":211,"needsAccount":73},"when-there-is-no-barcode","No barcode","Matching when there is no barcode","Normalisation, blocking, scoring on multiple signals, and why the string similarity algorithm matters far less than everyone assumes.","12 min",{"slug":213,"navTitle":214,"title":215,"summary":216,"time":211,"needsAccount":73},"variants-bundles-and-multipacks","Variants and packs","Variants, bundles and multipacks","The highest-scoring wrong matches all live here. Normalising to a comparable unit, and knowing when two things are genuinely not comparable.",{"slug":218,"navTitle":219,"title":220,"summary":221,"time":205,"needsAccount":222},"score-confidence-and-build-a-review-queue","Confidence and review","Confidence scores and a review queue worth using","Why one score is not enough, how to set the two thresholds, and how to order a queue so an hour of human attention is worth having.",true,{"slug":224,"navTitle":225,"title":226,"summary":227,"time":205,"needsAccount":73},"measure-your-match-rate-honestly","Measure it honestly","Measure your match rate honestly","The denominator everyone picks is the flattering one. Precision, recall, a hand-labelled sample, and what to do with a number you do not like.",null,{"slug":201,"navTitle":202,"title":203,"summary":204,"time":205,"needsAccount":73},1791047867316]