Skip to content

Compliance: allergens, shelf life, INCI

The Compliance & data quality section of each ingredient page holds the facts you need once a recipe leaves the kitchen: which allergens it brings in, how long it keeps, how dense it is. Fill them once per ingredient and they follow the ingredient into recipe sheets and declarations.

Field What it holds
Allergens Tags such as gluten, milk, egg
Shelf life (days) How long the raw ingredient keeps
Density Grams per ml, for volume to mass conversion
Nutrition (per 100 g/ml) Facts per 100 g, e.g. energy_kcal, protein_g
INCI name The cosmetic nomenclature, e.g. Olea Europaea Fruit Oil
CAS number The registry number, for safety data sheets
Country of origin Two-letter code, e.g. FR
Supplier reference Your vendor’s own code for this ingredient

Click Edit on the section to change any of them.

Labeled as is not here. It is the name your labels declare, Raspberries for Frozen raspberries, so it sits under the ingredient’s own name in the Edit dialog at the top of the page. Its other languages live on the Translations page with every other word your labels print.

Allergens roll up from ingredients into the recipes that use them, so a recipe sheet can state what a batch contains without you re-checking fifty records. Density is load-bearing: formula math runs in grams, and density is the bridge whenever you measure by volume (mass-based formulas explains why). Shelf life documents how long the ingredient keeps, which is worth having on the record when you log delivery lots with expiry dates.

Each field carries a verification state: Human-verified or Unverified. Unverified values are excluded from labels and compliance until a person confirms them. The distinction exists because values can arrive from AI enrichment or bulk imports: convenient, but nothing to print on a jar unchecked. Editing a field yourself, or accepting an AI suggestion with Accept & verify, marks it verified.

The same section serves a skincare bench. Record the density of your oils and butters (formula percentages need mass), tag the fragrance allergens (linalool, limonene, citral), and give each ingredient its INCI name (“Butyrospermum Parkii Butter”) beside the name you call it by on the shelf.

That field is what a batch’s label data builds a cosmetic declaration from: a flat INCI list in descending order of what went in. The INCI option stays unavailable until every ingredient over 1% of the batch carries a name, and it tells you which ones are missing.

Nutrition figures are per 100 g of the ingredient, keyed by name: energy_kcal, fat_g, saturated_fat_g, carbohydrate_g, sugars_g, protein_g, salt_g, sodium_mg. A batch’s nutrition panel sums them across what went in, so an ingredient with nothing recorded is one the panel has to declare itself incomplete over. Recording an honest zero (water, salt) counts as data; leaving it blank does not.