A competitor's INCI list, turned into a starting point — not an assay result.
Tamats takes a product name, a raw INCI list, a product page URL, or a photo of a back label and turns it into a per-ingredient percentage range, a confidence tier, and a deterministic phase grouping — a bench starting point, never a finished formula or a point-estimate composition. The ranges come from descending-order labelling rules and compiled legal maxima, not a lab assay: no product was tested, so the true composition can differ from the estimate at any point the underlying INCI order doesn't legally constrain. A bare product name with no list, URL or photo is recalled by the language model and is explicitly marked unverified, with no citations attached.
Cloning a competitor's formula from its ingredient list is a standard, legitimate first move in cosmetic R&D — labels are public and the ordering rule tells you real information. What it isn't is chemistry: no back-label photo tells you the true percentage of the ingredient three rows down, and a tool that pretends otherwise is worse than one that says clearly how wide the range actually is.
What you do with it
Four input paths
A product name (language-model-recalled, unverified), a raw INCI list (grounded, citable), a product URL (page fetched and parsed), or a photo of a back label (read by the vision model) — each produces a source ingredient list; a label photo that can't be read is refused, never guessed at.
Ranges and confidence, never a point estimate
Each ingredient gets a low/high percentage band and a confidence tier, computed from the descending-order constraint chain, compiled legal maxima, and the point where the 1% ordering rule stops carrying position information — never a single fabricated number.
Deterministic phase grouping
The deconvolved list buckets automatically into water, actives, base and preservation phases using the ingredient's own CosIng function data, so a clone lands pre-organised in the formula builder rather than as a flat list.
Underdose, allergen and incompatibility flags, applied automatically
The same checks available on a manually built formula run on the reverse-engineered one — a marketed active sitting at the 1% line, an undeclared Annex III allergen, a known pairwise conflict — surfaced on the estimate as soon as it exists.
What it computes over
—The source INCI list, extracted from the input you provided
—The INCI descending-order labelling rule, applied as a monotonic constraint chain
—Legal maximum concentrations from the compiled compliance corpus, where one applies
—A small set of known-ingredient priors (water, common humectants and preservatives) as soft, labelled defaults
Where it stops
This is inferred from label order and legal ceilings, not an assay — no chromatography, no lab test, nothing measured on the actual product. Treat every range as a hypothesis to confirm on the bench, not a verified composition.
A bare product name with no list, URL or photo produces an unverified result recalled by the language model, with no citations — always prefer the real INCI list, the product page, or a label photo.
Per-ingredient bands are never rescaled to force their midpoints to sum to 100% — doing so would manufacture precision the method doesn't have, so the sum is reported as an honest disclosure signal instead.
Below the 1% ordering line, position stops being legal evidence — confidence drops to low there by design, and the lower bound widens rather than staying tightly guessed.
Who picks it up from here
The formulator at the bench, who treats every band as a starting hypothesis and confirms the real composition through their own trial formulation.
Questions
Is a reverse-engineered formula an accurate lab analysis?
No — nothing about the product is measured. The ranges come from the INCI descending-order rule and compiled legal maxima applied to the label's own ingredient order, which is real information but not an assay. Treat the output as a starting point for bench work, not a verified composition.
What happens if I only give a product name, with no ingredient list?
The model recalls what it knows about that product from training, and the result is explicitly marked unverified with no citations attached — it is the weakest of the four input paths. An INCI list, a product URL, or a back-label photo all produce a grounded result instead.
Why don't the percentage ranges add up to exactly 100%?
Because forcing them to would invent precision the method doesn't have — the true split among under-determined ingredients is genuinely unknown, and rescaling their bands would make them look more derived from the label than they are. The sum is shown as an honest signal, never silently corrected.
Check it on your own formula
Paste an INCI list into the free compliance scan and read the citations yourself — no account, no key. Or see the rest of the platform.