Features Pricing Blog
Get started
Industries

Inventory Management for Small-Batch Skincare Brands

Cosmetics inventory management software for indie skincare brands: lot and batch tracking, PAO and expiry, BOM production, and FEFO to stay MoCRA-ready.

On this page

Cosmetics inventory management software has to do something a generic stock app never will: connect the grams of shea butter and glycerin sitting in your lab to the exact jars of face cream a customer will open six months from now. Small-batch skincare runs on a two-tier inventory — raw materials and components on one side, finished goods on the other — joined by a production step where you actually make the product. Get that connection right and you have honest counts, defensible batch records, and a shot at a targeted recall if something goes wrong. Get it wrong and you are guessing at your ingredient stock, over-ordering actives that go rancid, and shipping product you cannot trace.

Why skincare inventory is harder than it looks

A jar of moisturizer is not a single SKU you buy and resell. It is the output of a formula. Your raw materials are measured by weight in grams and kilograms (and sometimes by volume), and each one is dosed as a percentage of a formula that must total exactly 100%. A typical oil-in-water lotion or cream splits into three parts: a water phase (deionized water, humectants like glycerin, thickeners), an oil phase (carrier oils, butters, waxes, and the emulsifier), and a cool-down phase (the preservative system plus heat-sensitive actives like peptides, vitamin C, or niacinamide, and any fragrance or botanical extracts).

Manufacturing an emulsion means heating the water and oil phases separately to roughly 75–80°C to melt the waxes and emulsifier, combining them under high-shear homogenization, then dropping in the cool-down ingredients below about 40°C so you do not cook your expensive actives. Every run is captured in a batch record — the document listing which ingredients, which lots, what quantities, and what steps went into that specific batch. That record is not paperwork for its own sake; it is the spine of your traceability, and it is what inventory software should be generating for you automatically instead of leaving it to a spreadsheet.

Lot and batch tracking: the backbone of traceability and recalls

This is where small-batch skincare lives or dies. Since MoCRA (the Modernization of Cosmetics Regulation Act) enforcement began on 1 July 2024, facilities making cosmetics for US consumers are expected to keep records that tie every finished unit back to the specific raw-material lots, supplier COAs (Certificates of Analysis), and production dates that went into it. The whole point is that if a supplier flags a contaminated lot of an oil or an active, you can trace it forward to every batch — and every unit — that consumed it, and pull only those.

Shelvr's batch and expiry tracking assigns a batch/lot number the moment you record a production run and keeps that batch tied to the materials it consumed, the quantity made, and the date. That is the internal lot traceability MoCRA expects, built as a byproduct of simply logging what you made rather than as a separate compliance chore.

Note

If your brand averages under roughly $1M in annual revenue, you likely qualify as a "small business" and are exempt from some MoCRA requirements like facility registration and formal GMP. You are still fully responsible for product safety, labeling, and being able to trace a bad ingredient lot to affected product — so lot records matter no matter your size.

PAO, expiry, and stability: dating your products correctly

The FDA does not force expiration dates onto cosmetics, but there is a working rule: any product with a shelf life of 30 months or less should carry a date, and every water-containing product needs a PAO (Period After Opening) — the open-jar symbol with a number of months, like 6M or 12M, telling customers how long it stays safe once opened. That number is not a guess; it is backed by stability testing and PET (preservative efficacy, or challenge) testing on your preservative system.

Watch out

There is no such thing as safe "preservative-free" water-based skincare. Any emulsion containing water will grow bacteria, yeast, and mold within days without a preservative system. If your formula has a water phase, a preservative is mandatory — and it is one of the short-life raw materials you most need to track.

Both your raw materials and your finished batches expire. Natural oils, butters, botanical extracts, and actives all have their own shelf lives, and they degrade quietly. Carrying expiry dating at both tiers — and getting alerted before anything ages out — is the difference between planned use and a surprise write-off.

Bill of materials and production: turning ingredients into finished goods

A single finished SKU consumes two very different kinds of stock at once: the formula ingredients (by weight) and multiple packaging components (by the piece). That is exactly a bill of materials. If you have not built BOMs before, our primer on what a bill of materials is walks through the concept; the short version is that a BOM lists everything that goes into one unit of a product.

With Shelvr's BOM and production feature, you build a BOM for each SKU listing every ingredient and every packaging piece. When you record a production run, assembling the finished good auto-deducts the ingredient grams and each packaging component and adds the finished units to stock. This is how a brand actually generates its batch records and keeps raw-material counts honest — the count moves because you made something, not because someone remembered to subtract it later. It is the essential co-star to batch tracking: no production step, no batch record.

Your batch record should be the receipt for a production run you already logged — not a form you fill out from memory a week later.

Tip

Track your bulk and your filled units as distinct states. A compounded batch cooling in the lab is WIP (work-in-progress) until it is filled; separating bulk yield from filled/finished units keeps your fill weight, fill loss, and yield visible instead of hidden inside one number.

FEFO: selling and shipping your oldest stock first

Because both ingredients and finished goods expire, expiry-driven write-offs are the single largest source of waste for a skincare brand — bigger than spillage, bigger than damaged units. The defense is FEFO: first-expired, first-out. Shelvr enforces FEFO so the oldest, soonest-to-expire stock is picked and sold first, whether that is a lot of preservative in the lab or filled jars heading to a customer. Layer multi-tier expiry alerts on top — for example 90, 30, and 7 days out — and short-life actives and preservatives stop quietly aging out on the shelf.

A quick sense of where waste actually comes from:

Waste sourceTypical driver
Expired raw materials (oils, butters, actives)Over-ordering short-life inputs
Expired finished goodsFEFO failure / slow sell-through
Failed or off-spec batchesProcess error, contamination
Fill loss and spillageCompounding and filling
Damaged or mislabeled unitsHandling, labeling errors

Tracking raw materials, packaging, and components separately

Packaging is inventory too, and it is easy to under-count. Jars, airless pump bottles, droppers, caps, pumps, labels, cartons, shrink bands, and inserts are each their own line item with their own lead time and reorder point. A run can be halted by a shortage of a $0.20 pump just as surely as by a missing active — so component reorder points deserve the same attention as ingredient ones. Barcode scanning with your phone camera speeds up receiving and counting for all of these and captures lot numbers accurately as boxes come in.

This challenge is common across maker-driven brands; if you also make related products, our guides for supplement brands and candle and soap makers cover the same two-tier, batch-and-BOM pattern in their own contexts.

Note

Production and receiving in this trade often happen in a home lab, garage, or co-packing space with poor signal. Shelvr is offline-first — you can scan, count, receive, and log a production run with no connection, and it syncs across your devices once you are back online. Multi-location transfers keep stock straight once you split between a studio, a 3PL, and market or retail stock.

Reorder points, waste tracking, and demand planning

Demand in skincare is genuinely hard to forecast: it is trend-driven, seasonal, and spikes around launches. That argues for two things. First, keep enough safety stock on stable inputs and packaging so a run never stalls. A simple starting point for each material is reorder point = (avg daily sales × lead time) + safety stock, tuned per item by how long it takes to arrive. Second, order short-life actives closer to just-in-time so they do not expire in storage — you would rather reorder a peptide more often than write it off.

Shelvr's low-stock alerts and reorder points, waste tracking, and demand planning work together here: alerts tell you when to buy, waste tracking shows you which items keep expiring so you can order them in smaller, more frequent lots, and forecasting helps you stage inventory ahead of a launch. If you sell direct-to-consumer, Shopify sync keeps your storefront's finished-goods quantities aligned with what production actually made, so you are not overselling a batch you have not filled yet.

Getting started with Shelvr

Start by building a BOM for one hero SKU — every ingredient by weight, every packaging piece by the count — then log a production run and watch the raw-material and component stock deduct while a batch number and expiry date attach to the finished units. From there, add your remaining SKUs, set reorder points on your short-life actives and your packaging, and turn on multi-tier expiry alerts. You can do all of this in the app for free to start; Pro unlocks the full toolset at the price listed on our pricing page. For a small-batch brand, the payoff is simple: honest counts, clean batch records, and the ability to trace any unit back to the lot it came from.

Run your inventory in one app

Track stock, orders, and production across web, iOS, and Android — free to start.

Frequently asked questions

Does Shelvr help with MoCRA and cosmetic lot traceability?
Shelvr assigns a batch/lot number when you produce a finished good and keeps that batch tied to the raw materials it consumed, the quantity made, and the date. That gives you the internal lot traceability MoCRA expects, so if a supplier flags a bad ingredient lot you can trace it to every affected batch and unit for a targeted recall. You should still keep your COAs and safety records; Shelvr handles the inventory and production side of the paper trail.
Can Shelvr track expiry and Period After Opening (PAO) dates?
Yes. Shelvr's batch and expiry tracking carries expiry dating on both raw materials and finished batches, and it sells oldest-first using FEFO so aging stock moves before it expires. You can set low-stock and reorder alerts alongside expiry so short-life actives and preservatives don't quietly age out on the shelf.
How does Shelvr handle turning ingredients into finished products?
You build a bill of materials for each SKU listing every ingredient and packaging component. When you record a production run, Shelvr auto-deducts the ingredient weights and each packaging piece and adds the finished units to stock. That keeps raw-material counts honest and produces the batch record behind every unit you sell.