Resources report (room/equipment utilization)
Booked time and utilization for rooms, equipment, machines. New: dual calculation mode (staff-hours union vs opening hours).
Resources report
Tracks the physical resources in your salon (rooms, machines, tanning beds, equipment): how much they were booked, what their utilization is, and how much revenue they generated in the selected period. If an asset costs real money (expensive machine, rented tanning bed), this is where you see the ROI.
Where to find it
Reports → Resources tab (/manager/reports, tab #9).
What you see
4 KPI cards (top)
- Resources – total defined resources (and how many are active)
- Total appointments – number of bookings that used a resource
- Avg. utilization – weighted average across all resources (green/yellow/red color)
- Revenue – total revenue of bookings that used a resource
Resource utilization bar
A progress bar per resource sorted by utilization (highest first). Each line shows: booked time, available time, appointment count, revenue, location, and capacity (if > 1).
Detailed table
One row per resource: Name, Type (Room / Equipment / Solarium / Other), Location, Capacity, Appointments, Booked, Available, Utilization, Revenue, Status. Exportable to CSV / Excel.
New: "Availability basis" toggle (v5.39.0)
At the top of the report you choose what drives Available time (and thus utilization):
Staff hours (default)
Union of all staff working hours per day. A resource is treated as available whenever at least one staff member is on shift. If the salon is officially open 9:00–18:00 but only one staff works 14:00–18:00 on Friday, the resource is 4h available that day, not 9h. Per-day overrides are honored too.
When to use: almost always. Consistent with the Team report, and reflects the real picture: if only a specific colleague uses the machine, utilization should be measured against their hours.
Opening hours (legacy)
Salon opening hours, ignoring per-staff schedules. If the salon is open 9:00–18:00 on Friday, the resource is 9h available even if no one was on shift.
When to use: for self-service resources (tanning bed the client operates, rented room with no staff), or when you want "potential utilization" (how much could be booked if every hour was sold).
The toggle is reversible, the report recomputes instantly.
What "booked time" means
A resource is booked when an appointment is assigned to it and the appointment status is not CANCELLED (cancelled appointments free the resource). The full appointment length counts (start → end), but:
- Capacity > 1 (e.g., a 4-person training room) multiplies the available time. A 4-cap room with 9h opening = 36h available → utilization % uses that base.
Filters
- Date range (global): Today / Yesterday / Last 7 or 30 days / This or Last month / Custom
- Location (global, multi-location only): scopes to that location's resources
- Staff (global): scopes booked time to that staff member AND, in Staff hours mode, scopes the available base to their schedule (double effect).
When to use it
Scenario 1, expensive machine ROI You bought a 2M HUF IPL hair-removal machine. Resources report → "Last month" → IPL row. Utilization 12%? Revenue too low to justify the purchase → time for a marketing push or price cut.
Scenario 2, which room is empty Multi-room salon. Resources report → "Last 30 days". Sort by utilization. The lowest-utilization room? If it's under 20%, consider redistributing bookings or subletting.
Scenario 3, debug a utilization mismatch If the Team report says Anna Kovács is at 95% but the Resources report says her main machine is at 50%, switch the toggle to Staff hours. Both reports now share a reference base, and the gap narrows. The remaining gap means Anna also does services that don't use that machine.
Scenario 4, self-service tanning bed daily usage Self-service solarium, clients drop in. Resources report → Opening hours mode → Solarium row. 9:00–21:00 opening (12h) → 40% utilization is about 5 hours of actual use a day.
Scenario 5, data-driven decision to add a third room Your current 2 rooms are at 85% and 80%. Resources report says it's high. Appointments report shows a waitlist. Finance shows you have the cash. Data-driven case for a third room.
How resources get linked to bookings
You create resources in Settings → Resources (type, capacity, multi-use, location). Then in Services → edit service you assign required resources: when a service is booked, the system auto-books the resource. The Resources report only counts booked time when there was a resource actually assigned to the appointment.
Tips
- Start with "Staff hours" mode, only switch to "Opening hours" if the resource is truly people-independent (self-service).
- The 10h/day fallback kicks in only when no one is scheduled in the period AND there are no tenant-level opening hours. An amber banner warns you: "No working hours configured...".
- Multi-use resources (
isMultiUse = true) multiply availability by capacity. A 4-cap room with 9h available = 36h base, so % reflects true concurrent usage. - Inactive resources still appear (gray "Inactive" tag) and count toward the avg. Use table filters to hide them, or toggle the active flag temporarily.
- Revenue = full appointment price, not just the machine portion. A 15,000 HUF appointment that uses the IPL contributes 15,000 to the machine's revenue (the booking wouldn't exist without it).
- CANCELLED appointments are excluded from both booked time and revenue (the slot was freed).