Ingredient Intelligence Engine
Messy label text in, canonical substances out — every resolution scored and sourced.
The hard part is the names
Scan a product label and you get chaos: INCI names, E-numbers like E300, Colour Index codes like CI 77491, French aliases like eau, and undisclosed mixtures like parfum. The engine resolves each token to a canonical substance and — the part most scanners skip — reports how it resolved it and with what confidence. Unresolvable tokens are marked as such, never guessed.
Health scoring follows a documented, source-cited methodology with an emphasis on endocrine-disruption evidence, personalized by user profile. The seed database is ~41 hand-curated substances, each individually sourced.
{
"tokens": [
{ "raw": "AQUA", "substance": "Water", "method": "inci-alias", "confidence": 1.0 },
{ "raw": "E300", "substance": "Ascorbic acid", "method": "e-number", "confidence": 1.0 },
{ "raw": "CI 77491", "substance": "Iron oxide red", "method": "colour-index","confidence": 1.0 },
{ "raw": "parfum", "substance": "Fragrance (undisclosed mixture)",
"method": "mixture-flag", "confidence": 0.9 },
{ "raw": "xylotrol", "substance": null, "method": "unresolved", "confidence": 0.0 }
],
"note": "unresolvable tokens are marked, never guessed"
}Honest scope
Phases 0–2 of 6 are complete and verified: the resolution engine works and is tested. Product ingestion, scoring UX, and the mobile app are the next phases. This page will grow with them.
Built with
Every technology this project runs on, and the job it does here. Each one links to the other projects it appears in.