Inside the HelloFresh
Ingredient Catalogue
A fast, evidence-led walkthrough of an anonymised HelloFresh ingredient sample (1,980 rows Γ 37 columns) across Benelux and DACH.
The Catalogue
This analysis starts with an anonymised sample of the ingredient catalogue: 1,980 SKU rows and 37 columns across Benelux (FR label set) and DACH (DE label set). The objective is early-stage data understanding for Nexer Insight.
What the columns capture
The schema spans identity fields (for example id, name, ingredient_name), market and brand context (market, sku_locale, brands*), product taxonomy
(category, subcategory, family),
operational constraints (temp_min, temp_max, storage_tier), sustainability signal (co2emission_factor),
and timing (created_at, created_year_month).
Some semantics still need client confirmation (notably sku_locale mapping and COβ units/methodology).
Show all 37 columns
id, market, name, cooling_type, sku_locale, sku_code, ingredient_name,
culinary_sku_status, brands, sku_type, quantity, quantity_uom,
quantity_in_pack, temp_min, temp_max, temp_unit, recipe_card_quantity,
recipe_card_unit, created_at, co2emission_factor, product_types, category,
subcategory, family, product, attribute1, attribute2,
acceptable_code_life, crush_class, code_check_req, packaging_type,
quantity_uom_secondary, storage_tier, created_year_month,
brands_hellofresh, brands_green_chef, brands_factor
Two markets, one exploratory baseline
Within this sample, Benelux has 1,010 rows and DACH has 970 rows. We treat any market differences as directional because coverage may be incomplete.
One Ingredient, Many Names
First question: what is the right analytic entity? Beneath 1,980 SKU rows we find 564 unique ingredient_name values β the canonical identities that cut across language, size, and packaging variants.
The multiplier effect
Those 564 ingredients expand to 1,802 distinct product names once size, language, packaging, and brand variants are included.
What this tells us about analysis setup
Analyses at name level are about 3Γ noisier than analyses anchored on ingredient_name. Ingredient-level
normalisation is a prerequisite for reliable downstream work.
The Carbon Chasm
Each ingredient carries a co2emission_factor β its estimated
carbon footprint per unit. Plotting the mean by subcategory shows that
animal proteins span a wide range: game, crustacea, and fish preparations
all carry meaningful footprints. (Units/methodology are still a documented
client clarification point.)
Then there's beef.
The bovine subcategory (beef and veal) sits in a class of its own, with a mean COβ factor of 1,727. The second highest subcategory β game β comes in at 639. At the other end, plant-based protein averages just 48.
A 36Γ gap
Bovine's COβ factor is 36Γ higher than plant-based protein in the same catalogue. This isn't a rounding difference β it's the difference between the longest bar on the chart and one of the shortest. No other subcategory comes close to bovine.
Exploration signal
At exploration stage, the key point is measurement readiness: co2emission_factor clearly separates high- and low-emission groups
(for example bovine vs plant-based, ~97% lower on mean factor).
A Cold Chain Story
Every SKU in the catalogue has a temp_min and temp_max. Together they define the storage band each
ingredient must live in β from frozen to ambient β all the way
from warehouse to customer doorstep.
Proteins run cold
Poultry (90% cold), finfish (93% cold), and bovine (76% cold) are predominantly stored in the cold (β€4Β°C) band. Swine is more mixed β roughly half cold, half chilled β with 13 SKUs requiring freezing, the most of any protein subcategory.
Produce stays chilled
Pre-cut vegetables (93% chilled) and standard vegetables (86% chilled) sit firmly in the chilled (4β7Β°C) band β a distinct logistics zone from protein. Herbs and root vegetables also sit here. Co-loading produce and protein in the same delivery box requires careful temperature management.
Ambient is the minority
Only 42 of 1,980 SKUs are marked ambient, and they are scattered rather than forming a clear ambient-only segment. Most of this catalogue is cold-chain dependent.
Two Markets, Two Tastes
This is an exploratory read of the sample, not a full market census. Interpret all differences as directional.
How to read this chart
Blue bars extend right when Benelux carries more SKUs in a subcategory; red bars extend left when DACH carries more. The chart filters to subcategories where the gap is at least 5 SKUs β only the most visible differences in this sample extract.
Directional pattern in the sample
In this sample, Benelux shows higher counts for poultry (+105), bovine (+44), and plant-based (+25), while DACH is higher in pre-cut vegetables (+40), standard vegetables (+18), finfish (+18), root vegetables (+16), and herbs (+11).
Exclusive families (sample view)
We observe 25 Benelux-only and 19 DACH-only ingredient families in this extract. We treat "only" as "only in the sample", not "only in the full market".
The Brand That Faded
HelloFresh operates three brands in these markets: the core HelloFresh label (1,512 SKUs), a sub-brand Factor (98 SKUs), and Green Chef (60 standalone SKUs, plus 310 shared dual-brand SKUs).
Green Chef: 100% inactive
All 60 standalone Green Chef SKUs carry a culinary_sku_status of inactive. Not
offboarding, not in transition β fully inactive. The 310 dual-brand
SKUs shared with HelloFresh are almost entirely active, but the
standalone Green Chef brand in these markets is gone.
A data-driven discovery
There is no "discontinued" column in the dataset. This finding
surfaces only by crossing brands against culinary_sku_status. It's the kind of insight that
only comes from systematic exploration of the data β not from
reading a product brief or press release.
The SKU Timeline
Every SKU carries a created_year_month field β the date
it first entered the catalogue. Plotting monthly additions reveals
when each market was built, when it expanded, and where the
data has been touched most recently.
DACH started first
The first DACH entries appear in May 2018. Benelux appears soon after in August 2018.
Bursty updates, not a smooth curve
Monthly additions come in waves. The largest month is March 2023 (245 SKUs, mostly Benelux).
The 2026 cluster
A notable late cluster appears in JanβFeb 2026 (69 SKUs). As noted in client clarifications, this may reflect migration/backfill rather than true launches.
What this exploration established
brands with culinary_sku_status.Data source: anonymised sample of the HelloFresh ingredient catalogue (Benelux & DACH). This scrollytelling piece documents EDA findings for internal Nexer Insight project discovery.