Terug naar alle artikelen

Supermarkt data voor je app

Een supermarktprijs-app bouwen: begin met een vergelijkbaar mandje, niet met het hele assortiment.

Supermarkt data voor je app

Een app die laat zien waar boodschappen het goedkoopst zijn, klinkt in eerste instantie vrij eenvoudig. Je verzamelt de prijzen van een aantal supermarkten, zet ze naast elkaar en toont vervolgens de voordeligste aanbieder. In de praktijk begint het echte werk pas daarna. Want welk product vergelijk je precies met welk ander product? Hoe ga je om met aanbiedingen, verschillende verpakkingsformaten en huismerken? En wat doe je wanneer een supermarkt een productnaam of verpakking verandert?

Wie een bruikbare supermarkt prijzen app wil bouwen, heeft daarom meer nodig dan een grote hoeveelheid losse prijzen. De selectie van producten en de manier waarop ze worden gekoppeld, bepalen uiteindelijk of een vergelijking iets zegt.

Waarom het hele assortiment scrapen meestal niet nodig is

Een grote supermarkt verkoopt duizenden artikelen. Het lijkt aantrekkelijk om al die productpagina’s voortdurend te controleren, maar voor veel toepassingen is dat niet de verstandigste start. Het verzamelen, verwerken en opslaan van een compleet assortiment kan kostbaar worden. Bovendien verandert zo’n assortiment doorlopend. Producten verdwijnen, nieuwe varianten komen erbij en tijdelijke aanbiedingen krijgen soms een eigen pagina of productcode.

Daar komt een belangrijker probleem bij: veel artikelen zijn helemaal niet rechtstreeks met elkaar te vergelijken.

Een pot pastasaus van 500 gram bij supermarkt A kan bijvoorbeeld een andere samenstelling hebben dan de ogenschijnlijk vergelijkbare pot van 480 gram bij supermarkt B. De ene variant bevat meer tomaat, de andere meer suiker of zout. Alleen de verkoopprijs naast elkaar zetten levert dan een overzicht op, maar nog geen eerlijke vergelijking.

Voor een prijs-app is een zorgvuldig samengesteld mandje meestal waardevoller dan een ongerichte verzameling van honderdduizenden productregels. Kies producten die consumenten vaak kopen en die bij meerdere supermarkten in een vergelijkbare uitvoering verkrijgbaar zijn. Denk aan een liter halfvolle melk, een pak koffie van 500 gram, zes eieren, een kilo rijst of een gangbaar formaat wasmiddel.

Zo blijft de dataset beheersbaar én wordt duidelijker wat een prijsverschil werkelijk betekent.

Een vergelijkbaar boodschappenmandje samenstellen

Een goed mandje bestaat niet alleen uit bekende productnamen. Per artikel moet worden vastgelegd waarop de vergelijking is gebaseerd. Het merk, het gewicht, de inhoud, het aantal stuks en eventueel de productvariant spelen allemaal mee.

Neem frisdrank. Een fles van 1 liter kun je niet zonder meer vergelijken met een fles van 1,5 liter. Een multipack van zes blikjes vraagt weer om een andere berekening. De prijs per liter maakt die verpakkingen beter vergelijkbaar, maar zelfs dan moet worden gecontroleerd of het werkelijk om dezelfde variant gaat. Suikervrij, cafeïnevrij en regulier zijn voor veel gebruikers geen onderling uitwisselbare producten.

Dat geldt ook voor aanbiedingen. Een voordeelverpakking kan deze week de goedkoopste keuze zijn, terwijl een andere supermarkt volgende week een actie met twee halen, één betalen heeft. Een app moet daarom idealiter zowel de normale prijs als de actieprijs bewaren. Ook de begin- en einddatum van een aanbieding zijn belangrijk. Zonder die informatie kan een oude actieprijs ten onrechte als actuele prijs worden getoond.

De waarde zit dus niet alleen in het antwoord op de vraag “waar is dit product het goedkoopst?”, maar ook in de onderbouwing daarvan.

Het goedkoopste product is niet altijd het goedkoopste mandje

Veel gebruikers zullen zoeken naar een concreet product en willen weten bij welke supermarkt het op dat moment het voordeligst is. Dat is een nuttige functie, zeker voor producten die mensen regelmatig kopen of die relatief duur zijn.

Toch vertelt de laagste prijs per artikel maar een deel van het verhaal. Voor één pak koffie kan supermarkt A de beste keuze zijn, terwijl melk, rijst en wasmiddel bij supermarkt B goedkoper zijn. Wie voor ieder product naar een andere winkel moet, bespaart op papier misschien geld, maar verliest die winst al snel aan reistijd of bezorgkosten.

Daarom is het interessant om naast afzonderlijke producten ook een compleet boodschappenmandje te berekenen. Een dergelijke vergelijking sluit beter aan op de manier waarop mensen boodschappen doen. De meeste consumenten zoeken geen supermarkt voor één pak pasta, maar willen weten waar hun gebruikelijke boodschappen onderaan de kassabon het minst kosten.

  • Welke supermarkt het laagste totaalbedrag heeft
  • Hoeveel het mandje daar kost ten opzichte van vorige maand
  • Welke producten verantwoordelijk zijn voor de stijging
  • Welk deel van het verschil door aanbiedingen ontstaat
  • Of één duur artikel het totale resultaat vertekent

Huismerken vragen om een andere benadering

A-merken zijn vaak relatief eenvoudig te volgen. Een pot van hetzelfde merk, met dezelfde inhoud en dezelfde productcode, is meestal herkenbaar op verschillende websites. Bij huismerken ligt dat anders.

Een huismerkproduct van de ene supermarkt is niet automatisch gelijk aan het huismerkproduct van een concurrent. Zelfs wanneer de verpakking en productnaam sterk op elkaar lijken, kunnen receptuur, voedingswaarde, herkomst en kwaliteit verschillen. Een systeem dat zulke artikelen blind aan elkaar koppelt, wekt een nauwkeurigheid die er niet is.

Dat betekent niet dat huismerken buiten de vergelijking moeten blijven. Ze zijn juist belangrijk omdat ze een groot deel van het dagelijkse boodschappenmandje vormen. Wel is het verstandig om duidelijk te maken dat het om vergelijkbare producttypen gaat en niet om identieke producten.

In plaats van “dit is hetzelfde product” kan een app bijvoorbeeld aangeven: “vergelijkbare halfvolle melk, 1 liter” of “huismerk pindakaas, pot tussen 500 en 600 gram”. De gebruiker begrijpt dan beter wat er naast elkaar is gezet.

Prijzen normaliseren voordat je conclusies trekt

De prijs op het schap is niet altijd de beste maatstaf. Verschillende verpakkingsgroottes kunnen een goedkope indruk geven terwijl de prijs per kilo, liter of stuk juist hoger ligt.

Een zak rijst van 750 gram kan goedkoper zijn dan een zak van een kilo, maar per kilo duurder uitvallen. Hetzelfde gebeurt bij wasmiddel, koffie, luiers en multipacks. Daarom is het verstandig om naast de actuele verkoopprijs ook de eenheidsprijs vast te leggen.

Die berekening klinkt simpel, maar vraagt om nette productdata. “6 × 1,5 L”, “1500 ml” en “1.5 liter” betekenen inhoudelijk iets vergelijkbaars, maar staan technisch heel anders geschreven. Zulke waarden moeten eerst worden herkend en omgezet naar een vaste eenheid. Pas daarna kan een betrouwbare vergelijking worden gemaakt.

Dit is precies het soort detail dat gebruikers nauwelijks zien, maar dat bepaalt of ze een app gaan vertrouwen.

Niet alleen prijzen, maar ook producten veranderen

Supermarktdata kan voor meer worden gebruikt dan het aanwijzen van de goedkoopste winkel. Voor marktonderzoek is het interessant om te volgen hoe producten zelf veranderen.

Wordt een verpakking kleiner terwijl de prijs gelijk blijft? Dan kan sprake zijn van krimpflatie. Maar ook subtielere wijzigingen zijn relevant. Een fabrikant kan de hoeveelheid suiker verlagen, een zoetstof toevoegen, een E-nummer verwijderen of juist een nieuw ingrediënt opnemen. Een keurmerk kan verschijnen of verdwijnen. Soms verandert alleen de vormgeving van de verpakking; soms is de inhoud daadwerkelijk aangepast.

Door productnamen, hoeveelheden, ingrediëntenlijsten, voedingswaarden en keurmerken op verschillende momenten vast te leggen, ontstaat een historische dataset. Daarmee zijn vragen te beantwoorden die in een gewone prijsvergelijker buiten beeld blijven.

Hier komen prijsmonitoring en productonderzoek bij elkaar. Een kleinere verpakking is immers niet alleen een productwijziging. Ze beïnvloedt ook de werkelijke prijs die een consument per kilo of liter betaalt.

  • Worden verpakkingen gemiddeld groter of kleiner?
  • Verandert de prijs mee met de inhoud?
  • Welke productgroepen bevatten minder suiker dan een jaar geleden?
  • Worden bepaalde toevoegingen vaker of juist minder vaak gebruikt?
  • Hoe stabiel zijn duurzaamheids- en gezondheidskeurmerken?
  • Wordt een recept aangepast zonder dat de productnaam verandert?

Vergelijken kan alleen met informatie die daadwerkelijk online staat

Gedetailleerde monitoring heeft een praktische grens: de benodigde gegevens moeten op de websites van de gekozen supermarkten staan.

Wanneer drie supermarkten een volledige ingrediëntenlijst publiceren en een vierde alleen de productnaam en prijs toont, kan die vierde niet op hetzelfde detailniveau worden meegenomen. Hetzelfde geldt voor voedingswaarden, keurmerken, herkomstinformatie en exacte verpakkingsinhoud.

Vooraf moet daarom worden onderzocht welke velden consequent beschikbaar zijn. Een vergelijking wordt niet betrouwbaarder door ontbrekende waarden met aannames op te vullen. Soms is het beter om een kleinere groep supermarkten of producten volledig te volgen dan een grote selectie met gaten in de data.

Beschikbaarheid verandert bovendien. Een supermarkt kan de opbouw van productpagina’s aanpassen, informatie naar een uitklapbaar onderdeel verplaatsen of bepaalde gegevens tijdelijk niet tonen. Monitoring vraagt dus ook om controles op de datakwaliteit. Niet alleen de prijzen moeten worden gevolgd; ook het aantal gevonden producten en het aantal ingevulde velden verdienen aandacht.

Afbeeldingen van supermarktwebsites kun je niet zomaar overnemen

Voor een aantrekkelijke app ligt het voor de hand om de productafbeeldingen van supermarktwebsites te gebruiken. Toch is een afbeelding die openbaar op internet staat niet automatisch vrij om opnieuw te publiceren.

Op productfoto’s en ander beeldmateriaal kan auteursrecht rusten. Voor hergebruik kan toestemming of een passende licentie nodig zijn.

Voor ontwikkelaars is dit een punt om vroeg in het project mee te nemen. Een technisch beschikbare imageUrl is nog geen toestemming om de afbeelding op een eigen website of in een commerciële app te tonen.

Mogelijke alternatieven zijn het maken van eigen fotografie, het gebruiken van aangeleverd beeldmateriaal met duidelijke gebruiksrechten of het tonen van tekstuele productinformatie zonder de oorspronkelijke foto opnieuw te publiceren.

Auteursrecht.nlUitleg over het gebruiken van foto’s en afbeeldingen die je op internet vindt.
Business.gov.nlInformatie over copyright en het gebruik van beschermd werk.

Begin klein en controleer wat er misgaat

Een eerste versie van een supermarktprijs-app hoeft geen compleet platform te zijn. Begin bijvoorbeeld met vijftig tot honderd veelgekochte producten bij een beperkt aantal supermarkten. Controleer vervolgens handmatig of de koppelingen kloppen.

Juist in die eerste selectie komen de lastige gevallen naar voren. Een productnaam blijkt veranderd. Een inhoudsmaat staat in de titel bij de ene supermarkt en in de omschrijving bij de andere. Een actieprijs geldt alleen met een klantenkaart. Of een product dat hetzelfde lijkt, bevat toch een andere hoeveelheid.

Die uitzonderingen zijn geen randzaak. Ze vormen de dagelijkse werkelijkheid van supermarktdata. Door ze vroeg te ontdekken, kan het datamodel worden aangescherpt voordat de app wordt uitgebreid.

Pas wanneer de productkoppelingen, eenheidsprijzen en aanbiedingstermijnen betrouwbaar zijn, heeft opschalen echt zin.

Supermarktdata kent veel meer toepassingen dan prijsvergelijking

Een supermarktprijs-app kan consumenten helpen om het goedkoopste product of boodschappenmandje te vinden. Overheden kunnen prijsontwikkelingen in belangrijke productgroepen volgen. Onderzoeksorganisaties kunnen kijken naar veranderingen in verpakkingsgrootte, ingrediënten, voedingswaarden en keurmerken. Ontwikkelaars kunnen toepassingen bouwen rond betaalbaarheid, gezondheid of duurzamere productkeuzes.

De basis is in al die gevallen hetzelfde: actuele, gestructureerde en controleerbare productdata.

Daarvoor hoeft niet altijd het volledige assortiment te worden verzameld. Een goed gekozen mandje van vergelijkbare producten levert vaak meer inzicht op dan een enorme dataset waarin appels, peren en voordeelverpakkingen zonder onderscheid naast elkaar staan.

Supermarktscraping is dus geen toepassing op zichzelf. Het is een manier om veranderingen zichtbaar te maken: in prijzen, aanbiedingen, verpakkingen en samenstellingen. Wie vooraf scherp bepaalt welke producten echt vergelijkbaar zijn en welke informatie voor het beoogde doel nodig is, kan met dezelfde databron uiteenlopende en waardevolle toepassingen bouwen.

Klaar om te starten?

Welke data brengt jou verder?

Vertel ons welke inzichten je met webscraping wilt verkrijgen. Binnen één werkdag nemen we contact op om de mogelijkheden te bespreken.

Bespreek je datavraag