Back to all articles

Supermarket data for your app

Building a supermarket price app: start with a comparable shopping basket, not the entire product range.

Supermarket data for your app

An app that shows where groceries are cheapest sounds fairly straightforward. You collect prices from several supermarkets, compare them and display the most affordable option. In practice, the real work starts after that. Which product should be matched with which alternative? How should promotions, different pack sizes and own-brand products be handled? And what happens when a supermarket changes a product name or package?

A useful app for supermarket prices therefore needs more than a large collection of individual prices. The product selection and the way products are matched ultimately determine whether the comparison is meaningful.

Why scraping the entire product range is usually unnecessary

A large supermarket sells thousands of products. Continuously monitoring every product page may sound attractive, but for many applications it is not the best place to start. Collecting, processing and storing a complete product range can become expensive. The range also changes constantly: products disappear, new variants are introduced and temporary promotions sometimes receive their own page or product code.

There is an even more important issue: many products cannot be compared directly at all.

A 500-gram jar of pasta sauce at supermarket A may have a different recipe from a seemingly similar 480-gram jar at supermarket B. One may contain more tomatoes while the other contains more sugar or salt. Placing their retail prices side by side creates an overview, but not yet a fair comparison.

For a price app, a carefully selected basket is usually more valuable than an unfocused collection of hundreds of thousands of product rows. Choose products that consumers buy frequently and that are available in comparable versions at several supermarkets, such as one litre of semi-skimmed milk, a 500-gram pack of coffee, six eggs, one kilogram of rice or a common size of laundry detergent.

This keeps the dataset manageable and makes it clearer what a price difference actually means.

Build a comparable shopping basket

A good basket consists of more than familiar product names. For each item, the basis of the comparison must be recorded. Brand, weight, volume, number of units and, where relevant, the product variant all matter.

Consider soft drinks. A one-litre bottle cannot simply be compared with a 1.5-litre bottle, while a multipack of six cans requires another calculation. The price per litre makes these packages easier to compare, but you still need to verify that they are genuinely the same variant. Sugar-free, caffeine-free and regular versions are not interchangeable for many users.

The same applies to promotions. A value pack may be the cheapest option this week, while another supermarket may run a buy-one-get-one-free offer next week. An app should ideally store both the regular price and promotional price. The start and end dates of an offer are also important; without them, an expired promotional price may incorrectly be presented as current.

The value lies not only in answering “where is this product cheapest?”, but also in explaining why.

The cheapest product does not always create the cheapest basket

Many users will search for a specific product and want to know which supermarket currently offers the best price. This is useful, particularly for products that people buy regularly or that are relatively expensive.

Yet the lowest price per item tells only part of the story. Supermarket A may be the best choice for one pack of coffee, while milk, rice and detergent are cheaper at supermarket B. Shopping at a different store for every item may save money on paper, but those savings can quickly disappear through travel time or delivery charges.

It is therefore valuable to calculate a complete shopping basket alongside individual products. This better reflects how people actually shop. Most consumers are not looking for a supermarket for one pack of pasta; they want to know where their usual groceries produce the lowest total receipt.

  • Which supermarket has the lowest total amount
  • How the basket price compares with last month
  • Which products are responsible for an increase
  • How much of the difference is caused by promotions
  • Whether one expensive item distorts the overall result

Own-brand products require a different approach

National brands are often relatively easy to track. A jar from the same brand with the same contents and product code is usually recognisable across different websites. Own-brand products are different.

An own-brand product from one supermarket is not automatically equivalent to an own-brand product from a competitor. Even when the packaging and name look very similar, the recipe, nutritional values, origin and quality may differ. A system that blindly matches such products suggests a level of accuracy that does not exist.

That does not mean own brands should be excluded. They are important because they make up a large part of the everyday shopping basket. It should, however, be clear that these are comparable product types rather than identical products.

Instead of stating “this is the same product”, an app could describe the match as “comparable semi-skimmed milk, 1 litre” or “own-brand peanut butter, jar between 500 and 600 grams”. Users then understand more clearly what is being compared.

Normalise prices before drawing conclusions

The shelf price is not always the best measure. Different pack sizes can appear inexpensive while the price per kilogram, litre or unit is actually higher.

A 750-gram bag of rice may cost less than a one-kilogram bag but be more expensive per kilogram. The same occurs with detergent, coffee, nappies and multipacks. It is therefore sensible to record the unit price alongside the current retail price.

This calculation sounds simple, but it requires clean product data. “6 × 1.5 L”, “1500 ml” and “1.5 litres” may describe comparable quantities, yet they are written very differently. These values must first be recognised and converted into a standard unit before a reliable comparison can be made.

This is exactly the kind of detail users barely notice, but it determines whether they trust an app.

Products change as well as prices

Supermarket data can be used for more than identifying the cheapest store. Market researchers can also monitor how products themselves change.

If a package becomes smaller while the price remains the same, shrinkflation may be occurring. More subtle changes matter too. A manufacturer may reduce the amount of sugar, add a sweetener, remove an E-number or introduce a new ingredient. A certification mark may appear or disappear. Sometimes only the packaging design changes; sometimes the contents genuinely change.

Recording product names, quantities, ingredient lists, nutritional values and certification marks at different points in time creates a historical dataset. It can answer questions that remain outside the scope of a conventional price comparison tool.

This is where price monitoring and product research come together. A smaller package is not only a product change; it also affects the real price consumers pay per kilogram or litre.

  • Are packages becoming larger or smaller on average?
  • Does the price change with the quantity?
  • Which product groups contain less sugar than a year ago?
  • Are certain additives being used more or less frequently?
  • How stable are sustainability and health certification marks?
  • Does a recipe change without the product name changing?

You can only compare information that is actually published online

Detailed monitoring has a practical limit: the required data must be available on the websites of the selected supermarkets.

If three supermarkets publish a complete ingredient list while a fourth shows only the product name and price, the fourth cannot be included at the same level of detail. The same applies to nutritional values, certification marks, origin information and exact package contents.

You should therefore investigate in advance which fields are consistently available. A comparison does not become more reliable by filling missing values with assumptions. Sometimes it is better to monitor a smaller group of supermarkets or products completely than a large selection containing gaps.

Availability also changes. A supermarket may redesign product pages, move information into an expandable element or temporarily stop displaying certain details. Monitoring therefore requires data-quality controls. Prices are not the only metric worth tracking; the number of products found and the completion rate of individual fields also deserve attention.

You cannot simply reuse images from supermarket websites

Using product images from supermarket websites may seem like an obvious way to make an app more attractive. However, an image that is publicly available online is not automatically free to republish.

Product photographs and other visual material may be protected by copyright. Reuse may require permission or an appropriate licence.

Developers should consider this early in the project. A technically accessible imageUrl does not grant permission to display the image on another website or in a commercial app.

Alternatives include producing original photography, using supplied material with clear usage rights or presenting textual product information without republishing the original photo.

Auteursrecht.nlGuidance on using photographs and images found online.
Business.gov.nlInformation about copyright and using protected work.

Start small and examine what goes wrong

The first version of a supermarket price app does not need to be a complete platform. Start with fifty to one hundred frequently purchased products at a limited number of supermarkets, then manually verify whether the matches are correct.

Those first products will expose the difficult cases. A product name may have changed. One supermarket may place the package size in the title while another includes it in the description. A promotional price may apply only with a loyalty card. Or products that appear identical may contain different quantities.

These exceptions are not edge cases; they are the everyday reality of supermarket data. Finding them early allows the data model to be refined before the app is expanded.

Scaling becomes worthwhile only when product matches, unit prices and promotional periods are reliable.

Supermarket data has many applications beyond price comparison

A supermarket price app can help consumers find the cheapest product or shopping basket. Governments can monitor price developments in important product groups. Research organisations can study changes in package size, ingredients, nutritional values and certification marks. Developers can build applications around affordability, health or more sustainable product choices.

The foundation is the same in every case: current, structured and verifiable product data.

Collecting the entire product range is not always necessary. A well-chosen basket of comparable products often provides more insight than an enormous dataset in which fundamentally different products and value packs are placed side by side.

Supermarket scraping is therefore not an application in itself. It is a way to make changes visible—in prices, promotions, packaging and composition. By clearly defining which products are genuinely comparable and which information the intended application needs, the same data source can support many valuable products and analyses.

Ready to start?

What data will move you forward?

Tell us what you need to know. We will contact you within one business day to discuss the possibilities.

Discuss your data needs