Feature — Inventory

Stock that counts itself — because there's no number to type, there's no number to fudge.

In short

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.

Roo SalonOS reports screen, fed by the same stock ledger as inventory

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
Roo reports overview showing material cost alongside revenue

Inventory — frequently asked

Does every product need batch tracking turned on?
No — batch and expiry tracking is opt-in per product, so it only adds overhead where expiry actually matters.
What if more stock is drawn than was ever received?
The shortfall is still recorded as a real movement so the total stays accurate — it just isn't attributed to a specific batch, which shows up as a data-integrity gap worth reviewing.

Find out where your stock is really going

Free for every salon until 31 December 2026 — no card required.

Start Free Trial