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 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.
How instructors show up on the schedule
The 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 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.
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
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.
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). 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 - Where instructor columns and time off live.
- Classes - Instructors are assigned to classes here.
- Bookings - One-on-one bookings against instructors.
- Roles and permissions - What the instructor role can and can’t do.