From Open Food Facts wiki
Jump to navigation Jump to search

This is the brands of the product. The main brand, generally clearly displayed on the front pack, should be entered first. A product can have other brands:

When a product has more than one brand, the first brand in the field is taken as the main brand.

There's no taxonomy for brands for the moment, so just do your best and don't waste too much time to enter brands.

Data issues

Some brands are difficult to read:

  • is it Coop, coop, COOP, CO OP?

Some brands can be related to different companies in different countries:

Some brands are related to a common name or an ingredient, which can be confusing:

Brands containing an apostrophe are often missing this one:

Brands are changing sometimes. How to deal with that?

Some particular cases for a brand

  • A brand can contain only numbers, such as 1664, 1883 or 365.
  • A brand can contain quotes, such as The Muffin "Mam" Inc
  • A brand can contain &, such as M&M's
  • A brand can contain commas, such as Williams, West & Witt's Products;
  • A brand can have a sub-brand containing its own name: Sainsbury's use a brand called By Sainsbury's.

Some particular cases for a product

  • A product can have more than 2 brands; eg:
    • Coop, in Switzerland, can add up to three brands on a product: Betty Bossi, Karma and Coop in this product; they justify it: "We offer a wide range of own-label brands and brand worlds." (source)
    • In this product, Lipton belongs to Unilever but this product is distributed by Pepsico

Implementation in Open Food Facts

In the database, this field is called brands.

See issues related to brands.

Preventing OFF AI to detect some false brands: see brand_taxonomy_blacklist.txt.

Help to collect brands

The IA of Open Food Facts, called Robotoff, is trying to identify brands. The annotations made by Robotoff are provided to users, asking them to answer to a simple question. There are also used by Hunger Game. Everyone can use Hunger Game, but be careful to the issues mentioned in this current page.

  • on 2020-10-29, there were 43200 annotations and 22748 resting
  • on 2020-11-17, there were 46911 annotations and 22720 resting

Observations summary

Summarising the observations note above, we see the following brands:

  • 1 universal brand, exact same name used in all countries and languages. e.g. "Nutella"
  • 2 brand that is translated in different languages or scripts "The Laughing Cow", "La vache qui rit" (example)
  • 3 brands that have the same name, but used in different languages
  • 4 brands that have the same name, but used in different countries
  • 5 brands that have the same name, and used in the same country. (e.g. "Ferrero" in Italy: there's also a pasta brand).
  • 6 brands in non-latin scripts, which can not be latinised
  • 7 parent brands are sometimes shown on packaging

Use cases

The brands taxonomy has multiple applications within OFF. Theres are:

  • 1 Display the brands of a product, in the language requested by the user;
  • 2 Have a way to list all products of a brand;
  • 3 Let users enter brands for a product, as they appear on the package (as free text);
  • 4 Let the user select the correct brand from a list of existing brands. If the same brand text occurs multiple times, the user must be able to sellect the applicable one;
  • 5 Suggests a brand to the user based on the manufacturer part of the barcode and other information;
  • 6 Infer category and labels from brand - some brands are only used for specific products. This implies that the product category and possible labels can be implies (suggested);
  • 7 Infer brand from manufacturer code within the barcode;
  • 8 Barcode/Brand quality check - if the manufacturer part of the barcode does not match the specified brand, there is an error in either of them;

Design considerations

The observations and use cases lead to several design considerations:

  1. Unique brand key - as the same brand (string) can exist in multiple geographic areas or within the same geographic area, there must be a way to uniquely distinguish between the various brands. Otherwise a user can not enter the correct brand (UC1), nor can we list all brands (UC2);
  2. Uses selectable brand - there must be a brand name in the same language/script of the package. If that name occurs multiple times in the taxonomy, it must be specified by product category, country sold, etc in order to make it unique. For instance the label Taste occurs in France and Argentina, but is used for different categories. So the user should have the choice Taste (category 1 - France) and Taste (category 2 - Argentina). Maybe this can be mixed with the key. (UC4)
  3. Language/script specific brands - a way to code a single brand in multiple scripts and/or languages, for example in Chinese, Arabic and English (UC1)
  4. Language independent brand - a way to encode a brand that is valid for multiple languages (UC1);

Taxonomy encoding

Taking the observations, use cases and design considerations into account, it is possible to specify how this can be encoded in a taxonomy. The same approach as all the other taxonomies will be used for thus.

An overview of the encoding used in the brands taxonomy:

  • blocks/white lines - a single brand is defined by a block of text and are separated by white lines;
  • definition - a single line defines the brand in a specific language, an attribute, etc. Each line starts with a name followed by parameters and separated by a colon
  • parameters:
    • parent (<zz:) - a reference to another (parent) brand. Thus any attributes shared between parent and child only have to be specified in the parent;
    • key (zz:) - an unique is required, so that we can distinguish between brands with the same name;
    • default (xx:) - a default value to be used for any language that is not specifically listed;
    • language (e.g. ru:) - the brand-name in the language ru. A brand might be defined in multiple languages as needed, with a single line for each language. For instance the ru: might be used to specify a brand in Cyrillic. Sometimes also country specific brands are required.
    • attributes - each brand can have one or more attributes
      • barcodeprefix:en: - the first 8(?) numbers of the barcode that belong to the brand. With this brands can be automatically assigned to a barcode. Also the barcodes of existing products can be checked;
      • wikipedia:en: - the full link to a page, which explains the brand(!!!). Note that brands are not well available on wikipedia;
      • wikidata:en: - the identifaction of the wikidata entry for the brand(!!). Note that brands are not well available on wikidata;
      • brand_owner_opencorporates:xx: - an identification of the probable brand owner/distributor on opencorporates. It is not always clear what should be written down here.
      • idea: local customer service address (one for each country where the product is distributed, and a generic one)
      • idea: eu trademark - maybe only useful for name trademarks? (not logo's). But not relevant to the consumer.
      • idea: stores - the stores where the brand is sold. Maybe better to create a store taxonomy and link from there to brands?


xx:La Española
category:en en:Olive tree products
#94 products @2022-04-23

xx:La Trappe
category:en en:belgian-beers
label:en: en:authentic-trappist-product
#11 products @2022-04-23

Questions / Issues

  • company structure - do we want to list (and research) all the relationships between owners, marketing companies, etc. I would suggest that we do NOT and limit ourselves to the brands and brand owner (and maybe the production company);
  • overkill - it is very tempting to add al kinds details for owners, etc. The actual owners of the product, brand, etc, do not seem useful to the consumer. We just should provide links to third parties for this kind information. I.e. wikipedia, wikidata,, opencorporates, ipo europe, ...
  • parent brand - when should the parent brand be added? Only if the parent brand is available on the front of the packaging, or also when it is shown on the back of the packaging, or when we can find out the legal final parent owner of a brand? This choice might have an implication for how we structure the data.
  • EAN manufacturer codes - is there an open database which we could use?