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 6 of 28 ingredients: 1 restricted, 1 of concern, 3 regulated allergens.
Starts at 100; 23 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 29 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
Robust27 of 28 characterized
Our sources have reference data on 27 of 28 listed ingredients; 1 is uncharacterized in our data — a gap, not a clean bill.
| Ingredient | What it does | Safety | Data |
|---|---|---|---|
| Aqua/Water/Eau | No flags in our sources | Well-characterized | |
| Glycerinperfuminghumectantdenaturant | perfuminghumectantdenaturant | No flags in our sources | Well-characterized |
| Hydrogenated Farneseneemollientskin conditioningsolvent | emollientskin conditioningsolvent | No flags in our sources | CosIng-catalogued |
| Hydroxypropyl Starch Phosphatebulkingviscosity controlling | bulkingviscosity controlling | No flags in our sources | CosIng-catalogued |
| Heptyl Glucosidesurfactant - cleansing | surfactant - cleansing | No flags in our sources | CosIng-catalogued |
| Panthenolantistatichair conditioningskin conditioning | antistatichair conditioningskin conditioning | No flags in our sources | Well-characterized |
| Helianthus Annuus Flower Extractskin conditioning | skin conditioning | No flags in our sources | CosIng-catalogued |
| Helianthus Annuus Sprout Extractskin conditioning | skin conditioning | No flags in our sources | Well-characterized |
| Helianthus Annuus Seed Oilfragranceemollientskin conditioning | fragranceemollientskin conditioning | No flags in our sources | Well-characterized |
| Ricinus Communis Seed Oilperfumingfragranceskin conditioning | perfumingfragranceskin conditioning | No flags in our sources | Well-characterized |
| Simmondsia Chinensis Seed Oilemollienthair conditioningskin conditioning | emollienthair conditioningskin conditioning | No flags in our sources | Well-characterized |
| Hippophae Rhamnoides Oilemollientskin conditioning | emollientskin conditioning | No flags in our sources | CosIng-catalogued |
| Hydrogenated Castor Oil/Sebacic Acid Copolymeremollienthair conditioningskin conditioning | emollienthair conditioningskin conditioning | No flags in our sources | CosIng-catalogued |
| Guar Hydroxypropyltrimonium Chloridefilm formingantistaticskin conditioning | film formingantistaticskin conditioning | No flags in our sources | CosIng-catalogued |
| Polyquaternium-37film formingantistatic | film formingantistatic | No flags in our sources | CosIng-catalogued |
| Hydroxypropylgluconamidehumectanthair conditioning | humectanthair conditioning | No flags in our sources | CosIng-catalogued |
| Hydroxypropylammonium Gluconatehumectanthair conditioning | humectanthair conditioning | No flags in our sources | CosIng-catalogued |
| Parfum/Fragrance | Transparency concern· flagged by 1 of 9raters disagree | Referenced | |
| Cetrimonium Chloridepreservativeantimicrobialantistatic | preservativeantimicrobialantistatic | EU-restricted (with limits)· flagged by 2 of 9raters disagree | Referenced |
| Citric Acidfragrancechelatingbuffering | fragrancechelatingbuffering | Health Canada Hotlist — restricted· flagged by 1 of 9raters disagree | Referenced |
| Tartaric Acidfragrancebuffering | fragrancebuffering | Health Canada Hotlist — restricted· flagged by 1 of 9raters disagree | Referenced |
| Benzyl Alcoholpreservativeperfumingsolvent | preservativeperfumingsolvent | EU harmonised skin sensitizer· flagged by 2 of 9raters disagree | Referenced |
| Sodium Benzoatepreservativefragranceanticorrosive | preservativefragranceanticorrosive | No flags in our sources | Well-characterized |
| Potassium Sorbatepreservativefragrance | preservativefragrance | No flags in our sources | Well-characterized |
| Phenoxyethanolpreservativeantimicrobial | preservativeantimicrobial | Mild sensitizer for some· flagged by 1 of 9raters disagree | Referenced |
| Hydroxycitronellalperfuming | perfuming | EU-regulated fragrance allergen· flagged by 1 of 9raters disagree | Referenced |
| Limoneneperfumingdeodorantsolvent | perfumingdeodorantsolvent | ANSES endocrine candidate· flagged by 3 of 9raters disagree | Referenced |
| VCDM01-O23 | Not in our sources | No data |