[{"data":1,"prerenderedAt":268},["ShallowReactive",2],{"learn-lesson-competitor-price-monitoring-match-listings-to-your-catalogue":3},{"course":4,"lesson":68,"index":224,"outline":225,"prev":266,"next":267},{"slug":5,"order":6,"level":7,"time":8,"card_text":9,"seo":10,"hero":16,"outcomes":26,"who":36,"syllabus":47,"faq":50,"lessonCount":67},"competitor-price-monitoring",1,"No coding required","8 lessons, about 90 minutes","From \"we check three competitors by hand on Mondays\" to a feed you trust enough to reprice from. The eight decisions in order, including the two that quietly ruin most projects.",{"title":11,"description":12,"keywords":13,"og_title":14,"og_description":15},"Competitor Price Monitoring: A Free 8-Lesson Course","Build a competitor price monitoring pipeline end to end: pick competitors, find product URLs, extract prices, match to your catalogue, schedule, export, reprice. Free, ungated.","competitor price monitoring, price monitoring course, how to track competitor prices, price tracking pipeline, competitor price tracking tutorial, retail price monitoring","A free course on building a competitor price monitoring pipeline","Eight written lessons on the part nobody covers: matching, data quality, and turning prices into decisions.",{"badge":17,"title":18,"subtitle":19,"cta_primary":20,"cta_secondary":23},"Course one","Build a competitor price monitoring pipeline","Price monitoring looks like a scraping problem for about a week. Then you discover that scraping was the easy part, and the project actually lives or dies on which competitors you picked, whether their listings are really the same product as yours, and whether anyone notices the morning the feed comes back half empty. This course is those eight decisions, in the order you have to make them.",{"label":21,"url":22},"Start with lesson one","/learn/competitor-price-monitoring/what-is-competitor-price-monitoring",{"label":24,"url":25},"Try the free price checker","/tools/free-competitor-price-checker",{"title":27,"items":28},"What you will be able to do",[29,30,31,32,33,34,35],"Say which competitors matter to your margin, and defend the list to a finance director","Collect competitor product URLs without copying them one at a time","Decide which fields you actually need, and which ones are a trap","Judge a match rate honestly, including the denominator that most vendors quietly change","Spot a feed that has silently degraded before a buyer acts on it","Put the numbers where the decision is made, instead of in a dashboard nobody opens","Write a repricing rule that survives contact with a competitor who is out of stock",{"title":37,"for_title":38,"for":39,"not_title":43,"not_for":44},"Who this is for","Written for",[40,41,42],"Pricing, category and e-commerce managers who own the number","Marketplace sellers repricing against a handful of named rivals","Anyone evaluating price monitoring vendors who wants to ask better questions","Not written for",[45,46],"Engineers who want a tutorial on CSS selectors and headless browsers — that is a different and much shorter problem","Anyone looking for a sub-second price feed; nothing here runs faster than daily",{"title":48,"intro":49},"The eight lessons","Each one ends where the next one starts. Four lessons are pure method; the ones that walk through our product say so in their own heading.",{"badge":51,"title":52,"description":53,"items":54},"FAQ","Before you start","Questions people ask in the first ten minutes.",[55,58,61,64],{"title":56,"description":57},"Do I need a Scrapewise account to follow this?","For five of the eight lessons, no. Lessons three, four and seven walk through doing the thing in our portal and are marked as needing an account. A new account comes with five free requests and no card, which covers those lessons.",{"title":59,"description":60},"Is scraping competitor prices legal?","This is not legal advice. Reading a publicly visible price is not the same question as storing it, republishing it, or building a product on it, and the answer changes by jurisdiction and by the site's own terms. Lesson two covers how to keep the collection narrow enough that the question stays simple, but take your own advice before you start.",{"title":62,"description":63},"How often can prices be checked?","This course assumes a daily cycle, which is what most retail pricing decisions actually run on. If you need minute-level reaction — a marketplace buy box, an airline fare — the architecture in lesson six is wrong for you and you want an event-driven system instead.",{"title":65,"description":66},"What if my competitors are not online retailers?","The method holds for any public price list: distributors, wholesalers, rental catalogues. What changes is lesson three, because those sites rarely have a clean product sitemap. Lesson three covers that case directly.",8,{"slug":69,"nav_title":70,"title":71,"summary":72,"time":73,"needs_account":74,"seo":75,"blocks":79,"takeaways":215,"next_step":220},"match-listings-to-your-catalogue","Matching to your catalogue","Matching competitor listings to your own catalogue","The stage that decides whether your feed is intelligence or fiction, and the denominator trick that makes bad match rates look good.","13 min",false,{"title":76,"description":77,"keywords":78},"Product Matching: Linking Competitor Listings to Your SKUs","How product matching really works, why match rate is meaningless without its denominator, and the four tiers of evidence from EAN down to a model's guess.","product matching, match competitor products, ean matching, product data matching, match rate, sku matching price monitoring",[80,85,93,98,131,137,156,161,201,211],{"type":81,"paragraphs":82},"prose",[83,84],"This is the lesson that decides whether everything before it was worth doing. A competitor price is only meaningful attached to one of your products, and deciding that their listing and your SKU are the same sellable thing is harder than it sounds, permanently imperfect, and almost never discussed honestly in a sales demo.","It is also the stage where you should be most suspicious of numbers, including your own.",{"type":81,"title":86,"paragraphs":87},"Four tiers of evidence",[88,89,90,91,92],"Matches are not binary. They sit on a ladder of confidence, and a well-run pipeline knows which rung each row is on.","Tier one is a shared global identifier: EAN, GTIN, UPC, ISBN. If both sides publish one and they agree, you are done — this is the only tier that is genuinely certain, and it is why lesson four told you to grab an EAN whenever the page shows one.","Tier two is a manufacturer part number plus brand. Strong, but MPNs get typed by hand into product feeds, so expect whitespace, hyphens and case to differ, and expect a small number of outright errors on both sides.","Tier three is attribute matching: brand, model, capacity, colour, pack size. This is where most real matching happens, and where most real errors live. Two litres against one litre, a twelve-pack against a single, last year's model number against this year's.","Tier four is fuzzy title similarity, usually with an embedding model. Useful for generating candidates a human then confirms. Not useful as a final answer, because it is confidently wrong in exactly the cases that cost the most money.",{"type":94,"variant":95,"title":96,"text":97},"callout","warning","The denominator question","\"We achieve a 92% match rate\" is not a claim until you ask: 92% of what? Of your whole catalogue, or of the products the competitor actually stocks, or of the products where both sides published an EAN? Those three denominators can differ by a factor of four on the same data. When a vendor quotes a match rate, ask what the bottom of the fraction is — and ask yourself the same question about your own reporting.",{"type":99,"title":100,"intro":101,"headers":102,"rows":106},"table","What a realistic match rate looks like","Measured against the honest denominator: products the competitor actually carries. These are the bands we see; your category decides where you land.",[103,104,105],"Category","Typical achievable","Why",[107,111,115,119,123,127],[108,109,110],"Books, media, games","95%+","Universal identifiers, published by everyone, rarely wrong",[112,113,114],"Branded electronics","85-95%","MPNs are usually present and usually correct",[116,117,118],"Grocery and FMCG","70-90%","EANs are common, but pack size and multipacks create genuine ambiguity",[120,121,122],"Fashion","40-70%","Season codes, colour names and exclusive colourways. Hard, and honestly hard.",[124,125,126],"Bikes, furniture, configurables","30-60%","Variants and bundles mean \"the same product\" often is not a well-defined idea",[128,129,130],"Own-brand","0%","There is nothing to match to. Exclude at scope time, per lesson two.",{"type":81,"title":132,"paragraphs":133},"Fix your own data first",[134,135,136],"The instinct is to blame the competitor's messy listings. In our experience the larger share of the problem is on the home side, and it is cheaper to fix.","Missing EANs in your own catalogue are the biggest single cause of poor matching, and most retailers have more holes than they think — the field exists, it is populated for 60% of lines, and nobody has looked. Pack sizes buried inside a free-text title rather than held as a number are the second. Duplicate internal SKUs for the same physical product are the third: the competitor has one listing, you have three, and your match rate is immediately capped at a third for those lines.","Before investing in better matching, spend a day measuring: what proportion of your in-scope SKUs have a populated, valid EAN? That number predicts your ceiling better than any vendor's algorithm.",{"type":138,"title":139,"items":140},"steps","A workable process",[141,144,147,150,153],{"title":142,"text":143},"Match on identifiers first, and stop there where you can","Run the EAN and MPN passes, mark those rows as high confidence, and take them out of the pool. Depending on category this is anywhere from a third to nearly all of your matches, and it needs no review.",{"title":145,"text":146},"Generate candidates for the rest","Use title and attribute similarity to propose, say, the three most likely counterparts for each unmatched product. The goal here is recall, not precision — you want the right answer to be in the list, not to be alone in it.",{"title":148,"text":149},"Have a human confirm the candidates","Someone who knows the category can confirm or reject a proposed match in a couple of seconds from a title, an image and a price. A few hundred of those is an afternoon, it is a one-off cost per product, and the decisions are reusable forever.",{"title":151,"text":152},"Store the confirmed match, not the algorithm","Once a human has said \"their URL X is our SKU Y\", that is a fact you own. Persist it. Re-deriving it on every run is how a pipeline that worked last month starts producing different answers this month for no visible reason.",{"title":154,"text":155},"Review the unmatched pile monthly","Unmatched is not a failure state, it is a queue. It also carries a signal worth reading: a sudden growth in unmatched rows for one competitor usually means they have relabelled a range or changed their title format, not that your matcher broke.",{"type":81,"title":157,"paragraphs":158},"Decide what to do with a partial match",[159,160],"The genuinely difficult cases are not the failures, they are the near-misses. Their listing is the same model in a different colour. Theirs is a bundle with a case included. Theirs is the 2024 model and you stock the 2025.","There is no universally correct answer, but there is a correct process: decide the policy once, in writing, with the person who owns pricing — and record the reason a row was matched or excluded, so that six months later somebody can see why the 2024 model was being compared to the 2025 one. An undocumented matching policy becomes folklore within a quarter.",{"type":99,"title":162,"intro":163,"headers":164,"rows":168},"Worked example: the same match rate told three ways","A supplier reports 90%. The buyer counts 58.5%. Neither is lying; they are dividing by different numbers. Take 1,200 of your SKUs run against one competitor. The third figure is the one that belongs in a business case, because it is the only one you can reprice from without a person looking first.",[165,166,167],"Step","Count","What it gives you",[169,173,177,181,185,189,193,197],[170,171,172],"SKUs you sent","1,200","the question you asked",[174,175,176],"Not stocked by this competitor at all","420","780 are even eligible to match",[178,179,180],"Eligible, but could not be resolved to a listing","78","702 matched",[182,183,184],"Of the 702, matched on a shared EAN","430","safe to act on unreviewed",[186,187,188],"Of the 702, matched on title and attributes only","272","needs a human before it moves a price",[190,191,192],"Vendor's headline: 702 ÷ 780","90%","true, and not the number you need",[194,195,196],"Yours: 702 ÷ 1,200","58.5%","coverage of the question you asked",[198,199,200],"Confident coverage: 430 ÷ 1,200","about 36%","what you can actually price from",{"type":202,"title":203,"intro":204,"items":205},"list","What usually goes wrong","Matching is where a feed stops being data and starts being fiction, and it does so without raising anything.",[206,207,208,209,210],"Accepting a match rate with no denominator. Ask \"out of what?\" before the figure is written down anywhere, because once it is in a slide it will be quoted for a year.","Letting tier-three matches move prices. Title similarity puts a 2-litre bottle next to a 1-litre bottle and a 2026 model next to a 2024 one, and both look exactly like a competitor undercutting you by half.","Re-deriving matches on every run. A human confirmed that pair once; if the pipeline rediscovers it nightly it will eventually rediscover it differently, and nobody will be able to say when the number changed.","Fixing the matcher instead of your own data. Missing EANs and inconsistent pack sizes in your own catalogue are usually the largest single cause, and they are the only part of this you fully control.","Counting a variant match as a product match. Their listing is the 128 GB model and yours is the 256 GB: same brand, near-identical title, different thing, and the report says you are 180 euros overpriced.",{"type":94,"variant":212,"title":213,"text":214},"note","Matching is bought separately, usually","Most collection vendors, including us by default, hand you the competitor's rows as the competitor presents them. Tying those rows to your catalogue is a different job with a different cost shape. If a tool implies both are included, find out which denominator they are quoting before you plan around it.",[216,217,218,219],"Matches sit on four tiers of evidence. Only a shared EAN or GTIN is certain.","A match rate without its denominator is not information. Ask what the bottom of the fraction is, every time.","The biggest fixable cause of poor matching is usually your own missing EANs and pack sizes.","Persist human-confirmed matches as facts. Never re-derive them on every run.",{"text":221,"label":222,"url":223},"A matched feed that silently loses a third of its rows is worse than no feed. Next: how to notice.","Lesson 6: scheduling and data quality","/learn/competitor-price-monitoring/schedule-runs-and-catch-silent-failure",4,[226,232,238,245,250,251,256,261],{"slug":227,"navTitle":228,"title":229,"summary":230,"time":231,"needsAccount":74},"what-is-competitor-price-monitoring","What it actually is","What competitor price monitoring actually is","The four stages of a price pipeline, why only two of them are scraping, and the one question to ask before you build anything.","9 min",{"slug":233,"navTitle":234,"title":235,"summary":236,"time":237,"needsAccount":74},"choose-competitors-and-skus","Choosing what to track","Choosing which competitors and which SKUs to track","How to build a list that is small enough to afford and large enough to matter, using margin at risk rather than gut feel.","11 min",{"slug":239,"navTitle":240,"title":241,"summary":242,"time":243,"needsAccount":244},"find-competitor-product-urls","Finding product URLs","Finding every competitor product URL without copying them by hand","Four ways to get a competitor's full product URL list, ranked by how much work they are, and what to do when none of them work.","12 min",true,{"slug":246,"navTitle":247,"title":248,"summary":249,"time":243,"needsAccount":244},"extract-price-stock-and-shipping","Extracting the fields","Getting price, stock and shipping off the page","Which fields to extract, why the sale price is two fields and not one, and the four ways a price appears on a page.",{"slug":69,"navTitle":70,"title":71,"summary":72,"time":73,"needsAccount":74},{"slug":252,"navTitle":253,"title":254,"summary":255,"time":237,"needsAccount":74},"schedule-runs-and-catch-silent-failure","Scheduling and data quality","Scheduling runs and catching silent data loss","How often to actually check, and the four alerts that catch a degrading feed before someone reprices from it.",{"slug":257,"navTitle":258,"title":259,"summary":260,"time":231,"needsAccount":244},"export-to-sheets-bi-and-erp","Getting the data out","Getting the data into Sheets, BI or your ERP","Four delivery routes ranked by how likely they are to actually get used, and the column contract that stops downstream jobs breaking.",{"slug":262,"navTitle":263,"title":264,"summary":265,"time":243,"needsAccount":74},"turn-price-data-into-repricing-rules","From data to decisions","Turning price data into repricing decisions","Why \"match the cheapest\" destroys margin, what a rule needs besides a competitor price, and how to start without automating anything.",{"slug":246,"navTitle":247,"title":248,"summary":249,"time":243,"needsAccount":244},{"slug":252,"navTitle":253,"title":254,"summary":255,"time":237,"needsAccount":74},1791047866786]