How the LabelFacts Score is computed
The LabelFacts Score is a deterministic, reproducible calculation — not an AI output: the same product data always produces the same 0–100 number. The weights, caps, and thresholds that combine its inputs are LabelFacts' own editorial methodology. The algorithm is versioned — currently version 11 — and every published score records the version that computed it. A score is only displayed when it was computed by the current version.
The LabelFacts Score is educational information, not medical or nutritional advice. Product data comes from public databases and manufacturer labels and may lag reformulations.
Ingredient classifications cite published sources, including regulators and scientific bodies (such as FDA, EFSA, WHO/IARC, NTP, CIR, SCCS, EMA and NIH), US state and EU legislation (such as CLP hazard classes and California food-additive laws) and, for some entries, individual peer-reviewed studies — each cited per ingredient. The weights, caps, and thresholds that combine them — and therefore the 0–100 score — are LabelFacts' own editorial methodology.
What goes into it
Ingredient classifications, restrictions, and reference doses come from our reviewed ingredient database, which cites a specific published source for every entry. Those sources include regulators and scientific bodies — among them the U.S. Food & Drug Administration (FDA), the World Health Organization and its International Agency for Research on Cancer (IARC), the European Food Safety Authority (EFSA), the National Toxicology Program (NTP), the Cosmetic Ingredient Review (CIR), the EU Scientific Committee on Consumer Safety (SCCS), the European Medicines Agency (EMA), and the U.S. National Institutes of Health (NIH); legislation, including EU regulations (such as CLP hazard classification and the Cosmetics Regulation) and U.S. state laws (such as California's food-additive statutes and Proposition 65); and, for some entries, individual peer-reviewed studies, which are weaker evidence and deduct less. Nutrition and processing use the Nutri-Score and NOVA values published by Open Food Facts — published, independently maintained measures computed by a community-edited database, not by a regulator. Products used on the body or around the home are additionally assessed on GHS/CLP hazard classification, and supplements on independent third-party testing certifications. Before matching, label text is cleaned deterministically: statement markers, second-language repeats, and fragments that are provably not ingredients (addresses, phone numbers, lot codes) are excluded from the recognised-ingredient count.
Recognition is not endorsement: some reviewed entries — milkfat, unspecified vegetable oil, chocolate — carry no adverse authority classification and no benefit claim from us either. They count toward how much of a label we recognised, deduct nothing, and are shown as "Reviewed" rather than as a caution or a benefit. Third-party testing earns full credit only from verified evidence — a listing we matched in a public certification registry (NSF Certified for Sport, USP Verified, Informed Sport), cited by its registry page. A certification that appears only as text in a product's label data earns partial credit: label text is a claim, not a verification, and the databases it comes from are publicly editable.
How it is combined
Each input feeds a weighted category, and the weights adapt to the product type: nutrition and processing apply to food and beverages, hazard classification to personal care and household products, third-party testing most heavily to supplements. A category that does not apply to the product type is excluded from the calculation entirely — it does not score zero. Every weight, cap, and threshold is published in the app's Methodology screen, where each number is rendered directly from the same constants the calculator executes, so the disclosure cannot disagree with the shipped algorithm. If you need the current weight table and cannot access the app, email support@labelfacts.app and we will send it.
Beverages
For nutrition we prefer the Nutri-Score letter grade as Open Food Facts publishes it; when only the numeric nutrient-profile score exists we map it through the official cutoff tables, and beverages have their own, stricter table. When neither exists, the printed nutrition panel is used. For a beverage — a ready-to-drink liquid declared per 100 ml; powders, mixes, concentrates and syrups are not — we compute the official 2023 Nutri-Score beverage algorithm from that panel: points for energy, sugars, saturated fat and salt, more if the drink contains a non-nutritive sweetener, offset by protein, fibre and fruit or vegetable content. The fruit share is not printed on a panel, so it is estimated from the label and counted only when the label is entirely fruit or vegetable juice; a product that calls itself juice but whose label we cannot classify is left unassessed rather than graded. Grade A is reserved for plain water. Alcoholic drinks are outside Nutri-Score's scope and are not scored at all. For other foods the panel is read directly, and the exact point thresholds are published in the app's Methodology screen.
Only what we could assess counts
A category that applies but has no data behind it is excluded and the remaining weights are rescaled — missing data is treated as unknown, never as a finding against the product. Rescaling has a price in the other direction too: incomplete evidence cannot claim the top of the scale. Above a fixed pivot, the score is scaled down by the fraction of the applicable weight we could actually assess, so the highest band takes a substantially complete evidence base to reach.
Restricted ingredients set a ceiling
A product containing an ingredient under an active regulatory restriction cannot present as a good product however well it does elsewhere: the total is capped, and the cap falls as more restricted ingredients are present. Only ingredients matched by our reviewed database count toward this ceiling, each with the restriction it cites. "Restricted" means a published authority has restricted the substance for this kind of product — it is not our judgement, and a restriction that applies to another product type does not apply here.
When we don't show a score
Our reviewed database covers a few hundred substances; real labels contain many thousands. An ingredient we cannot match is a gap in our data, not evidence about the product, so we count what we could read: when too little of a label resolves to a reviewed classification — or there is no ingredient list (with the one fresh-produce exception below), or no nutrition signal where nutrition applies, or the product is an alcoholic drink (Nutri-Score is not defined for alcohol and we publish no health-style score for it) — the product is marked "we couldn't assess enough of this label" and no number and no tier are published for it anywhere: not in the app, not in rankings, not on these pages. You still see everything we do have, plus a line stating exactly how much of the label we recognised — for example, "We recognised 3 of 11 ingredients on this label."
The fresh produce exception: a bare fruit or vegetable has no ingredient list because it is its ingredient. When a food product lists no ingredients, its name is exactly an item on our short curated list of single-ingredient whole foods ("Bananas", "Spinach" — singular or plural, nothing else), and its category, if present, reads as fresh produce, we score it as that one reviewed whole-food ingredient, citing the same database entry the ingredient table uses. The exact-name rule is deliberate: "Banana Chips" or "Apple Juice" are processed products whose composition we have not read, and they stay unscored — as does a product carrying a produce name with a non-produce category, like a soda named "Orange". With no nutrition panel, the nutrition category is excluded and rescaled exactly like any other missing category. The full produce list and its count are published on the app's Methodology screen, rendered from the same constants the calculator executes.
Where AI fits — and where it does not
We use AI in four places, and the score is not one of them. First, identifying a product and reading its label from a photo, when you scan with the camera instead of a barcode. Second, when a barcode matches no record in our catalog or the public databases we query, a web-grounded extraction that locates the manufacturer's published ingredient list and returns it verbatim from its source — the product record then says so. Third, grouping the ingredients found for display, as the labelled "AI-generated classification" on product pages — those groupings are shown for information only. Fourth, helping moderate written reviews before they publish. They do not affect the score: no language model contributes a point in either direction, and no AI classification counts toward the restricted-ingredient ceiling. The score is computed only from the ingredient list and nutrition data in the record, matched against the cited database. That is why the same product data always scores the same. Every ingredient deduction cites its source; nutrition and processing use the published Nutri-Score and NOVA values, mapped through the official Nutri-Score tables where only a numeric score exists.
The five tiers
- 90–100Excellent — Few or no flagged ingredients
- 75–89Good — Minor findings in ingredients or nutrition
- 60–74Fair — Several findings in ingredients or nutrition
- 40–59Poor — Many findings in ingredients or nutrition
- 0–39Very Poor — Extensive findings in ingredients or nutrition
What the score is not
It is not a safety verdict, a laboratory result, or a finding that any product is harmful. We do not test products; we read what is on the label and what the sources cited in our ingredient database — authorities, legislation, and published studies — say about those ingredients, and we combine the two using our own weights. It is not peer reviewed, it is not endorsed by any of the authorities we cite, and it is not a regulator's view — a low score means our calculation counted things, not that a product breaks any rule. And it is only as current as the label data we hold: manufacturers reformulate and public databases lag. If something looks wrong, use "Report incorrect data" in the app or email support@labelfacts.app — see Support for the correction process.