> ## 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.

# Instructors

> Manage your coaching staff, their bookable rates, sports, types, and operating hours.

Instructors are the coaches, trainers, and class leads who teach classes or take one-on-one bookings. They live under **Staff > Instructors** in the admin, not under Operations - but the schedule page and booking dialog both surface them, so they're documented here next to the rest of the operations stack.

## The instructor list

The list at **Staff > Instructors** shows one row per instructor with these columns: drag handle, name and avatar, instructor type, status (bookable badge, inactive chip), sports (up to three with a `+N` overflow), gym, and hourly rate.

Drag a row to reorder; the new order is what shows on the schedule and in selectors. The drag handle is disabled while a reorder request is in flight. If the server rejects the reorder, the list snaps back to the server order with a toast.

Click a row to open the instructor profile, or **Add instructor** to create one.

## Creating or editing an instructor

The user dialog handles both inviting a new instructor (which creates the contact, user, and instructor profile in one shot) and editing an existing one. The instructor section asks for:

* **Instructor type** - managed under **Settings > Instructor types**. Picking a type can default the max concurrent bookings.
* **Hourly rate** - in your organization's currency. Used when a booking is created against this instructor; duration multiplied by this rate seeds the line total.
* **Sports** - tag-style list. Used by the [public marketplace](https://1club.me) for filtering and on the list row.
* **Experience** and **Certifications** - free-text fields shown on the profile.
* **Bookable** toggle - when on, the instructor appears in the booking dialog's instructor selector and on the schedule as a bookable column. When off, the instructor can still be assigned to classes but cannot be booked directly.
* **Max concurrent bookings** - only visible when bookable is on. How many overlapping one-on-one bookings the instructor accepts.
* **Active instructor** toggle - inactive instructors are hidden from selectors but kept for historical bookings.
* **Operating hours** - per-day working hours used by the booking dialog's availability checks.
* **Give instructor access** - when on, the user is invited with the instructor role and can sign in to the [instructor dashboard](/dashboard/overview).

Per-instructor display colors used on the schedule are configured separately under **Settings > Operations > Schedule coloring**, not on the instructor dialog itself.

## How instructors show up on the schedule

The [Schedule](/operations/schedule) page reads bookable instructors and renders one column per instructor in day view. A class assigned to an instructor produces a "teaching" mirror event on the instructor's column, so the instructor reads as busy during their classes (in addition to the class itself appearing under its class-type column).

Instructor time off (managed via the same calendar - right-click an instructor slot or open an existing time-off entry) renders as grey blocks on the instructor's column. When schedule **staff coloring** is enabled, blocks use the assigner's profile color instead of the resource color. See [Settings > Schedule coloring](/settings/overview) for the toggles.

## Shift scheduling

Instead of fixed operating hours, you can drive instructor availability from **shifts**. Shift scheduling is an organization-level option; when it's on, an instructor's shift roster becomes the source of truth for when they can be booked. Instructors without a roster keep using their operating hours.

Shifts are managed under the **Staff** section:

* **Shifts** tab - build reusable **shift templates** (a named time window like "Morning 06:00-14:00", with standard breaks such as lunch) and **rotations** (a multi-week weekly pattern that picks a template for each day, with a configurable cycle length). You also assign instructors to a rotation here, with a cycle start date, a starting week, and effective-from/until dates.
* **Roster** tab - the generated, editable roster of individual shifts over a rolling window. Editing a single shift marks it as a manual override so it won't be changed when the rotation regenerates.

Standard breaks (for example, lunch) block bookings during their window, just like any other booking blocker.

On the instructor's details page, a read-only **Working hours** block shows the hours derived from their shift roster, with a **Manage shifts** link to jump to the Staff shifts area.

### Rescheduling on the calendar

On the **Operations → Schedule** calendar you can drag a booking or class to a new time. The move keeps the same resource (area, instructor, or class type) and the same duration - only the start and end time shift. Every drop asks you to confirm the old and new time, and for recurring events you choose whether the change applies to just that occurrence or to all future ones.

## Pay rates and paid-booking gating

Beyond a flat hourly rate, you can define **pay rate policies** that determine how an instructor is compensated for the classes and bookings they deliver.

### Only compensate for paid bookings

A pay rate policy includes an **Only compensate for paid bookings** toggle. When it's on, the instructor is paid only for paid visits:

* Memberships
* Fully-paid bookings
* External-program visits that were both checked in and paid

Unpaid or no-show bookings earn nothing. The in-app help reads: "When on, the instructor is paid only for paid visits: memberships, fully-paid bookings, and external-program visits that were both checked in and paid. Unpaid or no-show bookings earn nothing."

### How gating works in practice

* An instructor's pay for a booking or check-in is only recorded once the underlying charge is settled. If a booking is still unpaid, it doesn't pay out.
* For recurring bookings, each occurrence is gated on its own payment - future unpaid occurrences won't pay out until they're charged and paid.
* If a class is deleted, the related instructor pay-ledger rows are cleared.

Leave the toggle off to compensate the instructor for every booking regardless of payment status.

## Instructor earnings

Instructors who sign in to their own dashboard get a personal **Earnings** page. The top of the page shows four summary cards for the selected timeframe: **Total earnings**, **Total classes**, **Attendance**, and **Personal training sessions**.

Below that, a daily earnings bar chart lets the instructor drag-select a date range, or switch between **Last 7 days**, **30 days**, **90 days**, or a custom range. The summary cards and breakdown update with the selection.

The breakdown table lists each class or booking with name, type (class or standalone booking), count of attendees or sessions, and the compensation earned. The numbers are computed from pay-rate policies; see **Staff > Pay rates** for how those are configured.

## Mixed-role accounts

A user who is both an instructor and an admin or manager has access to two schedule views. The org-wide schedule lives at **Operations > Schedule** (see [Schedule](/operations/schedule)). A personal "My teaching schedule" view, scoped to just their own classes and bookings, is reached through the instructor menu in the sidebar.

## Related

* [Schedule](/operations/schedule) - Where instructor columns and time off live.
* [Classes](/operations/classes) - Instructors are assigned to classes here.
* [Bookings](/operations/bookings) - One-on-one bookings against instructors.
* [Roles and permissions](/reference/roles-permissions) - What the instructor role can and can't do.
