Data & Methodology
Where the numbers come from, how we make them comparable, and where they fall short.
Where the data comes from
It started with an unusual source: the YouTube videos of HumanSafari (Nicolò Balini), who keeps mentioning Nutella prices while touring supermarkets.
A script found every mention of a price and we checked each one by hand. Since then, prices sent in by the community have widened the index beyond that first source.
Community contributions
Some prices come from the community, spotted at home or on their travels.
- A moderator reviews every submission before it is published.
- Every submission needs a photo of the jar and its price tag.
Limits of the data
Prices come from videos, from the community and from currency conversion. We clean them up, but they stay approximate.
- A price can be approximate or out of date.
- An entry can hold a small error or inconsistency.
- Offers, availability and the local market can move the real price a lot.
Responsibility
This site is for information and entertainment only.
We do not guarantee that the data is accurate, complete or reliable, and we are not responsible for decisions made because of it.
Spotted something off? Report it or send an update. Fixing the dataset together is part of the project.
Methodology
Every number on this site follows the rules below. They are versioned: when a rule changes, so does the version number.
How prices are converted
We convert each local price to euros at the exchange rate of the day it was seen, then scale it to 100 grams. The rate comes from the first of these sources that has one:
- an official fixed rate, for currencies pegged to the euro by law or treaty (such as the CFA franc);
- the ECB reference rate for the observation date, or the previous business day's when it falls on a weekend or holiday;
- a manual rate, only for currencies neither source covers, recorded with its date and the institution that published it.
rate = peg(currency) ?? ecb(currency, observed_at) ?? manual
eur_price = local_price × rate
eur_per_100g = eur_price ÷ package_weight_g × 100Every observation stores its rate, source and date, so any conversion can be reproduced from the local price. Older records, converted before we tracked sources, are being re-checked. Any other display currency you pick shows the euro price converted at the ECB rate of the observation day.
Which observations count
An observation counts towards a current value only when all of these hold:
- it is not flagged for review;
- its price is the normal one: an offer is recorded beside it, never instead;
- it is not a duplicate of an observation already counted;
- it was observed within the last 48 months;
- its jar weight is greater than zero;
- its price is greater than zero;
- it has an observation date.
Observations recorded before methodology 3.0 are assumed to show the normal price, unchecked. A moderator can confirm or correct it.
Observation dates
Every observation records how exact its date is:
- Exact: the day the price was seen, recorded by the person who saw it.
- Around: the date is close, but the exact day was not recorded.
- On or before: the price was seen by this day, and the date is when its source was published.
Freshness is always measured from the date shown.
Jar size
We scale every price to EUR per 100 g so jars of different sizes can be compared. That does not remove the size effect: small jars usually cost more per 100 g, so a country seen mostly through small jars can look dearer than its shelves are. Country pages break prices down by size when more than one was seen.
Freshness policy
We classify each country by the age of its most recent observation:
- Up to 18 months: up to date, fully counted in the country figure.
- 18 to 48 months: still counted, flagged as out of date.
- Over 48 months: moved to the historical archive and left out of current figures.
Which statistic we use
The statistic depends on how many observations there are. We never compute a value the sample cannot support.
- 1 observation: we show that observation, never an average.
- 2 to 9 observations: the arithmetic mean, shown as the average price.
- 10 or more observations: the median, shown as the typical price, with the mean beside it.
Values are rounded to the cent. A precise-looking figure is not a precise estimate.
Confidence levels
Levels come from the rules below, never from a hand-picked judgement:
- Preliminary: 1 or 2 observations, or observations from a single source.
- Developing: 3 to 9 observations from more than one source.
- Established: 10 or more observations from more than one source.
- Out of date: The most recent observation is older than 18 months. It is not an error: it only means a newer reading is needed.
When store, retailer and city are all unknown (true of everything collected before the extended contribution form), we count distinct observation dates as a stand-in for independent sources.
Duplicates
Observation counts signal confidence in public, so duplicates are blocked, not counted.
- A submission is rejected when an observation with the same country, date, jar size, price, currency and retailer already exists. The check runs at submission and again before publication.
- Near-duplicates are flagged for manual review and count for nothing until resolved.
- A duplicate found after publication is merged into the original: it stops counting, and its page permanently redirects to the original record.
Countries and territories
The index lists entities with their own ISO code and their own retail prices. We group them like this:
- Sovereign state: a widely recognized state.
- Dependency: has an administering state, shown next to the name.
- Territory: a distinct ISO entity with no single agreed administering state.
The grouping is statistical, not political. It describes how data is grouped, not the status of a territory.
Version history
- v3.0: The published price is always the normal one. An offer is recorded beside it, never instead, and the normal price records where it came from.
- v2.0: Promotional prices and merged duplicates no longer count. Every conversion records its rate source and date. Observation dates record their precision.
- v1.1: The observation city counts towards source independence, alongside store and retailer. Only classic Nutella enters the public figures.
- v1.0: First versioned methodology: eligibility rules, freshness policy, statistic selection, confidence levels, duplicate rules and geographic classification.
Glossary
One meaning per word, everywhere on the site.
- Observation
- A single price seen in a store on a specific date, with a known jar size and currency.
- Sample
- The eligible observations of a country that go into a value.
- Average
- The arithmetic mean of the sample. We use the word only with two or more prices; with one we say "latest price".
- Typical price
- The median of the sample: half the prices are below it, half above. We show it from 10 prices up, because one unusually high or low price barely moves it.
- Normal price
- The shelf price without any discount or loyalty-card deal. It is the price we publish.
- Offer
- A reduced price seen on the shelf. It is recorded beside the normal price, never instead of it.
- Source
- The store or chain a price came from. Where it is unknown, we count distinct observation dates instead.
- Updated
- The date of a country's most recent observation, not the date the site last changed.
- Recent
- Observed within the last 18 months.
Download the full dataset (CSV, JSON)
Questions about using the site? Read the guide.