Method

How a rating gets made

A level here is a health claim, so this page publishes the register behind it — including the parts that do not flatter us.

The methodology of the Yllo food database

Yllo is a food database that documents intolerance axes — histamine with its liberators and DAO inhibitors, FODMAPs and their four carbohydrate classes, lactose, fructose, sucrose, sorbitol, oligosaccharides, salicylate, nickel, oxalates and gluten. It holds 927 foods and ingredients, each rated on all 12 axes, which is 11,124 food-axis combinations.

For each food and each axis, Yllo assigns a level — none, low, moderate, high, or a regulatory yes or no — when the available data allows one. Levels are established from scientific papers, regulations and composition tables, and the source behind each one is recorded with how deeply it was read.

A Yllo level is not a medical diagnosis, not a dietary recommendation, and not an individual tolerance threshold.

What a Yllo level is

A Yllo level describes the presence, the quantity or the regulatory status of a food compound according to an identified source. It states where a food sits on one axis. It does not state what any particular body will do with that food, because two people with the same intolerance do not share a threshold.

In brief

What is a Yllo level?
A documented classification of one food on one intolerance axis: none, low, moderate or high, or a regulatory yes or no.
Are Yllo levels medical advice?
No. A level is a composition or a regulatory status, never a diagnosis, a recommendation or a treatment.
Does every level carry a source?
No, and the figure is published rather than rounded: of the 2,386 levels that warn, 1,712 show the reference they rest on. The other 8,738 rows are absences — a food with no lactose in it — and an absence that no opened source names deliberately carries no citation.
Does Yllo check its citations?
Yes. A source is opened, read, and what it carries is compared with the statement it was cited for. What it CANNOT support is recorded too, which is what stops a per-serve threshold being cited as a composition.
Does Yllo publish its own errors?
Yes. 4 references have been taken down for not carrying what was attributed to them, each published with the paragraph saying what it failed to carry. 8 claims are retracted under a guard that stops them returning.
Is all the data certain?
No. 41 levels are recorded as certainly wrong with the right value not yet established; the cautious reading is served meanwhile. 263 level changes predate the register and have not been re-examined. 72 references are held and have never been opened, so they are not shown.
Does Yllo give an individual tolerance threshold?
No. Thresholds are individual, and where a published threshold exists it is cited from the source that publishes it rather than invented here.

A citation is not evidence

A scientific reference is not proof in itself: it has to actually support the statement it is attached to. That distinction is the whole method here, and it was learnt the hard way — a single pass of checking claims that already had citations printed under them found thirty-four substantive errors, roughly one in seven. The citations were present and often correct. The gap between the citation and the sentence was the defect.

A level is a claim, not advice

What a level states is a composition or a regulatory status: how much of a substance a food carries, or what the law says it may carry. It is not a prescription and not a diagnosis. Two people with the same intolerance do not share a threshold, so a level tells you where a food sits, never what your body will do with it.

The rule every level passes

No level is added or changed without a source someone actually opened, and what was opened is recorded. Not a citation that looks right next to the sentence — one that was read. The rule exists because it was broken first: a single pass of checking claims that already had citations printed under them found thirty-four substantive errors, roughly one in seven. The citation was never the problem. The gap between the citation and the sentence was.

How deeply each source was read

One tick meaning the same thing for a full article and for a catalogue record is a rounding, not a trace. Every opened source records the depth it was read to, and the figures below are the honest ones.

  • 4the article itself, tables included
  • 11a results section, a page, the passage a search surfaced
  • 6a composition table queried for the values used
  • 7the article or annex of a regulation
  • 82the abstract or a catalogue record only

So: 4 of the 110 opened sources were read in full text. That number reads badly and it is published anyway, because a page that rounded it up would be worth nothing.

A source on the page and a source we hold are different things

280 sources are held in all. Only 204 appear on the sources page, and the difference is the point.

  • 72we have the reference and nobody has opened it — not on the page
  • 94on the page, cited by a note, never reopened
  • 110opened and read, with what was checked recorded
  • 4opened, and it does not carry what it was cited for — taken down

What a source cannot support

Every opened source records its limits as well as its contents. A per-serve threshold is not a composition per 100 g. A ranking by food group does not order the foods inside the group. A paper that measured 103 foods says nothing about the 104th. That field is the one worth the most, because a source's limits are the part nobody remembers six weeks later — and it is what stops a measurement being cited for a food it never contained.

When a source does not hold, it comes off the page

Opening a source and finding it does not support what we attributed to it is not a neutral outcome: leaving it displayed keeps implying support that reading it disproved. 4 have been taken down, and each one is published here with what it failed to carry.

  • Hernández-Hernández O. et al. (2011). Free inositols and other low molecular weight carbohydrates in vegetables. Journal of Agricultural and Food Chemistry.

    oligosaccharides

    Cited on eight vegetables - taro, acorn squash, brussels sprouts, butternut squash, fennel, parsnip, rocket, sweet potato - under 'vegetable fructan content follows'. Opened by PMID 21366313: it determines FREE INOSITOLS by GC-MS, and its vegetables are chicory, spinach, cabbage, purple yam, eggplant, radish, oak leaf lettuce, artichoke, escarole and endive. Not one of the eight is in it, and inositol is not one of the twelve axes. It does report alpha-galactosides and kestose, which the oligosaccharide axis does measure - but 'in select vegetables', without saying which, so it attributes them to no food. Wrong vegetables and the wrong carbohydrate: with the eight sentences repaired, nothing cites it.

  • Böttcher I. et al. (2008). Histamine intolerance syndrome. HNO.

    histamine

    Cited on 64 additive sourceNotes, and on nothing else, under the sentence 'diamine oxidase inhibition follows Bottcher'. Opened by PMID 18649066: it is a narrative review in German of the histamine intolerance syndrome for ENT practice - symptoms, biochemistry, diagnosis, treatment - and it names no food additive at all. The triggers it does list are histamine-rich foods, alcohol and certain pharmaceuticals. It carries no measurement of any kind and no experiment on which substance inhibits DAO. The claim it was holding up, 'sulfites inhibit DAO', was itself retracted in v88 and guarded by withdrawn_claims.json - which watches note text and never watched sourceNote, so the retraction survived in the one field no reader can see. With the sentence gone, nothing cites it.

  • Brereton K. et al. (2012). Isolation of saccharides in dairy and soy products. Talanta.

    lactose

    Cited as 'lactose content in dairy' on 32 dairy sourceNotes and under seven cheese notes. It is an ANALYTICAL METHOD PAPER: solid-phase extraction to strip fat and protein, then ligand-exchange HPLC, and what its abstract publishes is recoveries of 88 to 110 per cent - not a content value for anything. Its matrices are milk, yoghurt, infant formula and soy beverages; there is no cheese of any kind in it, and every note citing it was a cheese. Withdrawn on the abstract: the full text may well tabulate the milk and yoghurt it analysed, and if that is ever read it can come back for those foods and only those.

  • Pearle M. et al. (2014). Medical management of kidney stones - AUA guideline. Journal of Urology.

    oxalates

    Opened in v135 by PMID 24857648 and kept on the page as 'clinical framing', which is the kind of phrase that survives because nobody can test it. It was cited by exactly two foods - rhubarb and Lemon juice - and by neither of their displayed notes, so no reader ever saw it. What the abstract carries is PROCEDURAL: purpose, method, that the AHRQ review yielded 46 studies, and that guideline statements were created. Not one dietary recommendation and not one figure; the statements are in the full text, which is behind a paywall and was not opened. It was also the last candidate for the cola's fructose claim and carries nothing on it either. A guideline we have only read the method of supports no sentence in this database - and 'clinical framing' was the attribution hiding that.

Withdrawing is deliberately expensive. The check fails while a withdrawn reference is still displayed and while any note still cites it, so the removal and the repair of every note that leaned on it have to land together. One of these four cost 289 notes of rework — which is the right amount of friction.

Every level that moved, and who checked it

299 examinations are on record, one per food and axis, each saying what established the value.

  • 134examined, the level stands — and says why
  • 124changed, with what established the new value
  • 41the current value is certainly wrong and the right one is not established. The cautious reading is served and the doubt stays on the list

41 sit at that third verdict. It is a real answer, not a failure: a named doubt stays visible where a commit message would not.

What is not settled

The database is older than its register. 263 level changes were made before the register existed and have not been re-examined since — FODMAPs on 60, Histamine on 39, Oligosaccharides on 37 leading the list.

That is not a list of errors. It is what moved without a source being named, and it is the real backlog. No competitor publishes one, which is exactly why it is here: a number you can check is worth more than an adjective you cannot.

What the registers have recorded

  • 1390 checkable claims registered with their source, date and method
  • 8 retracted claims under a guard that stops them coming back
  • 702 citation actions — added, moved, relabelled, removed — each written at the moment it was applied
  • 122 source lookups recorded, successful or not

Of those lookups, 21 returned the WRONG WORK — a surname alone is not a reference. Recording the dead routes and the wrong hits is why the next pass does not spend the same hour.

The state of the database

  • 11,124food × axis combinations
  • 1,390checkable claims registered with source, date and method
  • 299documented level examinations
  • 702recorded actions on citations
  • 122recorded source lookups
  • 8retracted claims
  • 41levels recorded as certainly wrong, right value not established
  • 263level changes predating the register, not re-examined
  • 280sources held
  • 110sources opened and recorded

These figures are published to make the state of the database measurable and verifiable — not to present Yllo as a database free of errors.

What this database does not claim

  • No medical advice, no diagnosis, no treatment.
  • No per-serve thresholds of our own. Where a threshold decides tolerance it is cited from the source that publishes it.
  • Of the 11124 food-axis rows, 8738 are absences — a food with no lactose in it. An absence that no opened source names carries no citation on purpose, because a source line signs every sentence above it.
  • Of the 2386 rows that warn, 1712 show the reference they rest on. The rest are the backlog above, not a claim we are hiding.

Frequently asked questions

What is a Yllo level?

A documented classification of one food on one intolerance axis: none, low, moderate or high, or a regulatory yes or no.

Are Yllo levels medical advice?

No. A level is a composition or a regulatory status, never a diagnosis, a recommendation or a treatment.

Does every level carry a source?

No, and the figure is published rather than rounded: of the 2,386 levels that warn, 1,712 show the reference they rest on. The other 8,738 rows are absences — a food with no lactose in it — and an absence that no opened source names deliberately carries no citation.

Does Yllo check its citations?

Yes. A source is opened, read, and what it carries is compared with the statement it was cited for. What it CANNOT support is recorded too, which is what stops a per-serve threshold being cited as a composition.

Does Yllo publish its own errors?

Yes. 4 references have been taken down for not carrying what was attributed to them, each published with the paragraph saying what it failed to carry. 8 claims are retracted under a guard that stops them returning.

Is all the data certain?

No. 41 levels are recorded as certainly wrong with the right value not yet established; the cautious reading is served meanwhile. 263 level changes predate the register and have not been re-examined. 72 references are held and have never been opened, so they are not shown.

Does Yllo give an individual tolerance threshold?

No. Thresholds are individual, and where a published threshold exists it is cited from the source that publishes it rather than invented here.

What a Yllo level is

A Yllo level describes the presence, the quantity or the regulatory status of a food compound according to an identified source. It states where a food sits on one axis. It does not state what any particular body will do with that food, because two people with the same intolerance do not share a threshold.

A citation is not evidence

A scientific reference is not proof in itself: it has to actually support the statement it is attached to. That distinction is the whole method here, and it was learnt the hard way — a single pass of checking claims that already had citations printed under them found thirty-four substantive errors, roughly one in seven. The citations were present and often correct. The gap between the citation and the sentence was the defect.

The rule every level passes

No level is added or changed without a source someone actually opened, and what was opened is recorded. Not a citation that looks right next to the sentence — one that was read. The rule exists because it was broken first: a single pass of checking claims that already had citations printed under them found thirty-four substantive errors, roughly one in seven. The citation was never the problem. The gap between the citation and the sentence was.

How deeply each source was read

So: 4 of the 110 opened sources were read in full text. That number reads badly and it is published anyway, because a page that rounded it up would be worth nothing.

When a source does not hold, it comes off the page

Opening a source and finding it does not support what we attributed to it is not a neutral outcome: leaving it displayed keeps implying support that reading it disproved. 4 have been taken down, and each one is published here with what it failed to carry. Withdrawing is deliberately expensive. The check fails while a withdrawn reference is still displayed and while any note still cites it, so the removal and the repair of every note that leaned on it have to land together. One of these four cost 289 notes of rework — which is the right amount of friction.

What is not settled

The database is older than its register. 263 level changes were made before the register existed and have not been re-examined since — FODMAPs on 60, Histamine on 39, Oligosaccharides on 37 leading the list. That is not a list of errors. It is what moved without a source being named, and it is the real backlog. No competitor publishes one, which is exactly why it is here: a number you can check is worth more than an adjective you cannot.