eCommerce
Beauty Brand Inventory Planning: The 168-Day Problem
Public beauty brands turn inventory only 2.1 to 3.4 times a year (e.l.f. 168 days, Olaplex 170, Honest 107) versus the 4 to 8 turn, 45 to 90 day band healthy DTC runs. A private beauty brand should set per-SKU days-on-hand caps tied to shelf life and velocity, targeting 45 to 70 days.
Key Takeaways
- Public beauty brands turn inventory just 2.1 to 3.4 times a year: e.l.f. 2.18x (168 days on hand), Olaplex 2.15x (170 days), Honest 3.42x (107 days), all from FY2025/26 10-Ks. That is far below the 4 to 8 turn (45 to 90 day) band 2026 DTC benchmarks call healthy.
- Beauty has the highest gross margins in consumer and one of the worst cash conversions, because the margin gets trapped in slow-moving stock. Olaplex runs a 69.4% gross margin and still carries 170 days of inventory.
- Three structural traps make beauty inventory hard: shelf life (a hard expiry clock, mascara 3 months to fragrance 36+), MOQs (250 to 1,500 units at indie labs, 5,000 to 50,000+ at large CDMOs), and 90 to 120 day overseas formulation lead times.
- Stop running one blended days-on-hand number. Set a per-SKU cap tied to each SKU's shelf life and velocity, and flag any SKU where days on hand exceeds half its remaining usable life.
- A private beauty brand at $5 to $50M should target 45 to 70 days on hand, roughly 2.4x to 3.7x tighter than the public 168-day median. Since MoCRA (2023), batch and lot traceability and first-expired-first-out are a compliance function, not just an ops nicety.
Beauty is the highest-gross-margin category in consumer, and one of the worst at turning that margin into cash. The reason is simple: the cash gets trapped in inventory. If you run a beauty or cosmetics brand at $5M to $50M, you have probably felt this as a balance sheet that looks healthy on paper while your bank account stays tight. This guide lays out the planning system that fixes it, built on what the public beauty comps actually report and what a private brand your size should target instead.
Beauty carries the longest inventory cycle in DTC. Here is the math.
Start with the public comps, because they are the cleanest read on how slow beauty inventory really moves. Pull the latest 10-Ks and divide cost of goods sold by inventory, and the numbers are stark. e.l.f. Beauty turns inventory just 2.18 times a year, about 168 days on hand (COGS $479.1M against $220.2M of inventory, fiscal year ending March 2026). Olaplex is barely quicker at 2.15x, roughly 170 days, even though it runs a beautiful 69.4% gross margin. The Honest Company is the "fastest" of the set at 3.42x, and that is still about 107 days.
Now set those against the benchmark. Healthy DTC runs 4 to 8 inventory turns a year, which is 45 to 90 days on hand. The strongest brands sit above 8x (under 45 days); under-performers fall below 3x (over 120 days). Every public beauty comp lands at the bottom of that range or below it. Even Honest, the quickest, is about 17 days slower than the upper end of healthy.
The first table shows the full comp set with revenue, margin, and the turns math.
| Company | Ticker | Revenue ($M) | Gross margin % | COGS ($M) | Inventory ($M) | Turns (x/yr) | Days on hand |
|---|---|---|---|---|---|---|---|
| e.l.f. Beauty | ELF | 1,636.5 | 70.7% | 479.1 | 220.2 | 2.18 | 168 |
| Olaplex | OLPX | 423.0 | 69.4% | 129.3 | 60.2 | 2.15 | 170 |
| Honest Company | HNST | 371.3 | 33.3% | 247.6 | 72.5 | 3.42 | 107 |
| Healthy DTC target | 4.0-8.0 | 45-90 | |||||
| Private beauty target ($5-50M) | 5.2-8.1 | 45-70 |
When I talk to founders running a brand this size, the pattern is almost always the same: they treat about 140 days on hand as a badge of being "well stocked," when in reality it sits closer to the public median than to the 45 to 70 day band a brand their size should run. Olaplex's 69.4% margin alongside 170 days is the proof that a gorgeous gross margin and trapped cash live together comfortably in beauty. The margin hides the problem.
Why beauty inventory is structurally hard: shelf life, MOQs, and lead times
Three traps make beauty harder than apparel or most CPG, and any planning system has to account for all three.
The first is shelf life, a hard buy-ceiling that varies 12x across a single catalog. A mascara has roughly 3 months of usable life (the FDA discard guidance is to replace eye products every 2 to 4 months of use). A liquid foundation runs about 12 months, lipstick and balm 18, powders 24, fragrance 36 or more. You cannot safely buy nine months of a three-month product, no matter how good the per-unit price looks.
The second trap is MOQs. Contract manufacturers commonly require 1,000 to 25,000+ units per SKU. Large CDMOs like Cosmax, Kolmar, and KDC/ONE sit at 5,000 to 50,000+; mid-size labs at 1,000 to 10,000; indie and private-label specialists as low as 250 to 1,500. Color cosmetics often carry a separate per-shade MOQ on top. This is the core reason beauty over-buys: the order floor frequently exceeds near-term demand for a given SKU, so you buy 5,000 units of a shade that sells 800 a quarter.
The third trap is lead time. Overseas formulation and fill runs commonly take 90 to 120 days from PO to landed stock, so you are forecasting and committing cash a full quarter ahead of demand. Stack a hard expiry clock on top of an MOQ floor on top of a 90-day lead time, and one blended days-on-hand number becomes the wrong tool. It over-buys your short-life SKUs into write-offs and under-buys your long-life ones into stockouts at the same time.
See your real margin on every order.
Get our Contribution Margin calculator: COGS, shipping, fees, ads, what's left.
Check your inbox. We'll send the Contribution Margin calculator shortly.
Setting per-SKU days-on-hand targets, not one blended number
Here is the core method. Instead of managing one company-wide days-on-hand figure, cap days on hand per SKU as a function of two inputs: that SKU's shelf life and its turn velocity. The table below turns shelf life into a planning ceiling.
| Product type | Usable life (months) | Implied max days on hand (half-life rule) | Reorder cadence |
|---|---|---|---|
| Mascara / eye products | 3 | ~45 | Small frequent lots |
| Liquid foundation / skincare / serums | 12 | ~180 | Standard |
| Lipstick / balm | 18 | ~270 | Standard |
| Powder products | 24 | ~360 | Larger lots OK |
| Fragrance | 36 | ~540 | Larger lots OK |
The single most useful rule in here is the half-life flag: flag any SKU where days on hand exceeds half its remaining usable life. It is an early-warning system. A SKU does not become a write-off the day it expires; it becomes a write-off risk the moment you are holding more than you can plausibly sell before it expires. When we have helped brands clean this up, the half-life flag is what surfaces the problem two quarters early, while you can still slow the next buy instead of liquidating.
Then tier your SKUs and set reorder points by tier. Hero SKUs (your top sellers) earn deeper safety stock because a stockout there costs real revenue and ad efficiency. Core SKUs run standard reorder points: reorder point equals average daily sales times lead time, plus safety stock. Long-tail SKUs get the tightest leash, smallest viable lots, and they are your first candidates for the discontinue list. The pattern we see again and again is that the long tail quietly consumes a third of the working capital while producing a tenth of the revenue.
Forecasting the hard cases: launches, limited editions, and viral spikes
Per-SKU targets work when you have sales history. Launches and limited editions have none, and influencer-driven spikes break whatever history you do have. This is where beauty brands whipsaw between stockout and a warehouse full of dead stock.
For a new launch, size the first buy against the MOQ, not against an optimistic forecast. If the MOQ forces you to commit 5,000 units, ask the honest question: can I sell 2,500 (half) inside half the shelf life if the launch only half-works? If the answer is no, negotiate the MOQ down or pick a lab tier with a lower floor before you commit. For a shade range, hold back on the long-tail shades entirely in the first buy. Launch the three or four shades you are confident in, prove demand, then commit to the rest. Per-shade MOQs make a full-range launch the single fastest way to bury cash in slow stock.
For viral and influencer spikes, the discipline is to treat the spike as temporary until the data says otherwise. A founder I spoke with had chased one influencer spike with a full MOQ reorder, then watched demand fall back to baseline and sat on roughly six months of cover on a hero SKU. The fix is to carry a deliberate buffer on heroes (so you can ride a spike without an emergency PO) but to wait two or three weeks of post-spike data before committing the big reorder. The spike that justifies a 5,000-unit buy looks identical in week one to the spike that fades by week three.
Compliance is now an inventory function: MoCRA, FEFO, and batch tracking
Since the Modernization of Cosmetics Regulation Act (MoCRA) took effect, inventory and compliance stopped being separate jobs. Facilities must register and renew every 2 years, new products must be listed within 120 days, and serious adverse events must be reported within 15 business days. Most importantly, the FDA now has mandatory recall authority and expanded records access. That means you must be able to trace any lot back to its production batch and forward to every order that received it, and run first-expired-first-out (FEFO) so the oldest safe stock ships first. Industry guidance points to roughly 6-year records retention for ecommerce cosmetics.
There is also a split-policy wrinkle. The moment a SKU adds SPF or an OTC active like acne treatment or sunscreen, it becomes a drug and must carry an expiration date with stability testing under 21 CFR part 211. Pure cosmetics do not require a US expiration date (though the manufacturer is still responsible for shelf life and safety). So part of your catalog is on a mandatory-expiry, mandatory-stability regime and part is not, which forces a split inventory policy. The table sorts it out.
| Product status | Expiration date required? | Stability testing? | Batch/lot tracking? | Authority |
|---|---|---|---|---|
| Pure cosmetic (lipstick, serum, fragrance) | No, voluntary | Manufacturer responsibility | Yes (MoCRA recall/records) | FDA / MoCRA |
| Cosmetic sold in the EU/UK | PAO or best-before required | Yes (support PAO) | Yes | EU Cosmetics Reg (EC) 1223/2009 |
| Sunscreen or SPF makeup (OTC drug) | Yes, mandatory | Yes, 21 CFR 211 | Yes | FDA, 21 CFR 211 |
| Acne or other OTC drug-cosmetic | Yes, mandatory | Yes, 21 CFR 211 | Yes | FDA, 21 CFR 211 |
The practical upshot: FEFO and lot-to-order traceability are no longer nice-to-haves you bolt on later. They are the same system that lets you run the half-life flag, so building them once solves both the compliance problem and the write-off problem.
Beauty's high gross margin is exactly what lets the inventory problem hide. A 70% margin makes 168 days on hand feel affordable, right up until you realize a brand your size should run 45 to 70 and the difference is cash sitting in a warehouse on an expiry clock. Stop managing one blended number. Cap days on hand per SKU against its shelf life and velocity, run first-expired-first-out, and flag anything past half its usable life.
Sources and methodology
SEC EDGAR (public comps). Inventory turns were pulled from annual XBRL 10-K filings via SEC EDGAR for three beauty and personal-care comps: e.l.f. Beauty (CIK 1600033, fiscal year ending March 2026, filed May 2026), Olaplex (CIK 1868726, FY2025, filed March 2026), and The Honest Company (CIK 1530979, FY2025, filed February 2026). Turns equal cost of goods sold divided by the current-year reported inventory balance; days on hand equal 365 divided by turns. e.l.f. uses its FY2026 balance (COGS $479.1M / inventory $220.2M), Olaplex its FY2025 balance ($129.3M / $60.2M), and Honest its FY2025 balance ($247.6M / $72.5M), each from the company's most recent 10-K. Honest is shown for the turns ceiling, not as a margin benchmark, since it is a value and diaper-led brand at a 33.3% gross margin.
Healthy and private benchmark bands. The 4 to 8 turn (45 to 90 day) healthy DTC band and the 45 to 70 day private beauty target come from Drivepoint's beauty-brand metrics, the Yotpo DTC Index, Finbox/Ulta inventory data (large beauty retail runs about 3.3x), and Eightx's private-DTC benchmark, all 2026. Across the three clean comps (Honest 107, e.l.f. 168, Olaplex 170), the median days on hand is 168, which independently corroborates the 168-day public-beauty median in the Eightx beauty financial benchmark.
FDA and regulatory. Shelf-life figures draw on the FDA's "Shelf Life and Expiration Dating of Cosmetics" (no US expiry requirement on pure cosmetics; manufacturer responsible for shelf life and safety; mascara replaced every 2 to 4 months of use). OTC drug-cosmetics (SPF, sunscreen, acne) must carry expiration dates with stability testing under 21 CFR part 211. MoCRA requirements (facility registration renewing every 2 years, product listing within 120 days, serious adverse-event reporting within 15 business days, mandatory recall authority, expanded records access) come from the FDA's MoCRA guidance. EU figures reference Cosmetics Regulation (EC) No 1223/2009 (Period After Opening labeling). Regulatory detail was triangulated via Perplexity against FDA, eCFR, and European Commission sources, June 2026.
MOQ ranges. Cosmetics contract-manufacturer MOQs (250 to 1,500 units at indie and private-label labs up to 5,000 to 50,000+ at large CDMOs, with separate per-shade MOQs for color and higher MOQs for custom and OTC formulas) come from 2026 contract-manufacturer guides (Gravel AI, SBLC, Wonnda) via Perplexity. These are industry-norm ranges, not per-SKU quotes; confirm stability data for any specific formulation with your manufacturer.
Category scale. Storeleads (Shopify, accessed June 2026) shows about 70,043 Skin and Nail Care stores and about 34,507 Make-Up and Cosmetics stores, an overwhelmingly sub-enterprise long tail, used here for scale framing rather than revenue estimates.
Limitations. The public-beauty pool is small (three clean comps plus the Eightx 26-brand median for context), so the public figures are directional for large brands; the actionable target for the reader is the 45 to 70 day private band, not the public median. Clean primary-source DTC/Amazon/wholesale channel-split percentages were not available in public filings, so the channel section is written as method rather than citing a fabricated split.
For the full picture on where beauty's cash goes, see our beauty brand financial benchmarks, the companion guide on beauty inventory and shelf-life planning, and the working-capital angle in beauty brand cash flow. If you want a CFO to run this on your numbers, start with our interim CFO services.
Frequently asked questions
what inventory days on hand should a beauty brand target?
A private beauty brand at $5 to $50M in revenue should target 45 to 70 days on hand, which works out to roughly 5 to 8 inventory turns a year. That is far tighter than the public beauty median of about 168 days (e.l.f.), with Olaplex at 170 and even the quickest comp, Honest, at 107. The catch is that 45 to 70 days is a blended target. You hit it by setting tighter caps on short-life SKUs (mascara, actives) and allowing more on long-life ones (powders, fragrance).
how do beauty brands plan inventory around expiration and shelf life?
Shelf life is a hard ceiling on how much you can safely buy. A mascara has roughly 3 months of usable life, a liquid foundation about 12, a fragrance 36 or more, a 12x spread across one catalog. The practical rule we use: flag any SKU where days on hand exceeds half its remaining usable life, and reorder short-life SKUs in smaller, more frequent lots even when the per-unit cost is higher.
how do you make inventory planning work when moqs exceed near-term demand?
This is the core beauty problem. Contract manufacturers commonly require 1,000 to 25,000+ units per SKU, while a slow shade might sell 200 a quarter. Three moves: negotiate lower MOQs with indie or private-label labs (some start at 250 to 1,500), rationalize the long tail so you are not paying an MOQ on shades that barely sell, and only buy what you can sell inside half the remaining shelf life. A 15% MOQ discount is worthless if the extra units expire.
what is a good inventory turnover for a dtc beauty brand?
Healthy DTC runs 4 to 8 turns a year, with the strongest brands above 8x (under 45 days) and under-performers below 3x (over 120 days). Public beauty brands sit at the bottom of that range or below it (2.1 to 3.4x), partly because they carry broad assortments and wholesale commitments. A focused private DTC beauty brand should beat the public comps and aim for 5 to 8 turns.
does mocra require me to track batches and lot numbers for my beauty inventory?
Effectively yes. MoCRA gave the FDA mandatory recall authority and expanded records access, so you need to trace any lot back to its production batch and forward to every order that received it. That makes first-expired-first-out and lot-to-order tracking a compliance function, not just good ops. Facility registration renews every 2 years and serious adverse events must be reported within 15 business days.
how do i know which of my skus to discontinue?
Look at two things per SKU: turn velocity and write-off risk. A SKU that turns slowly and sits past half its usable shelf life is bleeding cash twice, once in tied-up working capital and once in eventual write-offs. The hardest cases are color cosmetics with per-shade MOQs, where a slow shade forces you to buy 1,000 units to sell 200. Those are your first rationalization candidates.
why do beauty brands carry so much more inventory than food brands?
Three reasons stack up. MOQs force over-buying (you order 5,000 units of a shade that sells 800 a quarter), overseas formulation lead times run 90 to 120 days so you buy ahead, and high gross margins make the cash drag easy to ignore until it isn't. The same margin that makes beauty attractive is what lets the inventory problem hide on the balance sheet.
how do you split inventory between dtc, amazon, and wholesale for a beauty brand?
Allocate by who holds the risk and how fast each channel replenishes. Wholesale and retail need higher safety stock and longer lead times because reorders are lumpy and chargebacks punish stockouts, so they tie up more cash per unit. DTC and Amazon FBA can run leaner because you control replenishment. The trap is stranding stock in the wrong channel, sending hero SKUs to a slow wholesale account while DTC stocks out.
