FRESH — what it takes to say whether a packaged food is healthy, and explain why
Research summary · FRESH · July 2026
What it takes to say whether a packaged food is healthy — and explain why
Eight federal databases describe what American foods contain. They do not share
an identifier. Five published expert systems can judge a food once you have the whole picture —
and they disagree with each other. FRESH is the working infrastructure that closes the first
problem and reports the second.
See it
running on 666 real products →
Ask whether a packaged food is healthy and you have asked a question no single measurement
answers. It depends on nutrients, on food groups, on bioactives, on how heavily the food is
processed, on what contaminants it carries, and on how much of it people actually eat.
It is not a question any single expert answers either. More than 200 food-rating systems have
been published, and they disagree.
Same problem, two levels. It turned out to have the same answer at both:
don't choose — integrate the measurements, run all the experts, and report the
disagreement.
Two layers, and the line between them
Almost every argument about food ratings collapses two different jobs into one. Establishing
what is in a food is a measurement problem with a right answer. Deciding whether that
makes it healthy is a judgment. FRESH separates them into two products with two release
lines, and the separation is the design decision everything else follows from.
The map · everything else sits inside thisFig 1
Everything below the line is measurement; everything above it is judgment.
That boundary is why the composition layer can be handed to someone who disagrees with our
ratings entirely and still be useful to them. Each figure that follows carries a tag naming
where on this map it sits.
No one measurement answers it
Nutri-Score is the simplest of the five systems we run, and the one printed on packaging across
Europe. It needs energy, sugars, saturated fat, sodium, fibre and protein — all of which sit on a
Nutrition Facts panel — plus the fruit, vegetable, nut and legume fraction of the product.
That last term is mandatory. It is not a nutrient, it is a food-group quantity, and it never
appears on packaging. Across 80,000 label cells checked, it appeared zero times.
So Nutri-Score cannot be computed from a label. Not computed poorly — not computed. And the
pattern steepens as the systems get more ambitious: NRF 9f.3 takes 12 inputs, NRF 4:3:3 takes 10,
Nutri-Score 7, Food Compass 54, FPro 58. Not one of the five is computable from a Nutrition
Facts panel.
The missing inputs are not exotic. USDA has measured nearly all of them. It has measured them in
eight different places.
USDA has the answers, in eight places
There is no single USDA food-composition database. There are several partial ones, built for
different purposes over different decades, keyed three incompatible ways. Each is authoritative on
its own dimension and silent on the others. Food-group values exist twice, once per vocabulary.
Flavonoids exist twice the same way. A question as ordinary as how much whole grain, and how
much quercetin, is in this food crosses at least two vocabularies — and joining on food name
is not a join.
Why nutrients stop at 68.3% and not 100%. SR has only assayed a
fraction of its own 149 analytes on any given food — vitamin D isoforms, menaquinone-4,
fluoride, individual tocotrienols were simply never measured on most items — and the rollup
refuses to emit a value for a recipe unless every ingredient contributed one, rather than
quietly treating an unmeasured ingredient as a zero. The remainder is the edge of what USDA has
measured, and it is declared on the row rather than filled. Integration can move a measurement
to where it belongs; it cannot create one.
The rollup is checked against USDA's own answer. Where USDA publishes an artifact we can
rebuild, we rebuild it and compare cell by cell rather than in aggregate. The FPED rebuild
reproduces the published artifact with 0 mismatches across 262,071 cells. It also recovers
85 dishes that had been silently zeroed, and surfaces 6 candidate errata in the
published file — findings that only appear when the comparison is per-cell.
From a shelf label to a full record
USDA's branded release catalogues 462,141 retail products, each described by a mean of
13 of the 236 attributes: whatever fits on a Nutrition Facts panel. Stage two decides which
USDA food each product actually is, so it can inherit the rest. 86,937 products
are confirmed and shipped to date; the pipeline is built, benchmarked and running, and extending
it across the catalogue is a question of compute and funding rather than method.
Each step does one job, and the order matters. Nutrient values can
reject an implausible match but never promote one: corn chips and potato chips are
nutritionally near-identical and are not the same food. Only the review step has the world
knowledge to tell smoked beef sticks from potato sticks.
This is the whole return on the integration work. Matching itself costs
almost nothing — a product simply inherits what its matched food has — so the value comes from
how complete that food's record already was. Every filled value records its origin, which is
what keeps an inherited mineral from ever being mistaken for a measured one. The contaminant
axis shows the discipline most clearly: rather than average across a recipe or zero-fill the
ingredients nobody sampled, each value carries the fraction of the food's weight it accounts
for, so it reads as a declared lower bound. One refinement is still open and stated as such —
moisture concentration is not yet applied, which understates cooked foods.
How the matching performs against published work
Two 2026 papers set the state of the art for mapping food descriptions onto a reference database,
and Lemay et al. published their benchmarks. We adopted them. Retrieval — putting the right food
in front of the selector — is the part that is essentially solved:
82.0%
FRESH embedding arm, correct food ranked first — against Lemay's published 77%
97.7%
FRESH in the top five — against Lemay's 96%
99.0%
top-five recall for our full retrieval union, lexical and semantic combined
84.6%
of the second benchmark resolves by direct identifier join — what a unified keyspace buys
What this benchmark is, and is not. It maps one research database to
another — curated dietary-recall descriptions against a few hundred candidate foods, both written
in controlled scientific vocabulary. That is a far tidier problem than matching hundreds of
thousands of retail products written in marketing copy. It shows our components are competitive on
the field's own yardstick; it does not measure the production task, which is harder. Notably,
47% of the benchmark items have no correct answer at all, and the right response is to
refuse — so scoring matched and unmatched items together is the only honest measure.
Where we trail, and why it is a choice. At our production operating
point we score 61.6% on matched items against Lemay's 82.2%, because our selector refuses
salted-for-unsalted and raw-for-steamed substitutions — for nutrient imputation those are
different foods. Change one instruction, from "find the same food" to "find the closest usable
donor", and the same pipeline reaches 88.0%, above their 82.2%, at the cost of correct
refusals falling to 39.1%. Where to draw that line is a decision about consequences: a
surveillance database wants the strict end, where a wrong match silently corrupts every product
that inherits it; a consumer recommender may want the other. FRESH exposes the choice and
reports which setting produced a release rather than hard-coding it.
The matching step itself is settled science, and we say so. All three systems retrieve
candidates and let a model select or refuse. The difference is what surrounds that step.
Capability
FRESH
Lemay 2026
Hauff 2026
Retrieve candidates, then let a model select — or refuse
Build the target database first, by merging several sources
Provenance on every value — source, method, confidence
Nutrient feasibility can veto an implausible match
Preparation form is part of identity — raw is not steamed
Expert rating systems scored on the output
present partial — Lemay wanted the nutrient gate and dropped it; Hauff names form as future work
Only the first row is a matching capability, and all three have it. The rows below it
are what a database has to carry before a rating can be computed from it at all. A text-only
matcher can name the right food; it cannot tell you what that food contains across every dimension
a rating system asks for, or where each of those numbers came from.
And no one expert answers it either
With a complete record in hand, holes and all, the systems can finally run. Score whole-wheat
bread — a food most people would call straightforwardly healthy — against roughly 6,450 US foods.
The spread is not noise. FPro is a processing score and marks the
loaf down for being an industrially produced bread; NRF 4:3:3 rewards its nutrient density and
places it near the top. Both are behaving correctly, because they are measuring different
things. Average them and you get a confident 74th percentile — and you have destroyed the only
information that mattered. Report the middle with its spread and the honest answer is
Uncertain.
Run the whole stack on 666 matched retail products and the pattern holds across the shelf:
13%20%51% Uncertain16%
Healthier Neutral Uncertain Unhealthier
On half the shelf, the published experts do not agree closely enough to support a verdict. That
counts as a finding only because of the integration underneath it — fill a missing composition
value quietly and the disagreement stops being a property of the systems and becomes an artifact
of the filling.
The framework itself is published, and so is its application: across 20 carbohydrate staples the
experts were Uncertain on 15 of 20, and consumer belief misaligned with expert judgment on
17 of 20 — measured against 11,503 belief distributions from 1,438 US consumers.
The FRESH-Food product surface — 666 matched products with label images, ingredient statements, the matched USDA food and the five-system spread.
The honest weakness is over-refusal, not retrieval. FRESH ranks the correct food first
more often than the published reference (82.0% against 77%) and then declines to certify a share
of those correct retrievals. That is why the strict setting reports 61.6% on answerable items
against the hybrid's 82.2%. It is a deliberate, tested choice, and the loose setting shows the
ceiling is 88.0%. No single setting dominates every column.
Where others are ahead of us. Hauff shows a fine-tuned model beating an individual human
expert and names labeled training data as the bottleneck; we hold such a corpus and have not used
it that way yet. Lemay set the external-benchmark discipline, which we adopted only after the
fact.
And the gold labels are themselves a loose reference. We found published items scored
wrong that are correct, and items scored correct that are only approximations. Agreement with
those choices is not the same thing as accuracy — which is why no purpose-neutral gold standard
for this task exists yet. Building one is the gap a shared public framework is best placed to
close.
Literature
Erndt-Marino J, O'Hearn M, Menichetti G. An integrative analytical framework to identify
healthy, impactful, and equitable foods: a case study on 100% orange juice. International
Journal of Food Sciences and Nutrition. 2023;74(6):668–684.
doi:10.1080/09637486.2023.2241672
Erndt-Marino J, Ghirardelli A. Educational gaps and communication priorities for the
healthfulness of carbohydrate foods. Journal of the American Nutrition Association.
2026. doi:10.1080/27697061.2026.2687436
Lemay DG, Strohmeier MP, Stoker RB, Larke JA, Wilson SMG. Evaluation of large language models
for mapping dietary data to food databases. The Journal of Nutrition. 2026;156:101678.
doi:10.1016/j.tjnut.2026.101678
Hauff P, Krems C, Kohl J. Leveraging large language models to maintain a branded food product
database. npj Science of Food. 2026;10:191.
doi:10.1038/s41538-026-00909-1