Raters split
Ingredient safety
A 80-point gap between the two loudest voices.
Cleaner options
See 5 cleaner alternatives
Same category, ranked by ingredient safety, never by affiliate payout.
Lowest 20 · highest 100 · gap 80
Also screened — no listing found
Also screened — no listing found
Coverage & match quality
5 ratings · 1 of 4 axes
no black box
We don't rate products ourselves. We collect what each public rater already says, put every scale on common ground, and keep the disagreements visible instead of averaging them away.
Collect each rater's own score
Every source keeps its native verdict for this product. We never invent a score for an axis a source didn't measure.
Normalize to 0–100, higher = better
Raters can use different scales and directions: some where a low number means safe, some where a high one does. We map them all onto one 0–100 axis and flip the ones that run backwards so the numbers are finally comparable.
Average per axis, but keep the spread
Scores on the same axis become one representative number (their mean). When raters split by 20+ points we flag it and keep every rater's number. A disagreement is never blended into silence.
Your weights make the overall
The ring is the weighted average of the four pillars using your weights. It's computed fresh every time and never stored, so there's no hidden “objective” default.
worked example · Ingredient safety
Raters split here, so this 41 is a midpoint, not a consensus. The spread stays on the “every rater” list above.
Greenlens Ingredient Scan
Independent · EU regulatory reference
Flagged 9 of 11 ingredients: 3 restricted, 1 of concern, 5 regulated allergens.
Starts at 100; 2 other ingredients carried no recognized regulated hazard. Absence of a flag means no regulated hazard was recognized — not proof of safety. This is one lens; see where raters disagree above.
Why this score
Every ingredient, under all three lenses
The Scan is one opinion. The strict and lenient lenses read the same list and land 54 points apart. See what each one flags, and what it costs.
Tune your weights
composite recomputes live
+No rater covers this axis for this product, so its weight can't move the score.
No rater covers this axis for this product, so its weight can't move the score.
No rater covers this axis for this product, so its weight can't move the score.
Data availability
Robust11 of 11 characterized
Our sources have reference data on all 11 listed ingredients.
| Ingredient | What it does | Safety | Data |
|---|---|---|---|
| Alcohol denatfragranceantimicrobialantifoaming | fragranceantimicrobialantifoaming | ANSES endocrine candidate· flagged by 3 of 9raters disagree | Referenced |
| aquasolvent | solvent | No flags in our sources | Well-characterized |
| parfumperfumingfragrance | perfumingfragrance | Transparency concern· flagged by 1 of 9raters disagree | Referenced |
| limoneneperfumingdeodorantsolvent | perfumingdeodorantsolvent | ANSES endocrine candidate· flagged by 3 of 9raters disagree | Referenced |
| linaloolperfumingdeodorant | perfumingdeodorant | EU harmonised skin sensitizer· flagged by 2 of 9raters disagree | Referenced |
| peg-40 hydrogenated castor oilsurfactant - cleansingsurfactant - emulsifying | surfactant - cleansingsurfactant - emulsifying | No flags in our sources | CosIng-catalogued |
| citronellolperfuming | perfuming | ANSES endocrine candidate· flagged by 2 of 9raters disagree | Referenced |
| citralperfumingflavouring | perfumingflavouring | ANSES endocrine candidate· flagged by 3 of 9raters disagree | Referenced |
| geraniolperfumingtonic | perfumingtonic | EU harmonised skin sensitizer· flagged by 2 of 9raters disagree | Referenced |
| ci 15510colorant | colorant | EU-restricted (with limits)· flagged by 2 of 9raters disagree | Referenced |
| ci 17200coloranthair dyeing | coloranthair dyeing | EU-restricted (with limits)· flagged by 2 of 9raters disagree | Referenced |
Where this came from
Product identity (name, brand, category) verified against auchan.fr ↗
Researched facts on Greenlens always carry the page that stated them — nothing is inferred from a model's memory.