FoodtopsyFrançais

Method

Method v0.4, in force since 2026-10-22 (written 2026-10-23)

How to read this site

Reviewed and imported foods

Reviewed foods are checked by hand against their sources: every nutrient carries its database and a grade, absorption is shown where a human study measured it, and hazards are rated by dose wherever we found a measurement. A few reviewed foods have no contaminant measurement yet; the foods list says “Not tested for contaminants yet” beside them. Only reviewed foods are ranked. So far: 159 foods, 229 preparations.

Imported foods are the amounts the national databases list (USDA FoodData Central, the Canadian Nutrient File), as published. We haven’t checked them, they’re never ranked against reviewed foods, and every number on them is the listed amount, not what your body takes in. There are 9,266 of them.

Absorption: one lens

A label lists what’s in a food. What your body takes in can be far less. The rule: adjust where measured, model where a published formula exists, flag where neither.

  • Measured: a human study of this food. We show the absorbed amount, the dose the study tested, and the study.
  • Modelled: no study of the food, but a published formula, such as Heaney’s calcium load curve. The figure is computed and labelled derived. No food on the site carries one yet.
  • Flagged: neither. The listed amount stays, marked as listed. “Not measured” is a normal answer.

Absorption is one lens, not the verdict: for most foods and most nutrients, no human study has measured it.

Per serving, per 100 kcal, per 100 g

Every comparison reads three ways: per serving (the default: Health Canada’s reference amount for one sitting), per 100 kcal (nutrients for the calories), and per 100 g, where you set the amount yourself.

Changing the amount rescales every number by the same factor, so it never reorders a ranking of listed amounts.

Absorbed amounts don’t scale in a straight line: the share of calcium absorbed falls as the dose rises. A figure scaled to more than twice, or less than half, the dose its study tested is marked derived.

Per 100 g sits beside per serving, never in its place: nobody eats 100 g of thyme or of oil.

Hazards: grams to reach the limit

Hazards are rated by dose, not presence. Where an agency sets a health-based limit, we give the grams of the food that reach it within the limit’s own window. Where an agency has measured what an average adult’s diet already supplies, the grams count from the room that is left (where an average adult is already at or past the limit, we say so and count from zero); where it has not, they count from zero, as if the food were all you ate:

  • a week for a tolerable weekly intake (cadmium, methylmercury, dioxins);
  • a day for a daily one (nitrate);
  • one sitting for an acute reference dose (cyanide from flaxseed), and one meal for histamine’s no-effect level.

Fewer grams means more caution: a food that reaches a limit within a few hundred grams a week needs more care than one that takes kilograms.

70 kg. Most limits are set per kilogram of body weight (histamine’s is per person). The figures assume a 70 kg adult, EFSA’s default. A smaller body gets there on fewer grams: a 20 kg child, on 3.5 times fewer.

Background counted, and shown. Your whole diet already brings you some of most contaminants. Where an agency has measured that, we print it beside the figure (the average European adult’s diet already supplies about 71% of the cadmium limit) and the grams count from the room left after it. The figure from zero stays on the page, under “How we got this”.

No grams figure without a safe threshold. Acrylamide, inorganic arsenic, aflatoxins and lead have no intake known to be harmless, so agencies judge them by a margin of exposure instead of setting a limit. There is nothing to count grams up to. These keep the method’s rating: how much a serving adds to what an average adult already eats.

Imported foods: category hazard defaults

Measured hazard rows exist only for reviewed foods. Since dataset release v0.3 (the data is now at release v0.6), some imported foods carry a hazard default by category, where the hazard follows the category whichever food it is. 1,842 of the 9,266 imported foods have one; the rest have no hazard data at all. For example: rice carries inorganic arsenic; swordfish, shark and fresh or frozen tuna carry mercury. Each is labelled category default, not measured for this food. A grams figure appears only where an agency published a concentration for the whole category; any other number names the agency and the food it was measured in.

An imported food with no hazard data on its page hasn’t been checked. That isn’t the same as clean.

Where each number comes from, and why

Daily amounts are Health Canada’s: its recommended intake for each vitamin and mineral, and its label value for sodium and for saturated and trans fat together. One exception: Health Canada sets no daily amount of its own for the fish omega-3s EPA and DHA, so they are measured against the European Food Safety Authority’s 250 mg a day. On every page, 20% of that amount reads “a lot”. Health Canada’s own shopper rule calls 15% a lot; we use one number so a percentage never changes meaning from one page to the next.

Safety limits come from the agency that set each one, named beside the figure (EFSA, Health Canada, the FDA and others). No single agency covers every hazard, and agencies sometimes disagree; where they do, the page says so. Amounts in food come from national databases (USDA FoodData Central, the Canadian Nutrient File) and, for cross-checks, the UK’s CoFID.

The score is a model

The score is our own construction, documented here: one model among many. Nutri-Score and the Health Star Rating are others, and they weigh foods differently. Another team could set our weights differently and put the same foods in a different order. Every setting is shown below so you can see where you would disagree. It compares foods for one goal; it is not a measurement of health.

Vitamin D, choline and two omega-3s joined the score in method v0.4. Vitamin D’s daily amount is set assuming little sun, so food has to supply it, and few foods do: the score now rewards the ones that do. The plant omega-3, ALA, is read from the food tables’ total for its fat family (18:3), which in plants is almost all ALA. The fish omega-3s, EPA and DHA, are counted together against the European Food Safety Authority’s 250 mg a day, because Health Canada sets no daily amount of its own for them (it says only that up to a tenth of the ALA range may come from them).

What the score leaves out, and why

  • Phosphorus, copper, manganese and pantothenic acid are shown on food pages but not scored: few people run short of them, and every scored nutrient counts the same, so adding them would tilt the score toward grains and nuts for nutrients that are rarely missing.
  • Added sugar has no rating: the food tables give total sugar, and few give added sugar, so the site can’t yet tell the sugar put in during making from the sugar in fruit or milk. It is shown, not rated.
  • Vitamin K2 is absent: the databases list one form for only a few foods, so a ranking would compare one form in a handful of foods and mislead.

The scores, in plain words

Each reviewed food gets a score between 0 and 1 for each goal, so foods can be put in order. The score asks one thing: for its calories, how much of what a body needs does this food bring?

  • Density how much of a day’s need the food supplies, on average, over those of the 22 nutrients we score that it has a value for. Each nutrient counts at most 100% of a day’s need, so one standout can’t carry the rest.
  • Breadth the share of its scored nutrients (of the 22) that the food supplies in a worthwhile amount: at least a tenth of a day’s need.
  • Reference intake (RDA, AI) the daily amount health authorities set for adults: the recommended dietary allowance (RDA), which meets the needs of nearly all healthy people, or the adequate intake (AI) where the evidence only supports an estimate.

Goals add three more ingredients: protein and fibre for the calories, and energy (calories) for the weight eaten.

Each ingredient is turned into a mark from 0 to 1 between two numbers, its anchors. For losing and gaining weight the anchors are fixed, so adding a food does not change another food’s score. For Everyday they are the lowest and highest values among the reviewed foods, so when foods are added they can be reset, and every Everyday score moves with them.

A goal is a recipe: the same ingredients in a different mix. The mixes are listed under “Goal presets” below.

Glossary

Score settings

These are the dials behind every score: which nutrients count, how much of a day’s need each can add, and the mix each goal uses. You don’t need them to use the site; they are here so anyone can check a score or disagree with one.

Every score on this site is computed from the settings below. Changing a setting means a new method version, and every page recomputes from it.

Provisional: the scores are a first version and are tuned in public, each change as a new method version.

Settings

  • Nutrients scoredProtein, Fibre, Vitamin A, Vitamin C, Vitamin E, Vitamin K1, Thiamin (B1), Riboflavin (B2), Niacin (B3, niacin equivalents), Vitamin B6, Folate, Vitamin B12, Calcium, Iron, Magnesium, Potassium, Zinc, Selenium, Vitamin D, Choline, Omega-3: ALA, Omega-3: EPA + DHA
  • Reference intake the higher of the male and female recommended dietary allowance (RDA) or adequate intake (AI), ages 19-30 (Health Canada DRI tables)
  • Density cap per nutrient 100 %
  • Breadth threshold 10 % of the reference intake per 100 calories (for the Everyday score: per serving, counting at most 100 kcal)
  • Values usedthe amount listed for the food itself; the USDA Standard Reference amount for the same food, where it has no listed amount of its own

A missing value is never counted as zero: a nutrient a food has no value for is left out of its average, and a part of a goal it has no value for is dropped while the other parts share its weight.

Goal presets

  • Gain weight, earlier version (protein per 100 kcal)Not used on food pages any more: protein counted per 100 calories, then energy, density and breadth.Protein per 100 kcal · 35 %Energy per 100 g · 25 %Breadth · 20 %Density · 20 %
  • Gain weight / build muscleFavours protein first, counted per 100 g of food, then energy (calories per 100 g), then density and breadth. The goal food pages use.Protein per 100 g · 35 %Energy per 100 g · 25 %Breadth · 20 %Density · 20 %
  • Lose weightFavours foods that bring many nutrients, protein and fibre for few calories, and are light for their weight.Density · 35 %Protein per 100 kcal · 25 %Breadth · 15 %Fibre per 100 kcal · 15 %Low energy density · 10 %
  • Everyday (no goal)Half density, half breadth, both counted for one serving of at most 100 calories. The default ranking.Breadth per serving (at most 100 kcal) · 50 %Density per serving (at most 100 kcal) · 50 %

Scaling anchors

The low and high number for each ingredient. A food at or below the low scores 0 on it; at or above the high, 1.

  • Breadth0 % → 86.4 % of the 22 nutrients
  • Density0 % → 48.4 % of a day’s need
  • Energy per 100 g17 → 583.6 kcal per 100 g
  • Fibre per 100 kcal0 → 9.1 g fibre per 100 kcal
  • Protein per 100 kcal0.255 → 13.5 g protein per 100 kcal
  • Breadth per serving (at most 100 kcal)0 % → 65 % of the 22 nutrients
  • Density per serving (at most 100 kcal)0 % → 32.9 % of a day’s need
  • Protein per 100 g0.148 → 23.6 g protein per 100 g

Each component is scaled from 0 at the low anchor to 1 at the high one. The lose-weight and gain-weight anchors are fixed numbers, unchanged since method v0.1, so adding a food does not move another food’s score on those goals. The Everyday anchors are the lowest and highest values among the reviewed foods; they are recalculated when that set grows (last on 21 October 2026), so adding foods can move every Everyday score.

Which study the calcium card uses

Only studies of the same variant compete. A study confirmed to match the listing's preparation beats one that doesn't say. Then the dose nearest one serving's calcium wins; ties go to more people, then fuller access to the paper, then the lower figure.

Changelog

v0.4 · 2026-10-22

Adopted on 2026-10-22, with data release v0.6. The same as v0.3 with four more scored nutrients, 22 in all: vitamin D, choline, the plant omega-3 ALA (read as the food tables’ total 18:3) and the fish omega-3s EPA and DHA counted together (against the European Food Safety Authority’s 250 mg a day; Health Canada sets no daily amount of its own for them). Before the change, reviewed foods missing a value for one of them were filled from the national food tables where a table lists one (a zero only where the table lists zero); the rest, mostly choline, stay missing and are named on the nutrient pages. The density and breadth anchors are re-derived over the reviewed foods.

Corrections