Three Inventory Tracks in Beauty Salons: Separate Consumables, Retail, and Stored Items to Avoid Margin Chaos
Consumables, retail, and stored items — the three inventory tracks of a beauty salon, each with their own deduction timing, revenue recognition, and margin logic.
Why beauty inventory needs three separate tracks
Retail businesses have one inventory track (buy in, sell out). Beauty has three: (a) **consumables** (used in-salon — dye, polish remover, cotton swabs); (b) **retail** (customer takes home — shampoo, skincare); (c) **stored items** (customer buys but leaves at the shop for later pickup). Mixing the three breaks margin calculation, inflates performance (consumable cost gets miscounted as retail revenue), causes month-end stocktake to diverge from paper records, and tangles customer pickup tracking. This is a beauty-industry-specific complexity that paper/Excel can almost never handle cleanly.
Track 1: Consumables
In-salon materials — dye, polish remover, tissues, cotton swabs, sanitizer. **Properties**: (a) Consumed during service, **not counted as revenue** (these are store costs, not "sales to customers"); (b) Stock auto-deducts (every treatment automatically draws down what it used); (c) Cost feeds into the treatment's margin, not store revenue. **Wrong setup**: tagging dye as "retail" → beautician earns inflated commission on cost; margin breaks; the tax authority will question this at audit. The system should categorise products at creation, and let services explicitly mark each item as "used" or "sold."
Track 2: Retail
Goods the customer takes home — shampoo, creams, skincare, makeup. **Properties**: (a) Counts as store revenue + beautician commission (typically 10–15%, lower than service commission of 30–40%); (b) Stock auto-deducts; (c) Selling price − purchase price = margin. **Important**: retail commission % usually differs from service commission %; lumping them together pays wrong salaries (beautician over-paid or store under-paid). The system should allow separate "service commission %" vs "retail commission %" with month-end export showing each in its own column.
Track 3: Stored items (pending / picked_up)
Customer buys but leaves the goods at the shop for later — annual skincare bundle, multi-pack treatments that won't be consumed in one visit, gift purchases. **Properties**: (a) **Revenue recognised on sale day** (customer paid); (b) **No immediate stock deduction** (the goods are still on the shelf); (c) **Stock deducts only on pickup**. Two-stage state: "pending" (sold, not yet picked up) vs "picked_up" (collected, doc kept as history). System should track each stored item's status, expiry date, and pickup batches. When deleting the original treatment, picked-up stored items must restore currentStock (a v1.7.x cascade gap fix).
Common mistakes when tracks mix
Paper-based studios stumble on three pitfalls: **(a) Everything tagged as "retail"** → consumable cost erroneously becomes commission base; beautician over-paid; store loses money. **(b) Stored items deducted on sale day** → month-end stocktake never matches (the goods are still in the shop); discrepancy compounds until books are unreadable. **(c) Stored items not state-tracked** → customer comes back 6 months later for pickup; owner can't find the record on paper; can't recall whether it was paid; arguments follow. Excel can't cleanly handle it either — each track has different fields, different deduction logic, no single sheet works.
System implementation must-haves
A competent beauty inventory system should: (a) Tag each product at creation as "consumable / retail / both" (both = usable in-salon or sellable, switchable); (b) When adding a product to a service record, let the user pick "use" or "sell" — performance and stock auto-split; (c) Stored items live in a dedicated collection with a state machine (pending → picked_up) plus expiry reminders; (d) Dashboard surfaces margin, stock level, and stored-item liability per track. **Test**: when you delete a treatment that includes stored items, pending refunds storedCount AND picked_up restores currentStock (the v1.7.x full cascade).
Conclusion
Three-track separation isn't just bookkeeping discipline — it underpins commission accuracy, cash-flow forecasting, and customer service. When evaluating a new system, **run a real mixed scenario** (one treatment: 1 consumable + 1 retail item + 1 stored item, half-paid). If the system can correctly split everything or the vendor needs support staff to handle it, that's a design-maturity warning. Owners should review per-track margin quarterly and intervene when one drifts from expectation.
Key takeaways
- ·Beauty inventory has 3 tracks (consumables / retail / stored items); mixing them mis-credits revenue, margin, and salaries
- ·Consumables are store costs, not revenue; retail counts toward revenue and uses its own commission %
- ·Stored items: revenue on sale day, stock deduction on pickup day (two-stage state)
- ·Paper/Excel almost cannot cleanly handle three tracks — professional system needed
- ·Test focus: when deleting a treatment, pending refunds storedCount AND picked_up restores currentStock
Related terms
Comparisons
Put these into practice at your shop
MeiYe Zhan 30-day free trial, all features unlocked.
Start trial