Short answer
A useful perfume ingredient database has one record per material with a fixed set of fields, a small number of collections that reflect how you actually look for materials, a controlled list of families and tags, unique codes, and dates on everything that changes. Keep dilutions linked to their parent material rather than as unrelated entries, and keep "not recorded" visibly different from zero. Then maintain it: a database is only as good as the habit of updating it when a material arrives, runs out or changes.
Start from the questions you need answered
Design follows use. Most perfumers need their material database to answer questions like these quickly:
- What do I have that smells woody, and how much of it?
- Which formulas use this material?
- What does this material cost per gram, and when was that price true?
- What is its IFRA limit in the categories I make?
- Which dilutions of it do I keep?
- Which materials are running low, or past their review date?
Every field you add should help answer a question like these. Fields nobody reads are fields nobody keeps up to date, and an out-of-date field is worse than none. The full list of fields worth considering is in the raw material documentation guide.
One record per material
The single most important rule: each distinct material is one record, and every formula, dilution, stock count and document refers to that record. Duplicates — "Hedione", "hedione", "Hedione (Firmenich)" — split the history of one material across several entries, so usage counts, stock and costs are all wrong.
What counts as "distinct"? Two products that could smell or behave differently are distinct records: a material from two suppliers, two grades, two origins of the same oil. The same product bought again is the same record with a new lot. When in doubt, separate them — merging later is easier than untangling.
Give each record a short, unique internal code. Names change and get misspelled; codes do not. Fragrance material names and CAS numbers covers naming conventions and which external identifiers to record.
Collections: few, and practical
Collections group materials for browsing. Group by how you look for things, not by an ideal taxonomy. Common, workable schemes:
- By type: naturals, aroma chemicals, bases and accords, solvents.
- By family: citrus, floral, woody, amber, musk, and so on.
- By project or status: core palette, under evaluation, discontinued.
Pick one primary scheme for collections and handle the others with tags or fields. A material in five collections is as hard to find as one in none.
Controlled vocabularies
Families, pyramid positions, units and suppliers should come from fixed lists, not free text. Free text drifts — "woody", "wood", "woods", "Woody " — and every variation breaks searches and reports. Decide the list once, write it down, and extend it deliberately. Fragrance families explained suggests how to set up a family list and apply it consistently.
Dilutions, linked to their parent
A 10% solution of a material is not a separate material; it is a preparation of one. Record dilutions as linked to the parent — strength, solvent, date made, quantity — so that a search for the material finds its dilutions, a change of lot is traceable into them, and a formula row can say "Ambroxan, 10%" rather than referring to an unrelated entry called "Ambroxan 10% DPG".
Custom fields, with restraint
Every lab eventually wants fields the standard set lacks: an internal grade, a regulatory flag, a sustainability note, a favorite supplier code. Add them, but define each one: its name, its type (number, text, choice), its unit, and what an empty value means. A calculated field — "cost per gram at 10%", say — should be calculated from other fields, never typed in, or it will disagree with them after the next price change.
Search and reports
At a few dozen materials you can browse. At a few hundred you need to search across names, codes, CAS numbers, suppliers and descriptions, and to filter and sort by family, stock or date. Reports turn the database into answers about the whole library: which materials are unused, which have no price, how much stock is worth, where gaps in the data are.
Maintenance habits
- Create or update the record when a material arrives, before it goes on the shelf.
- Update stock when you use or finish a material, or count regularly.
- File new supplier documents as they come, and replace superseded ones.
- Review a data-quality report periodically: missing prices, limits, families.
- Mark discontinued materials rather than deleting them; old formulas still refer to them.
Tools
A spreadsheet can hold a material list, and many perfumers start there. It gets harder when materials need to link to formulas, dilutions and documents, and when several sheets have to agree. Dedicated software keeps those links. In RUŌOD Lab, materials live in collections with standard fields (code, CAS number, botanical name, supplier, cost, inventory, IFRA limit, families, pyramid position, dilutions) and fields you define, including calculated fields built with its Formula Hub; which formulas use a material is derived from the formulas themselves, so it cannot go stale. The same organizing principles apply to formulas — see how to organize a digital perfume formula library.
Frequently asked questions
Should I record materials I've used up?
Yes. Keep the record with zero stock and mark it as out of stock or discontinued. Formulas that used it still need to know what it was.
Can I use a public fragrance database instead?
Public databases are excellent references for odor descriptions, identifiers and properties. They do not know your stock, your suppliers, your prices or your lots, so they complement your own database rather than replacing it.
Written and reviewed by the RUŌOD Lab team. This article is general education about perfume formulation and record-keeping; it is not legal, regulatory or safety advice, and the examples are illustrations, not validated commercial formulas. How we write and check these guides.