Facts stack. Nothing is scored.
Star ratings are the wrong tool for a safety decision. Here is what we do instead, and what we refuse to claim.
Two tracks, kept separate
Disclosure is a set of independent boolean tests against the published ingredient list or a business's stated policy. Each one cites the exact ingredient or evidence that triggered it.
Reports are what members observed, shown as counts and dates. Four members, most recent in March — not a rating out of five.
We don't average them together. A product whose label looks clean but that three people reacted to isn't a contradiction to smooth over. It's the most important thing on the page.
Positive and negative findings are not symmetric
This is the idea everything else follows from. Finding an allergen on a label is proof it's there. Not finding one is proof of absence only if the list is complete and every term is specific.
So there are three answers, not two.
| State | What it means |
|---|---|
| Contains | Named on the label. Certain — survives incomplete lists, generic terms, everything. |
| Does not contain | Only when the list is on file, every term resolved, and no generic term present. |
| Cannot determine | A generic term is present, or the list is missing or unreadable. Not a softer version of "does not contain." |
What Parfum does to a label
A single word on an ingredient list can stand in for a mixture of hundreds of compounds. When we see one, we cannot tell you the product is free of linalool, or of anything else undisclosed.
So a generic term doesn't attach a warning to a clean result. It removes the clean result. We are not entitled to that claim, so we don't make it.
| List complete | Generic term | Allergen named | What we can report |
|---|---|---|---|
| yes | no | yes | Contains — certain |
| yes | no | no | Does not contain — no substance we track is disclosed |
| yes | yes | yes | Contains — certain |
| yes | yes | no | Cannot determine — voided by generic term |
| no | — | yes | Contains — certain |
| no | — | no | Cannot determine — list incomplete |
Only two of those six rows let us tell you something is absent.
Why a clean label is weak evidence
We don't say "fragrance-free."
A label lists ingredients. It does not tell you what a product releases into the air, and those are different questions. Disclosure rules were written for other purposes and other exposure routes, and they carry concentration cut-offs — a great deal of what matters for something you breathe isn't required to be named at all.
So the strongest thing even a complete, fully specific list supports is: no substance we track is disclosed on this label. That is not the same as unscented, and we don't present it that way.
What we track, and why
The substances we look for aren't taken from any one regulator's list. A legal list records what somebody must label — which reflects jurisdiction, timing and lobbying as much as it reflects harm, and most of it was written about skin rather than lungs.
So every substance we track carries its own cited evidence, and you can read it. Where a substance also appears on a regulatory list, we record that as a fact about the substance — not as the reason we track it.
The list is community-sourced and evidence-gated: anyone can propose a substance, but we don't add one without sources anyone can check.
Natural is not a synonym for safe
Lavender oil, bergamot, citrus oils and "botanical blends" are fragrance ingredients. They're common triggers. We flag fragrance function, not fragrance origin, so a plant-derived fragrance ingredient is recorded exactly like a synthetic one.
Any system that treats "no synthetic fragrance" as clean is useless to the people this is for.