Cleaner options
See 12 cleaner alternatives
Same category, ranked by ingredient safety, never by affiliate payout.
Coverage & match quality
1 rating · 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
Greenlens Ingredient Scan
Independent · EU regulatory reference
Flagged 2 of 28 ingredients: 1 prohibited, 1 regulated allergen. Score capped: a prohibited (banned) substance is present.
Penalties alone would give 42, but a prohibited substance is present, so the score is capped at 15 — a genuine hazard isn’t diluted away by a long ingredient list.
Starts at 100; 26 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 85 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
Robust26 of 28 characterized
Our sources have reference data on 26 of 28 listed ingredients; 2 are uncharacterized in our data — a gap, not a clean bill.
| Ingredient | What it does | Safety | Data |
|---|---|---|---|
| Aqua [Water | Not in our sources | No data | |
| Sodium cocoyl sarcosinatecleansinghair conditioningsurfactant - cleansing | cleansinghair conditioningsurfactant - cleansing | No flags in our sources | CosIng-catalogued |
| Cocamidopropyl hy- droxysultaineantistaticcleansinghair conditioning | antistaticcleansinghair conditioning | No flags in our sources | Well-characterized |
| Ammonium lauryl sulfatecleansingfoamingsurfactant - cleansing | cleansingfoamingsurfactant - cleansing | No flags in our sources | Well-characterized |
| Lactic acidhumectantbufferingskin conditioning | humectantbufferingskin conditioning | Health Canada Hotlist — restricted· flagged by 1 of 9raters disagree | Referenced |
| Chamomilla recutita flower extractfragranceskin conditioning | fragranceskin conditioning | No flags in our sources | Well-characterized |
| Anthemis nobilis flower oilperfumingfragranceskin conditioning | perfumingfragranceskin conditioning | No flags in our sources | CosIng-catalogued |
| Prunus amygdalus dulcis fruit extracthair conditioningskin conditioning | hair conditioningskin conditioning | No flags in our sources | CosIng-catalogued |
| Citrus aurantium dulcis flower extractskin conditioning | skin conditioning | No flags in our sources | CosIng-catalogued |
| Aloe barbadensis leaf extracthumectantemollientoral care | humectantemollientoral care | IARC possible carcinogen (Group 2B)· flagged by 1 of 9raters disagree | Referenced |
| Helichrysum italicum flower extractperfuming | perfuming | No flags in our sources | CosIng-catalogued |
| Lavandula angustifolia flower extractfragrancecleansingdeodorant | fragrancecleansingdeodorant | No flags in our sources | CosIng-catalogued |
| Foeniculum vulgare fruit extractemollientsoothingtonic | emollientsoothingtonic | No flags in our sources | CosIng-catalogued |
| Salvia sclarea extractanti-sebumastringentsoothing | anti-sebumastringentsoothing | No flags in our sources | CosIng-catalogued |
| Althaea officinalis root extractskin conditioning | skin conditioning | No flags in our sources | CosIng-catalogued |
| Sodium lactatehumectantbufferingkeratolytic | humectantbufferingkeratolytic | No flags in our sources | Well-characterized |
| Sodium PCAhumectantantistatichair conditioning | humectantantistatichair conditioning | No flags in our sources | Well-characterized |
| Fructosehumectant | humectant | No flags in our sources | CosIng-catalogued |
| Glycineantistaticbufferinghair conditioning | antistaticbufferinghair conditioning | No flags in our sources | Well-characterized |
| Inositolhumectantantistatichair conditioning | humectantantistatichair conditioning | No flags in our sources | CosIng-catalogued |
| Niacinamidesmoothing | smoothing | No flags in our sources | Well-characterized |
| Ureahumectantantistaticbuffering | humectantantistaticbuffering | EU-prohibited· flagged by 2 of 9raters disagree | Well-characterized |
| Gly- cerinperfuminghumectantdenaturant | perfuminghumectantdenaturant | No flags in our sources | Well-characterized |
| Behenamidopropyl dimethylamineantistaticsurfactant - emulsifying | antistaticsurfactant - emulsifying | No flags in our sources | CosIng-catalogued |
| Benzyl alcoholpreservativeperfumingsolvent | preservativeperfumingsolvent | EU harmonised skin sensitizer· flagged by 2 of 9raters disagree | Referenced |
| Parfum [Fragrance | Not in our sources | No data | |
| Sodium benzoatepreservativefragranceanticorrosive | preservativefragranceanticorrosive | No flags in our sources | Well-characterized |
| Sodium dehydroacetatepreservative | preservative | No flags in our sources | CosIng-catalogued |