Short answer
A reliable perfume formula template has three parts: a header that identifies the formula (code, name, version, status, date, author, purpose); an entries table where each row records the material, its identifier, its dilution and solvent, and its weight; and totals and checks — total weight, total pure material, and that percentages sum to 100. Add production targets, notes and a change history, and the record can be remade by someone else years later. A free CSV version of the entries table is available below.
Why a template at all
A formula written differently each time is hard to compare, easy to misread, and impossible to process consistently. A template does three things: it makes sure the information that formulas depend on — dilutions above all — is never left out; it makes every formula look the same, so differences mean something; and it turns a formula into data that can be calculated, sorted, exported and imported. Whether you keep it on paper, in a spreadsheet or in software, the structure is the same.
Part 1: the header
| Field | Example | Why |
|---|---|---|
| Formula code | EX-001 | A stable identifier; names change, codes do not |
| Name | Example citrus wood | Human-readable |
| Version | 7 | Distinguishes every change; never reused |
| Status | Testing | Where it is in the workflow: draft, testing, approved, production, archived |
| Date created / modified | 2026-10-09 | When this version was made |
| Author | Initials | Who to ask |
| Purpose / project | Brief code, intended product | Why it exists |
| Units | grams / % / parts per thousand | So nobody guesses |
| Based on | EX-001 v6 | Lineage for versions and copies |
Version and status deserve care: when a formula changes it becomes a new version, and approved versions should be locked. Perfume formula version control covers both.
Part 2: the entries table
| Column | Notes |
|---|---|
| Row | Order in the formula; also the order of addition if you fix one |
| Material | Specific name, e.g. "Bergamot oil FCF", not "bergamot" |
| Material code | Links to the material record |
| Supplier | Where the product differs by supplier |
| CAS number | For single chemicals |
| Dilution % | 100 for neat; never blank |
| Solvent | For diluted rows: DPG, ethanol, IPM… |
| Weight (g) or % | The amount of the material as weighed (the solution, for diluted rows) |
| Notes | Anything a reader needs: "weighed as 10% solution", "added last" |
The one rule that matters most: the dilution column is never blank. A blank must mean "unknown", which should never happen in a formula you intend to make. Why this matters so much is explained in formula %, absolute % and relative %.
Part 3: totals and checks
Calculate, don't type, these figures:
- Total weight (sum of the weight column).
- Pure active per row = weight × dilution ÷ 100, and its total.
- Internal solvent = total weight − total pure active.
- Formula % per row = weight ÷ total weight × 100; should sum to 100.
- Optionally absolute % and relative %, and cost.
A check that the formula % column sums to 100.00 catches missing and duplicated rows.
Part 4: targets, notes and history
- Production targets: intended product, concentration, batch size; maximum dosage by IFRA category once checked.
- Working notes: what this version is trying to do; evaluation summaries.
- Change history: for each version, what changed and why.
An example, filled in
| Row | Material | Dilution | Weight (g) | Pure active (g) | Formula % |
|---|---|---|---|---|---|
| 1 | Bergamot oil FCF | 100% | 2.00 | 2.000 | 20.00 |
| 2 | Lavender oil | 100% | 1.50 | 1.500 | 15.00 |
| 3 | Hedione | 100% | 3.00 | 3.000 | 30.00 |
| 4 | Iso E Super | 100% | 2.00 | 2.000 | 20.00 |
| 5 | Ambroxan in DPG | 10% | 1.00 | 0.100 | 10.00 |
| 6 | Vanillin in DPG | 10% | 0.50 | 0.050 | 5.00 |
| Total | 10.00 | 8.650 | 100.00 |
Header: code EX-001, version 1, status Draft, units grams, internal solvent 1.35 g.
An example change history
The change history is the part of a template most often left empty, and the part most valued later. A few lines per version are enough:
| Version | Date | Change | Reason | Result |
|---|---|---|---|---|
| 1 | 2026-08-03 | First formula | Brief P14 | Opening thin; drydown good |
| 2 | 2026-08-10 | Bergamot 2.00 → 2.40 g | Thin opening at 0–10 min | Brighter; slightly sharp |
| 3 | 2026-08-17 | Lavender 1.50 → 1.20 g | Soften the sharpness from v2 | Balanced; chosen for submission |
Read top to bottom, the history explains the formula: what was tried, why, and what it did. It is what turns a list of versions into knowledge you can reuse on the next project.
A change history records what changed; to check two versions against each other — or your formula against a manufacturer's copy — compare them on the same basis, material by material; see how to compare two perfume formulas.
Template variants
The same structure adapts to the other records a lab keeps:
- Accords and bases: identical to a formula, with a code prefix that marks them (for example ACC-), and a "used in" list so you can see which formulas depend on each.
- Dilution stock: a two-row formula — material and solvent — with strength, date made and parent lot. Treating dilutions as tiny formulas makes their composition explicit.
- Finished product: the concentrate (by code and version) as one row and alcohol and water as others, with concentration and fill weight in the header.
- Batch: the formula's entries with target and actual columns side by side, plus lots — covered in detail in the batch record article linked below.
Download the CSV template
Download the perfume formula template (CSV, 1 KB). It contains the entries table above as columns — formula code, name, version, row, material, material code, supplier, CAS number, dilution %, solvent, weight (g) and notes — with the example formula filled in so you can see the format. It opens in Excel, Google Sheets, LibreOffice and any text editor. It holds data only, with no spreadsheet formulas; to add the calculated columns (pure active, formula %, totals), follow how to build a perfume formula spreadsheet. The CAS numbers given are for the single chemicals and the general oil types named; check them against your own suppliers' documents.
Evaluations need a template too. A downloadable evaluation sheet with the same column for every trial, time point and evaluator is offered in the perfume evaluation sheet.
Formula record or batch record?
The template above is the formula — the recipe. Each time you make it, you need a separate batch record with the actual weights, lots and dates for that occasion, linked to the formula version. Mixing the two — overwriting the formula with what you actually weighed — destroys both. How to structure a perfume batch record covers the batch side.
A third document sits beside the formula and the batch record: the specification that says what an acceptable batch is, and which you can share without disclosing the formula; see writing a finished fragrance specification.
Paper, spreadsheet, or software
On paper, print the template with the header and an entries table, and keep each version on its own sheet. In a spreadsheet, keep one formula per sheet or one row per entry in a single table keyed by formula code and version — the CSV above uses the second layout, which is easier to sort, filter and import. In dedicated software, the template is built in. RUŌOD Lab stores each formula with a code, version number, status, tags, notes and a lock, and each entry with its material, weight and dilution, and calculates the totals and percentages from them; formulas export as a typeset PDF for people, and as CSV, Excel or JSON for other software — see import and export on the product page.
Moving records between systems
A template is also a data format. If every formula follows it, exporting a library for backup, handing a formula to a manufacturer, or moving to new software is a matter of mapping columns rather than retyping. How to export perfume formulas explains which format suits which job, and how to import and clean up existing formula data covers bringing old records in.
However records are kept, decide how long each kind is kept, and in what format, so they can still be read years later; see how long to keep formula records.
Common template mistakes
- No version field, so the template is overwritten after every trial.
- A dilution column that allows blanks, or no dilution column at all.
- Typed totals and percentages instead of calculated ones, which drift after the first edit.
- Mixed units in one formula — some rows in grams, some in drops.
- Vague material names with no code linking to a material record.
- No notes, so the reason for every choice is lost.
Checklist
- Header: code, name, version, status, date, author, purpose, units.
- Entries: material, code, dilution (never blank), solvent, weight, notes.
- Calculated totals: weight, pure active, internal solvent; percentages summing to 100.
- Targets, notes and change history.
- Approved versions locked; batches recorded separately.
Frequently asked questions
Should the template record percentages or grams?
Either, consistently. Many perfumers record a development formula in grams (the trial as weighed) and derive percentages; others record percentages or parts per thousand and derive grams for each batch. What matters is one unit per formula, clearly labeled.
Can I import the CSV template into formulation software?
The columns are a common, simple layout, but every program expects its own. Treat it as a starting point and map its columns to the program's import format.
How do I record an accord used inside a formula?
Either as a single row referring to the accord's own formula code and version, or expanded into its materials. Keeping the accord as its own record, and referring to it by code, is the clearer of the two.
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.