Reports hub
Six tabs — Insights, Sales, Appointments, Clients, Team, and Capacity — covering settled revenue, booking performance, client segments, and team pay, with every measure defined.
Updated 23 July 2026
The Reports hub at Reports in the left navigation gives you time-ranged analytics across six tabs: Insights, Sales, Appointments, Clients, Team, and Capacity & Demand. The Insights tab is an overview of patterns from your dashboard analytics (peak hours, top services, top performers). The Sales, Appointments, Clients, and Team tabs are driven by a shared date range you set once at the top of the page; the Capacity & Demand tab keeps its own range (current week by default) because it answers a different question — availability right now, not history.
Open in app: Reports
Who can see Reports
| Role | Insights | Sales | Appointments | Clients | Team (counts + hours) | Team (revenue + commission) | Capacity & Demand |
|---|---|---|---|---|---|---|---|
| Owner | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Admin | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Manager | Yes | Yes | Yes | Yes | Yes | Yes (by default) | No |
| Staff / Receptionist | No | No | No | No | No | No | No |
Reports are visible to anyone with the Reports permission — owner and admin have it by default, and the manager preset includes all analytical tabs including Insights, plus the Team tab's money columns by default. The Team tab's money columns (revenue and commission) are gated by the Team Pay permission: if an owner has individually revoked that permission from a specific manager's account, that manager sees the Team tab's booking counts and hours but not monetary figures. Staff and receptionists have no access to any Reports tab.
The Capacity & Demand tab is additionally restricted to owners and admins regardless of other permissions — it contains staff-load percentages that are not shared with staff.
What each tab shows
Insights
What it answers: "What are my busiest times, most popular services, and strongest performers — at a glance?"
The Insights tab is a quick-read overview using the same data source as the main dashboard. It does not use the shared date range picker — it reads from the dashboard analytics window (rolling week). Three charts are shown:
- Peak hours — a bar chart showing booking volume by hour of the day across the rolling week, so you can see when your business is at its busiest.
- Service distribution — a donut / breakdown of bookings by service, showing which services are most in demand by booking count and revenue.
- Top performers — a ranked list of staff members by bookings or revenue attributed to them this week.
The Insights tab is gated by the Sales Reports permission (same as the Sales tab) — owner, admin, and any manager who holds the Reports permission can see it.
Why the 3 charts moved here: Peak hours, service distribution, and top performers were previously on the main dashboard. They have been relocated to the Reports hub so the dashboard can focus on real-time operational signals (this week's revenue and trend, today's upcoming bookings, and action items). The charts are pattern-oriented rather than time-sensitive, so Reports is the natural home.
Sales
What it answers: "How much did the business take in, and where did it come from?"
The Sales tab shows business-level revenue for the date range you select: gross revenue, net revenue, amounts collected, outstanding balances, discounts applied, refunds, gift card redemptions, booking counts, and average ticket. Each measure has a precise definition:
- Gross — total billed on settled bookings.
- Net — gross minus refunds, discounts, and gift card redemptions on settled bookings.
- Collected — total paid (cash + card) on confirmed, completed, or settled bookings — this includes deposits already paid on a confirmed future booking, not only completed/settled ones.
- Outstanding — remaining unpaid balance across confirmed, completed, or settled bookings (sum of what is still owed, partial payments already made are subtracted). A booking that has been partially paid shows only its unpaid remainder here.
- Avg ticket — settled gross revenue divided by the count of settled bookings only (not all completed bookings). This isolates revenue per paid appointment.
- Completed bookings — count of bookings in either completed or settled status in the range.
Filters apply to every figure on the tab. The staff, service, location, and payment-method filters narrow the KPI strip and the chart, not just the table underneath. Set a filter and the headline numbers move with it.
Use the payment method filter to break the view down by payment method. The available filter options are Cash, Card in person, Online, and Gift card. "Online" covers card-on-file and online-card payments processed through Stripe. "Gift card" covers bookings paid by gift card redemption.
Filtering by staff or service splits the money
Location and payment method are whole-booking filters — a booking either matches or it doesn't. Staff and service are different, because one booking can involve more than one of each: two groomers on one dog, or two pets on one appointment.
When you filter to a staff member, the summary figures and the chart show that person's share of each booking, not the booking's full value. A $100 booking where one person was assigned $70 of the work and another $30 contributes $70 when you filter to the first and $30 when you filter to the second. Filter each person in turn and the shares add back up to $100 — never $200.
The table underneath still shows each booking's full amount. That is deliberate: the table is the list of bookings this person worked on, and a booking's price is a property of the booking, not of who worked on it. So under a staff filter the summary total is normally lower than the sum of the amounts in the table — the summary is counting shares, the table is showing whole bookings. Without a filter the two agree exactly.
Two more things follow:
- Booking counts are not split. A booking two people worked on counts as one booking for each of them. The money divides; the booking does not. So a staff member can show 1 booking and a part-share of its value, which is correct.
- Per-staff figures can add up to slightly less than the unfiltered total. The gap is work on booking lines that have nobody assigned. That is genuinely unattributed revenue rather than a rounding difference — if the gap matters to you, assign staff to those lines and it closes.
This is the answer to "what did this person bring in". It is deliberately not "what did this person touch", because that version double-counts every shared booking and can't be summed.
Important: Sales and Team revenue are not the same measure. The Sales tab shows business-level settled revenue (the total your business received). The Team tab shows the revenue attributed to each staff member from the settlement records. The two figures are related but not equal — a settled booking with no assigned staff, retail product sales attribution differences, and rounding can all create a gap between the totals. This is expected and correct. Do not try to reconcile them to the cent.
Appointments
What it answers: "How many bookings completed, and how is my retention?"
The Appointments tab shows booking counts, completion rate, cancellation rate, and no-show rate. Multi-pet bookings count as one booking throughout — a family with three dogs booked together is one booking, not three.
Rebooking rate measures return-rate retention: of the distinct clients who completed a booking in the selected range, the share who had also completed a booking at your business before the range started. A 60% rebooking rate means 6 in 10 completing clients were returning, not new. Drop-off bookings are included in the window.
Use the staff filter to narrow counts to a specific team member.
Clients
What it answers: "Who is my customer base, and how are they segmented?"
The Clients tab shows active clients (completed booking in range), new clients (first booking ever within range), returning clients (had a prior booking), and at-risk clients (no booking in recent weeks). Lifetime value (LTV) and average ticket derive from maintained client metrics.
Segmentation is derived from booking history. A client moves between new / returning / at-risk as their booking history changes.
Team
What it answers: "What did each team member earn, and does it match payroll?"
The Team tab shows per-staff revenue (services + products attributed to them), commission earned, hours worked, and total pay. These figures are the same source as your pay runs. The Team tab reads from the settlement records and uses the same hours calculation your pay periods use — including overtime. If a figure here differs from a finalised pay run, the cause is almost always a date range mismatch, not a data discrepancy.
Team revenue is not the same as Sales revenue. Team revenue is the sum of what each staff member was attributed at settlement. Sales revenue is the total settled by the business. They will usually differ — see the Sales tab explanation above.
The revenue and commission columns are hidden for any viewer who does not hold the Team Pay permission. Counts and hours are always shown to anyone with Team tab access.
Capacity / Demand
What it answers: "Is my team fully booked, and are customers trying to book when nothing is available?"
The Capacity & Demand tab shows a grid of each staff member's booking load by day (colour-coded: blue = under 60% booked, green = 60–90%, amber = over 90%), alongside a demand panel showing waitlist depth per service and slot searches that came back empty. This tab uses its own date range (defaults to the current business week) — it is not affected by the date range on the other four tabs.
From this tab, owners can click Open a slot to invite a team member to take an extra shift. Staff receive a notification with an accept link; when they accept, new booking slots appear within seconds.
This tab is visible to owners and admins only.
Shared date range
The date range picker at the top of the Sales, Appointments, Clients, and Team tabs drives all four tabs at once. Change it on any tab and the range persists as you switch between them. The Capacity & Demand tab has its own separate range control.
All date boundaries are calculated in your business timezone — the date range "1 June – 30 June" means June 1 to June 30 in your city, regardless of where the page is being viewed.
Tips
- Use the comparison toggle on the Sales, Appointments, Clients, and Team tabs to compare the selected range against the previous equivalent period (e.g. this month vs last month).
- Team figures == payroll is the design intent. If you are reconciling a pay run and the Team tab shows different numbers, first check that the date range matches the pay period boundaries exactly.
- The rebooking rate tells you about loyalty, not raw repeat visits. A client who books twice in the same month counts as one returning client — the denominator is distinct clients, not bookings.
- Settled vs delivered: Gross, Net, and Avg ticket count settled bookings only — they lock in once the trading day is settled. Collected and Outstanding reach confirmed, completed, and settled bookings, so a checked-out booking on an unsettled day (and even a deposit on a future confirmed booking) still contributes to those two measures.
- Staff without pay permission see the Team tab with booking counts and hours but the revenue and commission columns are replaced with dashes.
Troubleshooting
The Sales tab shows $0 for a range I know had bookings. Two causes, in order of likelihood. First, check whether those bookings were settled — Gross, Net, and Avg ticket only count once the trading day is settled via Booking Settlement. Outstanding and Collected will show values for checked-out (completed) bookings even before settlement. Second, if your bookings were imported from Square, they are excluded from all revenue reporting by design: Square does not link its payments to its bookings, so an imported booking carries no payment record and would otherwise read as a $0 unpaid job and distort every figure. Bookings made in Seglo report normally.
Filtering by one staff member shows less than I expected. That is the share, not the whole booking — see "Filtering by staff or service splits the money" above.
Under a staff filter, the summary total doesn't match the amounts in the table. Expected. The summary counts that person's share of each booking; the table lists the bookings they worked on at full price. Remove the filter and the two agree exactly.
Team revenue is lower than Sales revenue. This is normal — see the two-measure note above. Common reasons: bookings with no assigned staff, product sales attribution, and rounding. They should be in the same ballpark; a large gap suggests some days were settled without staff assigned.
The rebooking rate seems low. The rate counts clients who completed a booking in the range AND had a prior booking before the range started. A first-time client who books twice within the range is still counted as new, not returning.
A manager cannot see revenue/commission on the Team tab. Managers hold the Team Pay permission by default, so this means it was individually revoked from their account. The owner can grant it back from that team member's permissions in Team → Members.
Related