Skip to main content

FoodEx2 Reference

FoodEx2 is the European Food Safety Authority's (EFSA) standardized food classification and description system, providing a comprehensive catalog of 31,601 terms for European food products.

Overview

FoodEx2 was developed by EFSA to create a single, harmonized food classification system for data exchange across EU member states in food safety, nutrition, and exposure assessment domains.

Key Statistics:

  • Total Terms: 31,601
  • Hierarchical Levels: Up to 7 levels deep
  • Facet Categories: 30+ facets for detailed description
  • Coverage: Complete European food catalog
  • Languages: English (primary) with translations available

Purpose and Use Cases

Primary Applications

  1. Food Safety Reporting

    • Harmonized data exchange across EU member states
    • Incident reporting and risk assessment
    • Contaminant occurrence data
  2. Nutritional Databases

    • Food consumption surveys
    • Dietary exposure assessments
    • Nutritional composition databases
  3. Food Surveillance

    • Monitoring programs
    • Food composition analysis
    • Quality control systems
  4. Research and Analysis

    • Comparative studies across countries
    • Dietary pattern analysis
    • Food safety risk assessments

Structure

Hierarchical Organization

FoodEx2 uses a multi-level hierarchical structure with alphanumeric codes:

Level 1: A - Grains and grain-based products
├── Level 2: A01 - Grains
│ ├── Level 3: A0101 - Wheat
│ │ ├── Level 4: A010101 - Common wheat
│ │ ├── Level 4: A010102 - Durum wheat
│ │ └── Level 4: A010103 - Spelt
│ ├── Level 3: A0102 - Rice
│ └── Level 3: A0103 - Barley
└── Level 2: A02 - Grain-based products
├── Level 3: A0201 - Bread and rolls
└── Level 3: A0202 - Breakfast cereals

Code Format

  • Master Hierarchy Code: Unique identifier (e.g., A0101)
  • Report Hierarchy Code: Aggregated categories for reporting
  • Term Name: Human-readable description
  • Scientific Name: Taxonomic name where applicable
  • Status: Active, deprecated, or obsolete

Dual Hierarchy System

Master Hierarchy

  • Complete, detailed food catalog
  • Maximum granularity
  • Used for precise data collection
  • Up to 7 hierarchical levels

Report Hierarchy

  • Aggregated categories
  • Simplified structure
  • Used for reporting and analysis
  • Fewer hierarchical levels

Main Food Categories (Level 1)

CodeCategoryDescriptionExample Terms
AGrains and grain-based productsCereals, bread, pasta, baked goodsWheat, rice, bread, pasta
BVegetables and vegetable productsFresh and processed vegetablesTomatoes, lettuce, pickles
CStarchy roots and tubersPotatoes, cassava, yamsPotatoes, sweet potatoes
DLegumes, nuts, oilseedsBeans, nuts, seedsSoybeans, peanuts, almonds
EFruits and fruit productsFresh and processed fruitsApples, oranges, jams
FMeat and meat productsAll animal meatBeef, pork, poultry, game
GFish and seafoodAquatic animalsFish, crustaceans, mollusks
HMilk and dairy productsDairy and derivativesMilk, cheese, yogurt
IEggs and egg productsChicken and other bird eggsWhole eggs, egg whites
JSugar and confectionerySweeteners and sweetsSugar, honey, chocolate, candy
KAnimal and vegetable fatsOils and fatsOlive oil, butter, margarine
LFruit and vegetable juicesBeverages from fruits/vegetablesOrange juice, tomato juice
MNon-alcoholic beveragesWater, soft drinks, coffee, teaCoffee, tea, soft drinks
NAlcoholic beveragesWine, beer, spiritsWine, beer, whiskey
OHerbs, spices, seasoningsFlavoring ingredientsSalt, pepper, basil, oregano
PFood for infants and small childrenBaby food and formulaInfant formula, baby food
QProducts for special nutritional useDietary and medical foodsGluten-free, diabetic foods
RComposite dishesMulti-ingredient prepared foodsPizza, lasagna, casseroles

Faceted Classification

FoodEx2 uses facets to add additional descriptive dimensions beyond the base hierarchy. Facets allow precise characterization of food items.

Key Facet Categories

1. Production Method Facets

Farming/Growing Method:

  • Organic production
  • Conventional farming
  • Greenhouse cultivation
  • Wild/uncultivated
  • Hydroponic

Animal Husbandry:

  • Free-range
  • Cage-free
  • Grass-fed
  • Grain-fed
  • Intensive farming

2. Processing Facets

Extent of Processing:

  • Raw/unprocessed
  • Minimally processed
  • Processed
  • Ultra-processed

Specific Processes:

  • Pasteurized
  • Sterilized
  • Homogenized
  • Fermented
  • Dried/dehydrated
  • Frozen
  • Canned
  • Smoked
  • Salted
  • Pickled

Heat Treatment:

  • Raw
  • Blanched
  • Boiled
  • Fried
  • Baked
  • Grilled
  • Roasted
  • Steamed

3. Packaging Facets

Container Type:

  • Bottle
  • Can
  • Carton
  • Jar
  • Pouch
  • Bulk

Packaging Material:

  • Glass
  • Plastic
  • Metal
  • Paper/cardboard

Packaging Medium:

  • Air
  • Vacuum
  • Modified atmosphere
  • Liquid (oil, brine)

4. Part of Product Facets

Plant Parts:

  • Leaves
  • Roots
  • Stems
  • Flowers
  • Seeds
  • Fruits

Animal Parts:

  • Muscle tissue
  • Organs
  • Skin
  • Bones
  • Fat

5. Physical State Facets

  • Solid
  • Liquid
  • Semi-solid
  • Powder
  • Granules
  • Frozen
  • Fresh
  • Dried

6. Quality Facets

  • Premium/high quality
  • Standard quality
  • Economy/budget
  • Organic certified
  • Protected designation of origin
  • Protected geographical indication

Facet Usage Example

A complete FoodEx2 description combining hierarchy and facets:

Base Term: A010101 (Common wheat)
+ Facets:
- Production: Organic farming
- Processing: Whole grain
- Physical state: Kernels
- Geographical: Italy
- Quality: Protected designation of origin

Result: Organic whole grain common wheat kernels from Italy (PDO)

Code Structure and Examples

Hierarchical Codes

Pattern: [Letter][Numbers]

Examples:

  • A - All grains and grain-based products
  • A01 - Grains (within category A)
  • A0101 - Wheat (within grains)
  • A010101 - Common wheat (specific wheat type)

Sample Terms by Category

Grains (A)

A0101    Wheat
A010101 Common wheat
A010102 Durum wheat
A010103 Spelt
A0102 Rice
A010201 Rice, white
A010202 Rice, brown
A010203 Rice, wild

Vegetables (B)

B0101    Brassica vegetables
B010101 Cabbage
B010102 Broccoli
B010103 Cauliflower
B0102 Leafy vegetables
B010201 Lettuce
B010202 Spinach

Fruits (E)

E0101    Pome fruits
E010101 Apple
E010102 Pear
E0102 Stone fruits
E010201 Peach
E010202 Plum
E010203 Cherry

Meat (F)

F0101    Cattle meat
F010101 Beef
F010102 Veal
F0102 Swine meat
F010201 Pork
F0103 Poultry
F010301 Chicken meat
F010302 Turkey meat

Dairy (H)

H0101    Milk
H010101 Cow milk
H010102 Goat milk
H010103 Sheep milk
H0102 Fermented milk
H010201 Yogurt
H010202 Kefir
H0103 Cheese
H010301 Fresh cheese
H010302 Hard cheese
H010303 Blue cheese

Integration with LCA Glossary

Mapping to Other Sources

FoodEx2 terms are semantically mapped to other glossary sources:

Hestia Mapping:

FoodEx2: A010101 (Common wheat)
↓ mapped to
Hestia: term/crop-wheat
↓ provides
Environmental impact data

Ecoinvent Mapping:

FoodEx2: F010101 (Beef)
↓ mapped to
Ecoinvent: market for cattle for slaughtering, live weight
↓ provides
LCA process data

AGROvoc Mapping:

FoodEx2: E010101 (Apple)
↓ mapped to
AGROvoc: c_8268 (Malus domestica)
↓ provides
Taxonomic and agricultural context

Using FoodEx2 in Environmental Assessment

  1. Identify Food Product - Find correct FoodEx2 term
  2. Add Facets - Describe production method, processing
  3. Map to LCA Data - Link to Hestia or Ecoinvent
  4. Calculate Impact - Use mapped LCA processes
  5. Report Results - Standardized terminology for reporting

Query Examples

SQL Queries

-- Find all wheat varieties
SELECT id, name, category
FROM terms
WHERE source = 'foodex2'
AND id LIKE 'A0101%'
ORDER BY id;

-- Find organic production facets
SELECT id, name, description
FROM terms
WHERE source = 'foodex2'
AND category LIKE '%production%'
AND name LIKE '%organic%';

-- Get complete dairy category
SELECT id, name, category, properties
FROM terms
WHERE source = 'foodex2'
AND id LIKE 'H%'
ORDER BY id;

JavaScript/TypeScript

import { Glossary, Term } from './glossary.types'

// Load glossary
const glossary: Glossary = await fetch('/glossary.json')
.then(r => r.json())

// Filter FoodEx2 terms
const foodex2Terms = glossary.terms.filter(t =>
t.source === 'foodex2'
)

// Find wheat terms
const wheatTerms = foodex2Terms.filter(t =>
t.id.startsWith('A0101') ||
t.name.toLowerCase().includes('wheat')
)

// Group by main category
const byCategory = foodex2Terms.reduce((acc, term) => {
const category = term.id.charAt(0) // First letter
if (!acc[category]) acc[category] = []
acc[category].push(term)
return acc
}, {} as Record<string, Term[]>)

console.log(`Found ${wheatTerms.length} wheat terms`)
console.log(`Categories: ${Object.keys(byCategory).join(', ')}`)

Python

import json
from collections import defaultdict

# Load glossary
with open('glossary.json') as f:
glossary = json.load(f)

# Filter FoodEx2 terms
foodex2_terms = [
t for t in glossary['terms']
if t['source'] == 'foodex2'
]

# Hierarchical analysis
hierarchy_levels = defaultdict(list)
for term in foodex2_terms:
level = len(term['id']) - 1 # Code length indicates level
hierarchy_levels[level].append(term)

# Print statistics
for level, terms in sorted(hierarchy_levels.items()):
print(f"Level {level}: {len(terms)} terms")

# Find composite dishes (category R)
composite = [t for t in foodex2_terms if t['id'].startswith('R')]
print(f"\nComposite dishes: {len(composite)} terms")

Best Practices

Selecting the Right Term

  1. Start Broad - Begin with main category (Level 1)
  2. Navigate Hierarchy - Drill down to appropriate specificity
  3. Add Facets - Include processing, production method
  4. Verify Scope - Check term definition matches your product
  5. Document Choice - Record rationale for term selection

Common Pitfalls

Too Generic

Bad:  A (Grains and grain-based products)
Good: A010101 (Common wheat)

Missing Facets

Bad:  F010101 (Beef)
Good: F010101 (Beef) + Organic + Grass-fed

Wrong Level

Bad:  Using Level 2 when Level 4 exists
Good: Use most specific applicable level

Data Quality

Completeness:

  • Always use most specific term available
  • Include all applicable facets
  • Document assumptions

Consistency:

  • Use same term for same product across datasets
  • Apply facets systematically
  • Follow EFSA guidance documents

Traceability:

  • Record FoodEx2 version used
  • Document mapping decisions
  • Link to source data

Version and Updates

Current Version in Glossary: FoodEx2 Revision 2 Last EFSA Update: Check EFSA website for latest Update Frequency: Irregular, typically every 2-3 years

Version Compatibility

  • Terms can be deprecated in new versions
  • Use version-specific code when possible
  • Map deprecated terms to current equivalents
  • Check EFSA changelog for updates

Resources

Official EFSA Resources

  • FoodEx2 Browser: EFSA FoodEx2 Online Tool
  • User Manual: EFSA FoodEx2 guidance documents
  • Code Lists: Downloadable Excel files with complete hierarchy
  • Facet Catalog: Complete list of all facets

ESFC Glossary Resources

  • Search Interface: Browse 31,601 FoodEx2 terms
  • SQL Database: Query hierarchies and facets
  • API Access: Programmatic term lookup
  • Mappings: Links to Hestia, Ecoinvent, AGROvoc

License and Attribution

FoodEx2 is developed and maintained by the European Food Safety Authority (EFSA).

License: Public domain / Open data Attribution: "FoodEx2 classification system by EFSA" Usage: Free for commercial and research use Citation: European Food Safety Authority (EFSA)

When publishing research using FoodEx2:

European Food Safety Authority (EFSA). (Year). The food classification
and description system FoodEx 2 (revision 2). EFSA supporting publication
YYYY:EN-NNNN. Available online: www.efsa.europa.eu/publications