Feature — Inventory
Stock that counts itself — because there's no number to type, there's no number to fudge.
Roo's stock levels are calculated from a full ledger of movements (received, used, sold, wasted, adjusted) rather than a single editable number, and products with an expiry date draw down the soonest-to-expire batch first, automatically.
A ledger, not a counter
Most systems store a single "quantity on hand" number that has to be trusted — and that a busy staff member can nudge without anyone noticing. Roo never stores that number. Instead, every movement of stock is recorded as its own entry: received, opened, used in a service, sold, wasted, adjusted, returned, or transferred between branches. The current stock level is always calculated from that full history, not typed in.
That's the fix for "the missing colour": if your salon bought 4 litres and services only account for 3.1, the ledger shows exactly which movements don't add up — instead of a manager just noticing the shelf looks lighter than it should.
Batches clear oldest-first, automatically
For products that carry an expiry date, Roo tracks stock by batch and draws down the soonest-expiring batch first (FEFO — first-expired, first-out) whenever that product is used or sold. This is opt-in per product, so it only applies where expiry actually matters.
- Every sale automatically draws down stock at the point of checkout — see POS & Billing
- Every delivery received adds stock back the same way
- Batch/expiry tracking is per-product, not forced on your whole catalog
Inventory — frequently asked
Does every product need batch tracking turned on?
What if more stock is drawn than was ever received?
Find out where your stock is really going
Free for every salon until 31 December 2026 — no card required.
Start Free Trial