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
-
Food Safety Reporting
- Harmonized data exchange across EU member states
- Incident reporting and risk assessment
- Contaminant occurrence data
-
Nutritional Databases
- Food consumption surveys
- Dietary exposure assessments
- Nutritional composition databases
-
Food Surveillance
- Monitoring programs
- Food composition analysis
- Quality control systems
-
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)
| Code | Category | Description | Example Terms |
|---|---|---|---|
| A | Grains and grain-based products | Cereals, bread, pasta, baked goods | Wheat, rice, bread, pasta |
| B | Vegetables and vegetable products | Fresh and processed vegetables | Tomatoes, lettuce, pickles |
| C | Starchy roots and tubers | Potatoes, cassava, yams | Potatoes, sweet potatoes |
| D | Legumes, nuts, oilseeds | Beans, nuts, seeds | Soybeans, peanuts, almonds |
| E | Fruits and fruit products | Fresh and processed fruits | Apples, oranges, jams |
| F | Meat and meat products | All animal meat | Beef, pork, poultry, game |
| G | Fish and seafood | Aquatic animals | Fish, crustaceans, mollusks |
| H | Milk and dairy products | Dairy and derivatives | Milk, cheese, yogurt |
| I | Eggs and egg products | Chicken and other bird eggs | Whole eggs, egg whites |
| J | Sugar and confectionery | Sweeteners and sweets | Sugar, honey, chocolate, candy |
| K | Animal and vegetable fats | Oils and fats | Olive oil, butter, margarine |
| L | Fruit and vegetable juices | Beverages from fruits/vegetables | Orange juice, tomato juice |
| M | Non-alcoholic beverages | Water, soft drinks, coffee, tea | Coffee, tea, soft drinks |
| N | Alcoholic beverages | Wine, beer, spirits | Wine, beer, whiskey |
| O | Herbs, spices, seasonings | Flavoring ingredients | Salt, pepper, basil, oregano |
| P | Food for infants and small children | Baby food and formula | Infant formula, baby food |
| Q | Products for special nutritional use | Dietary and medical foods | Gluten-free, diabetic foods |
| R | Composite dishes | Multi-ingredient prepared foods | Pizza, 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 productsA01- 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
- Identify Food Product - Find correct FoodEx2 term
- Add Facets - Describe production method, processing
- Map to LCA Data - Link to Hestia or Ecoinvent
- Calculate Impact - Use mapped LCA processes
- 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
- Start Broad - Begin with main category (Level 1)
- Navigate Hierarchy - Drill down to appropriate specificity
- Add Facets - Include processing, production method
- Verify Scope - Check term definition matches your product
- 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
Related Documentation
- Data Sources - Overview of all 10 sources
- Hestia Reference - Map FoodEx2 to LCA data
- Semantic Mapping - Cross-source matching
- Data Formats - Export and integration
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