Cosmetics manufacturing software where every batch proves what went in.

A cosmetic lives in a formula spreadsheet written in percentages, an INCI list somebody assembled by hand, and a batch notebook the safety assessor wants to see. Every reformulation means reworking all three. They drift, and the drift is exactly what an audit finds.

BatchDash holds the formula, every version of it, and each batch made from it with the ingredient lots it drew. The batch record and the INCI list come out of that work as it happens, so there is nothing to write up afterwards and nothing to keep in step by hand.

01Cosmetics

What cosmetics manufacturing software does

It holds a formula in phases and percentages, prices it from what you paid for each ingredient, and turns it into a batch that draws on real stock and leaves a record behind. In cosmetics that record is not optional: the formula version, the lots that went in, the checks, the quantity made and the INCI list are what a product information file and a safety assessor ask for. BatchDash produces them from the work itself, whatever the product is:

  • Emulsions: creams, lotions and conditioners, with a water phase, an oil phase and the cool-down phase that takes the preservative and the fragrance.
  • Anhydrous products: balms, butters, oils and serums, where a melt temperature is the check that decides the batch.
  • Rinse-off products: cleansers, shampoos and shower gels, weighed by the tank and costed down to the bottle.
  • Solid formats: shampoo bars, lip balms and sticks, counted out of a batch weighed in grams.
02Cosmetics

A formula in percentages, priced off your own deliveries

Write it the way a cosmetic is written: phases, shares that add up to 100, every ingredient carrying its own INCI name. The whipped body butter is 45 % shea, 25 % coconut oil, 20 % sweet almond oil, 8 % beeswax and 2 % tocopherol, and on the prices you actually paid it costs €13.442 a kilo in ingredients. The day a butter goes up, that figure moves with it.

  • The panel adds the shares up as you type and says so the moment they stop making 100, and a 0.2 % preservative stays 0.2 % at every batch size.
  • A base you reuse across the range exists once, as a sub-formula, and its cost flows into every product built on it.
  • A line can be a share of the whole batch, a share of its own step, or a fixed dose in grams that does not follow the batch size.
A cosmetic formula in BatchDash: the whipped body butter, accepted as version 1, from 45 % shea butter down to 2 % tocopherol, with its ingredient cost per kilo underneath.
03Cosmetics

Every reformulation is a version, and every batch keeps its own

Change a formula and you write a new version beside the old one. The butter’s v2 is the experiment a warm shop shelf asked for: sweet almond oil down from 20 % to 18 %, beeswax up from 8 % to 10 %, and the reason written on the line where it changed. v1 stays the accepted recipe until you say otherwise, and the batch made from it keeps pointing at it.

  • Compare any two versions and the difference reads line by line: what moved, by how much, and the note that says why.
  • A trial keeps its version, its notes and its result, so the texture that finally held is a recipe you can make again.
  • Lock a version once it is right and nobody can edit it by accident: the next change has to start a new one.
Two versions of the body butter compared in BatchDash: from v1 to v2, sweet almond oil 20 to 18 percent and beeswax 8 to 10 percent, with the note "Holds the whip on a warm shelf".
04Cosmetics

The same formula, weighed at any batch size

Ask for 5 kg and the sheet is 5 kg: 2.32 kg of shea and 412 g of beeswax melted together, 1.29 kg of coconut oil and 1.03 kg of almond oil whipped in, 103 g of tocopherol last, every figure rounded to what your scale can weigh. The melt step carries its check, 65 °C at least, and each step names the equipment it needs.

  • Scale by the output you want or by the one ingredient you have least of: change any amount and the whole batch follows.
  • Print it for the bench or work from the screen. It is the same document either way, and the batch run from it asks for the same checks.
The body butter’s recipe sheet in BatchDash at 5 kg: the equipment to gather, then the melt and whip phases with the grams each step weighs and the checks it asks for.
05Cosmetics

The batch record an assessor asks for

A finished batch seals itself. BB-24-051 made 7.8 kg, a yield of 94.6 % against the 97 % the recipe expects, and the record marks the gap. The melt temperature read 68.2 °C against a floor of 65, with Alex Rivera’s name and the minute beside it, and the texture check passed after it. The batch cost €145.42, €18.644 a kilo once the labor, the equipment and the overhead are in, and every ingredient names the lot it came from.

  • Who read each check, and when, stays on the record. A reading outside its target is a fail with a name beside it.
  • Set the workshop to hold every batch until its finished-product check passes, and nothing from it can be drawn or sold before then.
  • The record is the production file, kept as the batch runs rather than assembled the week before an inspection, down to who worked on it and for how many minutes.
A sealed body butter batch in BatchDash: lot BB-24-051 at 94.6 % yield, its cost in five parts, its two passed checks with who recorded them and when, and the ingredient lot behind each line, two of them shea.
06Cosmetics

The raw-material lots behind every batch

Open BB-24-051 on the trace and it names the six deliveries it drew from. Two of them are shea from two suppliers: SHE-3628, 250 g from the usual one, and SHE-1627 from a second, which the batch drew on once the first was used up. Recall either delivery and this batch is on the list. Each row is marked possible and means it: stock is pooled at average cost, so the trace names every lot the batch could have drawn and claims no more than that.

  • A complaint about one jar starts from the lot code on it, and the batch, its record, its version and whoever made it are one click on.
  • A delivery keeps the lot code its supplier stamped on it, so the notice a supplier sends you matches a row here.
  • When one supplier’s shea stands in for another’s, the batch records which it took and the record names both lots.
The trace of lot BB-24-051 in BatchDash: the body butter batch, 7.8 kg, and the six ingredient deliveries it came from, among them two lots of shea from two suppliers, each marked possible.
07Cosmetics

The INCI list, read off the batch

Open the batch’s label data and the declaration is already there, built from what went in: flat, descending by mass, every compound broken out, no percentages anywhere. Butyrospermum Parkii (Shea) Butter leads, once, although it came from two suppliers. Under it sit the lot, the date worded the way a cosmetic words it, best used before the end of, and the 12 months after opening.

  • INCI name, CAS number, country of origin and the supplier’s reference live on the ingredient, and every formula that uses it inherits them.
  • The INCI list stays off until every ingredient at 1 % or more has a name, and it says which ones are missing. A list that quietly leaves one out is worse than no list.
  • Validate the label and it is signed: it stops following the calculation, so a later change to the formula cannot rewrite what you printed.
  • The suggestion button proposes the INCI name and the CAS number when it can find them, and marks them for review. Nothing is saved until somebody has checked them.
The label data of batch BB-24-051 in BatchDash: the INCI list in descending order with shea named once, then the net quantity, the lot, the best-used-before date, 12 months after opening and the production date.
08Cosmetics

What a tub costs, and what it earns

The formula says €13.442 a kilo in ingredients, on today’s prices. The batch says what the kilo really cost, €18.644, at the prices it actually drew and with the 58 minutes somebody recorded, the equipment and the workshop’s overhead added in. Divide by the format and you have the cost of a 200 g tub beside the price it sells at, and the margin between them.

  • Packaging is costed as packaging: the tub, the lid and the label are lines of their own, drawn from stock when the batch is filled.
  • When a butter goes up 8 %, every product holding it re-costs itself the same day, and the margin moves with it.
  • Labor is the minutes recorded on the batch at the rate you set, and overhead is your workshop’s own, spread the way you choose.

Questions we hear before the first batch.

What is cosmetics manufacturing software?
Software built around the batch: a fixed quantity of one cosmetic, made to one version of a formula, with a lot code and a date on it, and a record of how it was made. A regulatory tool keeps a formula’s dossier and an accounting package keeps what you spent and sold. This keeps what happened in the room where the formula became jars, and the paperwork that comes out of it: the batch record, the lots, the INCI list, the cost.
Does it write the INCI list?
Yes, from the batch. Each ingredient carries its INCI name, and the list is composed in descending order of what went in, down to 1 %, then in any order below it, as Article 19 allows. Colorants by their CI number, the [nano] suffix and the fragrance allergens your perfumer’s certificate names above the labeling threshold are yours to add in the list’s edit before you sign it.
Does it cover ISO 22716, the EU Cosmetics Regulation or MoCRA?
It keeps the evidence they ask a manufacturer for. Batch records with the formula version, the quantities, the ingredient lots, the checks and who signed them. A finished batch held until its check passes. Traceability in both directions, for a complaint or a recall. Change control, since every reformulation is a version. The safety assessment, the CPNP notification and an FDA listing stay with your responsible person and your assessor, and what they are built from comes out of here.
What happens to past batches when we reformulate?
Nothing. Each batch names the version it was made from, so a product information file can say which formula a given lot carries. A reformulation that changes the INCI list arrives as a new version with its own list, and the jars already on shelves keep the list they were printed with.
Can we trace a raw-material lot to the jars it went into?
Type the lot your supplier gave you and the trace names every batch that drew on it, then where each of those batches went: the orders that shipped it, the shelf it is still on, and the orders not yet shipped that you can still stop. The quantities come from the stock movements themselves, so they reconcile, and the whole walk exports as a file for whoever asked.
Our formulas live in spreadsheets. How do we start?
With the file you already have. Ingredients and supplier prices import from a CSV, and a formula can be pasted in as text or photographed, for the AI reader to draft and you to check field by field. One formula and one batch is an afternoon. For a larger setup, somebody from the team runs the onboarding with you.
Does it hold up as we grow?
There is no size it stops at. The same records hold a 3 kg batch and a line running every day: roles for who may change a formula, run a batch or sign a label, stock locations for every room and warehouse, currencies for what you buy abroad, and a Shopify store that sells against what is actually available. Nothing needs configuring before the first formula.

Cost your first formula this afternoon.

Open a workspace, add a few ingredients with their prices, and build one formula. You'll see where the real cost lands, per jar, per liter or per 100 g, before your next run. No demo to sit through.