Why ingredient scanner apps flag safe ingredients - and what we changed

Most scanner apps lose points for an ingredient because it appears on a list. We measured what that did to our own scores, then rebuilt the score around what each entry actually says.

By Alex Vasile, Founder, LuminellePublished

Most ingredient scanner apps deduct points because an ingredient appears on a list, whatever the list entry says. When Luminelle measured its own earlier score that way, 87% of all deducted points sat on ingredients the EU explicitly permits. The score now reads each entry for what it asserts, and the mean across 351 products moved from 71 to 85.

87%

of deducted points sat on Annex III, V and VI entries: ingredients the EU permits below a stated concentration

Luminelle catalogue measurement, September 2026

0–45

where mainstream, fully compliant products scored under the presence-based model

Luminelle catalogue measurement, September 2026

71 → 85

mean score across the catalogue after reading each entry for what it says

Luminelle catalogue measurement, September 2026

351

products with fully resolved ingredient lists in the replay, range kept at 40–100

Luminelle catalogue measurement, September 2026

What can a scanner actually see on a label?

An ingredient list tells you what is in a product, in descending order of weight, and then it stops. Article 19 of the EU Cosmetics Regulation requires that order only down to 1%; below that, ingredients may appear in any order. Nowhere on the label is a concentration. So every app in this category, ours included, works from the same thin evidence: the names, their order, and whatever it knows about the kind of product.

That matters because most regulation in this space is about amount. The EU register, CosIng, carries roughly 29,000 ingredient names, and its annexes say things like “permitted up to 1%”, “permitted in rinse-off products up to 2.5%”, or “must be named on the label above 0.001%”. A scanner cannot see whether a product obeys those numbers. It can only see that the ingredient is on the list.

Where did the points go under a presence-based score?

The obvious way to build a score, and the way Luminelle first built it, is to give every regulatory entry a weight and subtract that weight times a constant for each flagged ingredient. Our early model took the entry’s weight times eight points per ingredient. Whether the entry was a ban or a limit did not matter; presence was the trigger.

In September 2026 we replayed that model over our alpha catalogue and looked at where the points went. 87% of everything deducted came from Annex III, V and VI entries: ingredients the EU permits, at a stated concentration, that the label has no way to show. Preservatives such as phenoxyethanol and sodium benzoate, UV filters such as benzophenone-3 and homosalate, and the named fragrance allergens such as limonene and linalool carried most of the weight. Almost all of the remaining “bans” were grade conditions: petrolatum, which Annex II lists except where its full refining history is known, and butane, banned only above a butadiene threshold that cosmetic grade satisfies by definition.

The result was that mainstream, fully compliant products scored between 0 and 45. And the app’s own citation sat right next to the deduction: an ingredient page would quote the regulator, “permitted up to 1%”, and then take five points off. That is the exact critique cosmetic chemists have made of this category for years, and reading our own output, they were right.

What changed: three tiers instead of one list

The replacement reads each register entry for what it asserts about this product and sorts it into one of three tiers. The reasons and the points are the same ones shown against every ingredient in the app, and the full table is on the methodology page.

  1. A finding is dose-independent and can be verified from the label alone: an in-force ban in the EU or California, a ban for this kind of product, a use-conditional ban whose use this product is, or an ingredient the EU chemicals agency has concluded is an endocrine disruptor. Twenty points each, and nothing saturates it. Lilial, hydroquinone, zinc pyrithione and cyclotetrasiloxane are findings.
  2. Scrutiny means a regulator has the ingredient on its radar but the label cannot verify the level: a concentration cap, a named fragrance allergen, an open assessment, a ban passed but not yet in force, a Proposition 65 listing. Scored small, and saturating, so the first capped ingredient costs the most and the tenth almost nothing; ten preservatives never add up to a ban. Triclosan at 0.3%, benzophenone-3 at 6%, homosalate at 7.34%, methylisothiazolinone at 0.0015% in rinse-off products, limonene and linalool all land here.
  3. Listed, not scored covers entries that are not claims about this product at all: a grade or purity specification, a permitted-colourant listing, a condition that is not a concentration, a use this product is not, such as hair dye, or a cap the label itself proves is met. Shown against the ingredient, worth zero.

Two rules sit on top. Every ingredient counts once, in its most severe class. And products that stay on the skin have their scrutiny total multiplied by 1.4, a fraction of the roughly hundredfold difference in retention that the EU’s Scientific Committee on Consumer Safety assumes between leave-on and rinse-off products. The multiplier is deliberately timid.

Five ingredients, two readings
IngredientWhat the register saysPresence-based readingTiered reading
PhenoxyethanolAnnex V: permitted as a preservative up to 1%Flagged; points offScrutiny, small and saturating; not scored at all if the label’s order proves it is under 1%
Sodium benzoateAnnex V: permitted, up to 2.5% in rinse-off productsFlagged; points offScrutiny; in a typical cleanser the two capped preservatives cost 11.8 points between them
LimoneneAnnex III: a fragrance allergen that must be named above 0.001% in leave-on and 0.01% in rinse-off productsFlagged; points offScrutiny, two points, saturating at 14 across every named allergen on the label
LilialAnnex II: banned in the EU since March 2022FlaggedFinding, 20 points
PetrolatumAnnex II, except where the full refining history is known and the source is not a carcinogenFlagged as bannedListed, not scored: cosmetic grade is the grade that passes the exception
Points as shown in the app in September 2026; the full table is on the methodology page. Source: EU CosIng annexes.

What the label can prove: the 1% line

The label proves more than it seems to. Because Article 19 orders ingredients by weight down to 1%, the first ingredient whose legal cap for this kind of product is 1% or less marks the start of the sub-1% zone. Anything after that marker with a cap of 1% or more is, by the label’s own order, within its limit. Luminelle moves those to the not-scored tier. A softer version uses ingredients that are conventionally formulated under 1%, such as EDTA salts, gums, pH adjusters and tocopherol, as markers, and halves the penalty rather than removing it, because convention is not law.

Worked through on a real product: CeraVe Foaming Cleanser (EAN 3337875597197) resolves 18 ingredients to register entries and four carry a flag. Sodium benzoate and phenoxyethanol are under concentration caps the label cannot prove. Tetrasodium EDTA and ethylhexylglycerin appear only on an industrial classification inventory and are listed, not scored. Two capped ingredients cost 11.8 points, there is no leave-on multiplier because a cleanser is rinsed off, and the product scores 88. Nothing banned, two things under scrutiny, two things shown for transparency.

What happened to the scores

Replayed over the 351 products in the alpha catalogue with fully resolved ingredient lists, in September 2026, the tiered model moved the mean score from 71 to 85. The range stayed 40 to 100: the products at the bottom are still at the bottom, because a ban still costs twenty points and nothing saturates it. What moved were the compliant products that had been paying for their preservatives.

It is worth being precise about what that number is. It is our own measurement, of our own two models, over our own catalogue at that date. It is not a claim about any other app’s numbers, which we cannot see. It is published because every answer about this category repeats the same criticism, that scanner apps demonise safe ingredients, and we wanted to put a figure on how much of a naive score that criticism explains. In our case, most of it.

What this still cannot tell you

  • It still cannot see a concentration. A cap the label cannot prove is scored as scrutiny, which is a judgement about evidence, not about safety.
  • It scores regulatory status, not hazard. EWG Skin Deep asks what a substance can do at some dose in some context; that is a different and legitimate question, and it produces different answers.
  • It says nothing about whether a product works, how it feels, what it costs or how it was made.
  • It depends on the product type. An entry written for hair dye is not scored on a face cream. When the type cannot be told, including on a photographed ingredient list, the product is treated as leave-on, the stricter reading.
  • It reads the label you give it. A mistyped INCI name or an outdated label is an error the score inherits.

How to check any flag yourself

Every flag in the app links to the register entry it came from: the CosIng annex line, the California bill, the Proposition 65 listing or the ECHA assessment. The reason shown against the ingredient uses the same words as this page and the same points as the methodology table, so the ledger under any score adds up to exactly the penalty. If you think an entry is read wrongly, write to info@luminelle.ai with the regulator citation; corrections go in at the next source refresh.

Questions people ask

Why do ingredient scanner apps flag ingredients that dermatologists say are safe?
Because most of them score presence rather than meaning. The EU permits hundreds of ingredients below a stated concentration, and a scanner that treats “appears in Annex III” as a problem flags a compliant, well-formulated product. Under Luminelle’s own earlier presence-based model, 87% of all deducted points sat on entries the EU explicitly permits. Reading each entry for what it says removed that without removing a single genuine ban.
Is a restricted ingredient dangerous?
No. A restriction is a regulator stating the level up to which an ingredient is permitted, usually after a safety assessment. It is closer to a permission than to a warning. A ban is the thing to look for, and the app lists bans separately from restrictions for exactly that reason.
Did the change just make every product score higher?
The mean rose from 71 to 85 across 351 products, and the range stayed 40 to 100. A ban still costs 20 points and does not saturate, so products carrying one did not move. What rose were compliant products that had been losing points on permitted preservatives, UV filters and named fragrance allergens.
Is Yuka wrong, then?
Yuka answers a different question. It scores an ingredient by its risk category and says in its own terms that it does not account for how much of it is in the product. That is a hazard-style reading; Luminelle’s is a regulatory-status reading. The two disagree most on preservatives and UV filters, which is where the gap between presence and meaning is widest. The head-to-head is here.
How do I check a flag myself?
Tap the ingredient in the app and follow the link to the regulator’s own entry. The reason and the points shown against it are the same ones on the methodology page, so any score can be reconciled by hand.

Keep reading

Choosing an app · Scoring · September 1, 2026

What to look for in an ingredient scanner app

Eight questions to ask any scanner, each with a test you can run standing in the aisle. We make one of these apps, so the list is written to be checked against ours too.

By Alex Vasile

Luminelle vs YukaLuminelle vs Think DirtyLuminelle vs EWG Skin Deep

Scan something you already own.

Every flag links to the regulator entry behind it, and the points add up to the score. Free to download, free to scan.

Download on the App StoreGet it on Google Play

Out now on iPhone and Android.

Why scanner apps flag safe ingredients | Luminelle