> ## Documentation Index
> Fetch the complete documentation index at: https://docs.1club.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Schedule and instructor analytics

> The Check-ins, Bookings, Classes, Instructors, and My performance analytics categories - attendance, utilization, booking audit, and instructor pay reports.

These analytics show check-in, booking, class, and instructor performance so you can optimize schedules, capacity, and instructor pay. Owners and managers use them to plan the timetable, reconcile payments, and pay instructors. Instructors use **My performance** to see their own numbers.

## When to use it

Use these reports when you are about to change the schedule, close the month, or run payroll. Typical questions they answer:

* **Which courts sit empty, and when is demand highest?** - a padel gym sees Court 3 at 42% utilization while Courts 1 and 2 run near 95%, with bookings concentrated at 18:00 to 21:00.
* **Which bookings are still unpaid?** - a jiu-jitsu gym filters the booking audit to unpaid class bookings for the last 30 days and reads the total to collect.
* **Which classes get booked but not attended?** - a reformer studio finds a midday class with high bookings but a low attendance rate, while its 07:00 class is at full capacity.
* **What do you owe each instructor this month?** - a CrossFit box checks each coach's month in the instructor report, then exports it for payroll.

See [Worked examples](#worked-examples) for what each gym did next.

## Reports in this category

Open **Analytics** and pick a category in the sidebar:

| Category | Reports |
| - | - |
| **Check-ins** | **Attendance** (check-in volume, peak times, no-show rate), **Check-ins Report** (every check-in for a day or short range) |
| **Bookings** | **Dashboard** (volume, revenue, cancellations, peak times), **Audit** (payment reconciliation per booking), **By Source** (channel, API key, and UTM source), **Utilization** (booked hours versus capacity), **Monthly Report** (month-by-month matrix by type) |
| **Classes** | **Classes Dashboard** (attendance, capacity utilization, popular classes) |
| **Instructors** | **Instructors Dashboard** (sessions and revenue per instructor), **Instructor Pay Report** (monthly compensation), **Earnings Statement** (one instructor's line items), **Earnings by entrance method** (revenue and coach share per entrance method) |
| **My performance** | The signed-in instructor's own **Bookings**, **Classes**, **Earnings Overview**, **Earnings Statement**, and **By entrance method** |

Most reports export to CSV. See [Exporting reports](#exporting-reports).

## Filters

The reports share the same filter bar at the top:

* **Date range** - One field showing the selected days, with previous and next period arrows. Open it to pick a preset or a custom range on the calendar. Dashboards default to the last 30 days; the monthly report, instructors dashboard, and pay report offer month presets and default to the last 6 months; the earnings statement and entrance-method report default to the last month.
* **Club** - There is no club control on the report. Reports follow the club selected in the breadcrumb at the top of the admin; **All clubs** shows the whole organization. The earnings statement, entrance-method report, and **My performance** reports are not narrowed by club.

## Check-ins

The **Check-ins** category covers who actually came in.

**Attendance** (**Analytics** > **Check-ins** > **Attendance**) has KPI cards for **Total check-ins**, **Unique members**, **Average check-ins per member**, and **No-show rate** (the share of bookings that were not attended). Below them are an attendance trend line, **Peak times** by hour, and attendance **By club** and **By area type**. Use no-show rate and peak times together to right-size class capacity and tighten cancellation windows where no-shows are high.

The **Check-ins Report** (**Analytics** > **Check-ins** > **Check-ins Report**) lists every individual check-in, grouped by how the member got in (membership, pass, drop-in, or external program) with a subtotal per group and **Total check-ins** at the bottom. Columns are **Member**, entry method, **Time**, and reference. It opens on **Today** and accepts ranges of up to 31 days, so the front desk can reconcile a shift or a day against the till.

## Bookings dashboard

The **Dashboard** (**Analytics** > **Bookings** > **Dashboard**) is the top-of-funnel view of demand and revenue.

KPI cards:

* **Total bookings**, **Confirmed bookings**, **Cancelled bookings**, and **Pending bookings** - Volume by status.
* **Total revenue** - Amount billed by the bookings in range.
* **Paid bookings amount** - How much of that has been collected.
* **Average booking value** - Revenue divided by bookings.
* **Cancellation rate** - Cancelled bookings as a percentage of the total.

Charts:

* **Booking trends** - Bookings (bars) and revenue (line) over time. The time bucket adapts to your date range (daily, weekly, or monthly).
* **By area type** - Bookings per area type (for example, tennis court, reformer studio, climbing wall).
* **By source** - Bookings per booking source.
* **Peak hours** and **Peak days** - When bookings cluster, by hour of day and day of week.

Use this dashboard to spot demand patterns and set your class and court schedule around peak hours and days.

## Bookings by source

**By Source** (**Analytics** > **Bookings** > **By Source**) splits booking volume two ways:

* **Bookings by source** - The booking channel (for example, admin, member portal, kiosk). Bookings made through the API are split per API key, and bookings made through AI assistants are counted separately.
* **Bookings by marketing source (UTM)** - The `utm_source` attached to the booking, so you can attribute bookings to specific marketing links or campaigns.

This is the same source data summarized on the Bookings dashboard, broken out for attribution work.

## Utilization

The **Utilization** report (**Analytics** > **Bookings** > **Utilization**) compares booked hours against available capacity, so you can see how hard your rooms and instructors are working.

KPI cards:

* **Area utilization** and **Instructor utilization** - Booked hours as a percentage of capacity hours.
* **Area capacity** and **Instructor capacity** - Booked hours over capacity hours (for example, `120 / 400 h`).

Charts:

* **Utilization over time** - Booked hours (bars) and utilization percentage (lines) for areas and instructors, over the period.
* **Utilization by area type** and **Utilization by instructor type** - Where you have headroom or a bottleneck, broken down by type. Each bar is backed by a `booked / capacity h` breakdown underneath.

Low utilization on a peak day means you can add classes or open more court slots; utilization near 100% is a signal to add capacity or staff.

## Booking audit

The **Audit** report (**Analytics** > **Bookings** > **Audit**) is a row-level payment-reconciliation view. It lists every booking in the selected date range, with unpaid bookings highlighted, so you can see at a glance what has been paid, what is outstanding, and how each booking was entered.

Summary cards show **Outstanding**, **Unpaid bookings**, **Total billed**, and **Total bookings**.

Columns: **Date**, **Member**, **Type**, **Resource**, **Club**, **Source**, **Status**, **Entrance**, **Amount**, **Outstanding**, **Payment**, and **Method**.

You can refine the table with three filters, and the filters also apply to the CSV export so the two always match:

* **Payment** - The payment state of the booking.
* **Type** - The resource, grouped by **Area**, **Class**, **Instructor**, and **Other**.
* **Status** - Confirmed, Pending, Checked in, No show, or Cancelled.

**Payment** states:

* **Unpaid** - Nothing collected yet.
* **Partial** - Some but not all of the amount is paid.
* **Paid** - Fully collected.
* **Refunded** - Payment was returned.
* **Covered** - Settled without a direct charge (for example, by a membership).
* **No charge** - No payment was required.

**Entrance** captures how the booking was paid for:

* **Direct payment** - Paid at the time of booking.
* **Membership** - Consumed from a membership allowance.
* **External program** - Redeemed against an external program (these visits carry their own per-visit fee).

Click a row to open the booking detail. Unpaid rows are tinted so you can chase them down.

## Bookings monthly report

The **Monthly Report** (**Analytics** > **Bookings** > **Monthly Report**) is a month-by-month matrix: one row per month, one column per booking type, plus **Total bookings** and **Total revenue** columns and a **Totals** row. A stacked bar chart above the table shows the same breakdown by type.

Use it for period-over-period comparison (for example, "how did padel bookings trend across the last six months?") and export it for board or owner reporting.

## Classes dashboard

The **Classes Dashboard** (**Analytics** > **Classes** > **Classes Dashboard**) covers group class performance.

KPI cards:

* **Total classes**, **Total bookings**, and **Total attendance**.
* **Average attendance** - Average attendees per class.
* **Capacity utilization** - Attendance as a percentage of class capacity.

Views:

* **Classes and attendance trends** - Classes (bars) plus bookings and attendance (lines) over time.
* **By instructor** - Attendance per instructor.
* **Most popular classes** - The top classes by bookings, with their attendance and **attendance rate**.

Watch the gap between bookings and attendance: a high booking count with low attendance points to a no-show problem you can address with [booking policies](/settings/booking-policies).

## Instructor analytics

The **Instructors** category is the gym-wide view of every instructor.

### Instructors dashboard

The **Instructors Dashboard** (**Analytics** > **Instructors** > **Instructors Dashboard**) is a matrix of **sessions** and **revenue** per instructor per month, with **Total instructors**, **Total sessions**, and **Total revenue** cards and a per-month **Totals** row. Each instructor row also shows their club. A direct booking counts as one session; a co-taught class counts once for each instructor, and its revenue is split between them so organization totals are not double-counted.

### Instructor pay report

The **Instructor Pay Report** (**Analytics** > **Instructors** > **Instructor Pay Report**) is a month-by-month matrix of **instructor compensation**, with a **Totals** row and an **Instructor Compensation** total column. Click any month cell to open a drill-down of what made up that month's figure for that instructor.

### Earnings statement

The **Earnings Statement** (**Analytics** > **Instructors** > **Earnings Statement**) is an itemized breakdown of every payment that contributed to a single instructor's compensation. Pick an instructor with the selector, choose a period, and the statement lists each line item; click a line to jump to the underlying class or booking.

### Earnings by entrance method

**Earnings by entrance method** (**Analytics** > **Instructors** > **Earnings by entrance method**) shows, for a selected instructor, the revenue and coach share split by how members got in. Each pass, program, and direct payment gets its own row, with a line-item count and a total.

### My performance

Any user linked to an instructor record - an instructor, or an owner or manager who also teaches - gets a **My performance** category with their own numbers only: **Bookings**, **Classes**, **Earnings Overview**, **Earnings Statement**, and **By entrance method**. The bookings and classes reports need the `analytics.read.own` permission; the three earnings reports need `billing.read.own`, so you can hide pay from instructors without hiding their schedule stats.

## Exporting reports

Reports with an **Export** button in the top-right download a CSV of exactly what is on screen, including any filters you applied. Exportable reports include the **Check-ins Report**, **Audit**, **Monthly Report**, **Classes Dashboard** (by instructor), **Instructors Dashboard**, **Instructor Pay Report**, **Earnings Statement**, and **Earnings by entrance method**. Files are named with the report and date range, and the club id when the report is narrowed to one club. For scheduled or bundled exports, see [Settings > Data Tools > Export](/settings/export).

## Worked examples

**Racket sports - fixing a court that pays for itself.** A padel club looks at **Utilization** and sees Court 3 at 42% while Courts 1 and 2 run near 95%. The bookings **Dashboard** peak-hours chart shows demand concentrated at 18:00-21:00. They move a coaching block off Court 3 into that window and re-run utilization a month later to confirm the lift.

**Martial arts - chasing unpaid drop-ins.** A jiu-jitsu gym runs the bookings **Audit** filtered to **Payment = Unpaid** and **Type = Class** for the last 30 days. The **Outstanding** card shows the total to collect; each unpaid row links straight to the booking so the front desk can take payment.

**Pilates / Yoga - trimming a class that does not fill.** A reformer studio checks the **Classes dashboard**. A midday Pilates class shows high bookings but a low **attendance rate**, while capacity utilization on the 07:00 class is maxed out. They cut the midday slot and add an early class, then watch **Average attendance** and **Capacity utilization** the following month.

**Gym / Fitness - paying instructors correctly.** A CrossFit box closes the month with the **Instructor Pay Report**, clicks each coach's month cell to verify the sessions behind the figure, then exports the CSV for payroll. For a single disputed coach, the **Earnings Statement** shows every contributing line item.

**Climbing - reading demand by source.** A climbing gym uses **By Source** and sees a spike in **Bookings by marketing source (UTM)** tied to an intro-offer link. They compare it against the bookings **Dashboard** revenue trend to confirm the promotion drove paid bookings, not just free trials.

## Tips & best practices

* Set the **Date range** first. A "zero" often just means the range or the selected club excludes the data.
* Pair **Utilization** with the bookings **Dashboard** **peak hours / peak days** charts before changing the schedule - utilization tells you the "how full", peak times tell you the "when".
* Reconcile with the bookings **Audit** weekly using the **Payment = Unpaid** filter, so outstanding amounts do not pile up.
* Use the **Instructor Pay Report** drill-down to answer pay questions before exporting, so the CSV you send to payroll is already reconciled.
* Compare month-over-month with the **Monthly Report** rather than eyeballing the trend chart, when you need exact figures.

## Troubleshooting

* **A report is blank or shows zeros.** The date range is not set, or it excludes the data. Confirm both start and end dates, then check the club selected in the breadcrumb is the one you want.
* **The Export button is disabled.** There are no rows for the current filters. Widen the date range or clear a filter, then export.
* **Audit totals do not match another report.** The audit is invoice/booking based and honors the on-screen **Payment**, **Type**, and **Status** filters. Clear the filters to see the full period, and remember refunds and covered bookings affect the outstanding total.
* **Attendance is lower than bookings.** That gap is your no-show rate. Check the **No-show rate** card on **Check-ins** > **Attendance** and tighten [booking policies](/settings/booking-policies) if it is high.
* **An instructor shows no compensation.** Confirm the instructor had sessions in the selected range and that pay rates are configured for them; the **Earnings Statement** shows whether any line items exist for the period.

## Related

* [Analytics overview](/analytics/overview) - All analytics categories.
* [Revenue analytics](/analytics/billing) - Revenue, payments, and invoices.
* [Bookings](/schedule/bookings) - Manage bookings.
* [Classes](/schedule/classes) - Manage classes.
* [Instructors](/staff/instructors) - Manage instructors and pay.
* [Attendance](/schedule/attendance) - Check-ins and attendance.
* [Booking policies](/settings/booking-policies) - Cancellation windows and no-show handling.
* [Settings > Data Tools > Export](/settings/export) - Scheduled and bundled CSV exports.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.