OkoaSkin

Methodology

A transparent look at how our analyzer works - what we pull from your ingredient list, what we rate, what we flag, and where we draw the line between evidence and marketing.

1. Parsing the ingredient list

We accept two inputs: a pasted INCI list, or a photo of a product label. For photos we run Google Gemini 2.5 Flash-Lite, a vision-language model that reads text in context - it handles curved bottles, reflections, and small fonts better than traditional OCR because it reasons about what the text likely says (“Tocopherol” not “T0c0pher0l”).

Once we have the raw text, our parser normalizes it: strips bullet characters and decorative punctuation, lowercases and removes accents, and splits on commas while respecting parenthetical aliases so that Fragrance (Parfum) is recognised as a single ingredient with two names. Percentages and CI colour numbers are preserved but not used as ingredient names. Ingredients are kept in the order they appeared in the list, because INCI is concentration-ordered - the first ingredient is typically the most abundant.

2. Matching against the database

Every parsed ingredient goes through a three-tier match against our Postgres database:

  • Exact INCI match. The canonical INCI name is checked first.
  • Synonym match. We maintain a synonym table of common trade names and translations (e.g. Vitamin C Ascorbic Acid).
  • Fuzzy match. If nothing exact hits, we fall back to a trigram similarity search with a 0.3 threshold - enough to catch OCR typos and obvious misspellings without returning noise. Fuzzy matches are labeled with a confidence percentage on the result page so you can see when we are guessing.

If we still cannot match an ingredient, we list it as unmatched rather than silently dropping it. Unmatched ingredients are flagged for editorial review - that is how our database grows.

3. Rating individual ingredients

Each ingredient in our database carries a rating on a five-tier scale adapted from Paula's Choice Beautypedia:

  • Best - strong evidence for a benefit, very low irritancy risk.
  • Good - well-supported benefit, generally well-tolerated.
  • Average - functional but unremarkable, or useful in the right concentration with no notable concerns.
  • Poor - limited or questionable evidence, or measurable irritancy risk for common skin types.
  • Worst - known to cause measurable harm for most people, or with high-quality evidence of downside risk.

We cross-reference these against the CIR safety assessments, published irritancy and comedogenicity data, and the EWG Skin Deep database. When sources disagree, we weight peer-reviewed cosmetic science literature over advocacy-group ratings.

Comedogenic and irritancy ratings

Both are reported on a 0–5 scale, where 0 is “no documented risk” and 5 is “frequently documented cause”. These are separate from the overall rating because the same ingredient can be a strong active for one skin type and a trigger for another.

4. Computing the overall score

The overall score (0–100) is a weighted average of each rated ingredient's score, with higher weight given to ingredients that appear earlier in the list. That reflects the reality of INCI: ingredients must be listed in descending order of concentration down to 1%, so the first five entries typically dominate what the product actually does. Unmatched ingredients are excluded from the score rather than penalised.

5. Flags - the "What's Inside" chips

Each flag (alcohol-free, fragrance-free, sulfate-free, paraben-free, silicone-free, oil-free, fungal-acne safe, reef-safe, EU-allergen free) is computed directly from the ingredient match - we do not rely on front-of-label marketing claims. "Fragrance-free", for example, requires that no ingredient in the list carries a fragrance or essential oil function tag in our database, and that no EU-declared fragrance allergen is present. If a product is marketed as fragrance-free but contains masking agents that are fragrance-adjacent, our flag will reflect that.

6. Benefits and concerns

Benefits (hydrating, barrier support, brightening, anti-aging, antioxidant, soothing, exfoliating, UV protection) are detected by checking whether any matched ingredient carries the relevant function tag, and reported with a 1–5 strength based on how many such ingredients are present. Concerns work the same way. Neither is a prediction about a specific formulation - it is a summary of what the ingredients in the list are capable of contributing.

7. What this tool cannot tell you

Ingredient lists reveal what is in a product, not how much of each, how they interact in the finished formula, how stable they are in the jar, or how your skin will personally respond. Two moisturisers with almost identical INCI lists can feel very different because of concentration and emulsion structure, neither of which is on the label. Use this tool to filter out obvious mismatches for your skin and to understand what claims are plausible - not as a substitute for patch-testing or professional advice.

8. Editorial review

Every ingredient page is drafted with AI assistance against our structured schema, then reviewed by a human editor before publication. AI-drafted prose never ships unedited. Pages are re-reviewed on a rolling basis as new evidence appears; the "last reviewed" date on each ingredient page reflects the most recent pass.

9. Corrections

If you believe a rating is wrong or a source is outdated, tell us. We maintain an audit trail of rating changes so we can explain why a rating shifted. Corrections from qualified reviewers - cosmetic chemists, dermatologists, formulators - are prioritised and credited.