Export at least 12 weeks of class bookings from your booking system, remove member names, and give the file to an AI assistant with a prompt that scores every class slot on fill rate, waitlists, late cancellations and first-timers. Then change only the two or three slots the numbers flag, and run the new timetable as a six-week test.
The trap is reading a slot's numbers as a verdict on the class. A half-empty Thursday 7pm might be the wrong time, the wrong style or the wrong teacher, and each needs a different fix. Good timetable analysis separates those three before anything moves, because the regulars in a "failing" class are often your most loyal members.
Export the right twelve weeks
Twelve weeks gives each weekly slot a dozen data points, which is enough to see a pattern and short enough to reflect your current members. Avoid a window that includes an unusual stretch such as a January rush or a summer holiday dip unless you are specifically planning for it.
Most studio systems can export what you need. Mindbody's Class Schedule report shows weekly capacity utilisation and its Attendance Analysis report picks out classes running below capacity; Momence lets you download reports to open in Excel, Numbers or Google Sheets. Aim for one row per class session with these columns, shown here with three sample rows:
| date | day | start | class | teacher | capacity | booked | attended | late_cancel | no_show | waitlist | first_timers |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026-07-07 | Tue | 18:30 | Vinyasa | T2 | 20 | 20 | 17 | 1 | 2 | 6 | 3 |
| 2026-07-08 | Wed | 06:30 | Morning flow | T1 | 20 | 9 | 8 | 0 | 1 | 0 | 0 |
| 2026-07-09 | Thu | 19:00 | Yin | T3 | 20 | 7 | 5 | 1 | 1 | 0 | 2 |
Replace teacher names with codes (T1, T2) and leave member names out entirely: timetable analysis needs counts, not people. Mark any session that was cancelled, covered by a substitute or run at reduced capacity (a room booked out for a workshop, say) in an extra "notes" column, so the assistant can leave those out or treat them separately. One cancelled week logged as zero attendance can drag a healthy slot below your threshold on its own. If your system only exports one row per booking rather than per session, ask the assistant to total them into this shape first, and check two sessions by hand against the booking screen.
Renamed classes cause a quieter version of the same problem. In one illustrative export, "Slow flow" had become "Morning flow" in week 7 with the same teacher, time and members. The assistant treated them as two slots with six weeks each, reported "Morning flow" as a new class with a rising trend and "Slow flow" as a class that had stopped. Neither was true. Before running the prompt, ask for a list of every class name and the weeks it appears in; any name that stops in the same week another starts is probably a rename, and you map the old name to the new one in the file.
Five numbers for every class slot
A "slot" here means the same class at the same day and time each week. For each one, you want:
| Number | How to work it out | What should make you look closer |
|---|---|---|
| Fill rate | Average attended ÷ capacity | Consistently below 50-60%, the range Mindbody's own guidance flags for consolidation |
| Waitlist frequency | Sessions with a waitlist ÷ total sessions | Above half: demand is going unmet |
| Late cancel and no-show rate | (Late cancels + no-shows) ÷ booked | Above 15%: a booking-policy problem, not a timetable one |
| First-timer share | First-timers ÷ attended | Very high with low return: a beginner-friendly slot with a follow-up gap |
| Trend | Average attended, first six weeks versus last six | A drop of a quarter or more, even if the fill rate still looks fine |
The 15% and "above half" lines are rules of thumb rather than industry standards; set your own once you have seen a season of your data. The point is to have a threshold written down before you look, so a slot you are fond of gets judged by the same rules as the rest.
The late-cancel line is the one most often misread as a timetable problem. Take an illustrative Monday 18:00 HIIT class that shows as fully booked every week, yet averages 15 attendees in a 20-place room: a quarter of bookings end as late cancels or no-shows. Moving it wouldn't help, because demand isn't the issue. A reminder the afternoon before, a late-cancel window that frees the place in time for the waitlist to take it, and automatic promotion from the waitlist would fill it without touching the timetable. Fix the booking rules first, rerun the numbers after four weeks, and only then decide whether the slot itself needs to change.
Ask AI to find the patterns, then check its sums
Any paid chat assistant that can read spreadsheets will do this; what ChatGPT can and can't read covers the file limits. The prompt:
Attached: one row per class session for the last 12 weeks.
1. Group by slot (day + start + class). For each slot calculate fill rate,
waitlist frequency, late-cancel-plus-no-show rate, first-timer share,
and change in average attendance between weeks 1-6 and 7-12.
2. Flag slots below 55% fill, above 50% waitlist frequency, or above
15% late-cancel-plus-no-show.
3. For each flagged slot, say whether the same class does better at other
times, and whether the same teacher does better in other slots.
4. Show the calculation for two slots so I can check it.
Don't recommend changes yet; describe what the numbers show.
An excerpt of what came back on a test file (illustrative):
Thu 19:00 Yin: fill 31%, waitlist 0%, cancel/no-show 20%, first-timers 30%,
trend -8%. Yin on Sunday 17:00 fills 78%. T3's other slots average 70%.
-> Low fill appears tied to the time slot rather than the class or teacher.
Wed 06:30 Morning flow: fill 44%, waitlist 0%, cancel/no-show 9%,
first-timers 2%, trend +3%. Same 8-9 attendees most weeks.
Tue 18:30 Vinyasa: fill 92%, waitlist 83%, cancel/no-show 14%.
-> Demand exceeds capacity.
Mostly sound, with one thing to fix. For the Yin slot, the assistant calculated fill from bookings in some weeks and attendance in others, because two exported rows had a blank "attended" field. Its 31% should have been 27%. Ask it to list any rows with missing values before calculating, and always recheck the two worked slots yourself. Notice too what the Wednesday line is telling you: a small, stable, loyal group, which is a very different thing from a failing class.
Put a cost against each flagged slot
Fill rate says how full a class is, not whether it pays. Before cutting anything, work out the slot's margin with two numbers you already know: what the teacher costs for that class and what an average visit is worth. Average visit value is membership and class-pack revenue divided by visits over the same period; many studios land somewhere between $10 and $20, but use your own figure.
Take the Wednesday 6.30am class from the sample output: about 8.8 attendees on average, an average visit value of $12 and a teacher fee of $45. That is about $105 of visit value against $45 of direct cost, so it more than pays for itself at 44% full. Compare Thursday 7pm Yin at 5.4 attendees: about $65 against the same fee, still positive but the weakest in the week, and the room at that hour could hold a class with a waitlist. Asking the assistant to add a "margin" column with your fee and visit value turns the flagged list into a ranked one, which is a better basis for choosing what to change first.
Is it the slot, the class or the teacher?
Use the comparisons from step 3 of the prompt to sort each flagged slot into one of four boxes.
| Same class does well at other times | Same class does poorly everywhere | |
|---|---|---|
| Teacher does well elsewhere | Wrong time. Move the class or swap it with a stronger style for that slot. | Wrong class for your members. Rethink or retire the style. |
| Teacher does poorly elsewhere too | Look at the teacher's fit for that style; talk before you timetable. | Both need attention; change one thing at a time. |
Teacher conversations belong with you, not with a spreadsheet. The data can prompt a supportive chat about class plans or music; it should never be the first a teacher hears about a problem.
An illustrative yoga studio, before and after
An illustrative yoga studio runs 28 classes a week in one 20-mat room. Twelve weeks of data flag four slots, and the owner makes three changes and deliberately leaves one alone.
| Slot | What the data showed | Change |
|---|---|---|
| Tue 18:30 Vinyasa | 92% fill, waitlist in 10 of 12 weeks | Add a second Vinyasa at 19:45 on Tuesday |
| Thu 19:00 Yin | 27% fill; Yin fills 78% on Sundays; teacher strong elsewhere | Replace with Vinyasa; move Yin to Wednesday 20:00 as a wind-down trial |
| Sat 11:30 Beginners | 40% first-timers, but few return within a fortnight | Keep the slot; add a follow-up message and intro offer after first class |
| Wed 06:30 Morning flow | 44% fill, stable group of 8-9 on unlimited memberships | No change. Mention it at the end-of-term review. |
The Wednesday decision is the one the numbers alone would have got wrong. A studio in a similar position that cut an early class at 45% fill would risk losing those regulars, and members on unlimited plans are exactly the ones you can't afford to lose over a 6.30am class that costs one teacher fee a week. The Saturday change is a follow-up problem rather than a timetable one; turning first visits into memberships is covered in how studios turn intro offers into memberships.
Moving classes without losing the regulars
Tell the people affected before you tell everyone, and tell them why. For the Thursday Yin regulars, a message along these lines, drafted with a chat assistant and edited in your own voice:
Hi [first name], you've been one of our Thursday Yin regulars, so I
wanted you to hear this from me first. From 3 November, Thursday 7pm
becomes Vinyasa and Yin moves to Wednesday at 8pm, a quieter wind-down
slot. Your booking for the first new Wednesday is held if you'd like
it: just reply YES. If Wednesday doesn't work, tell me, because I'm
reviewing the new timetable after six weeks. Thank you. [Your name]
Held bookings and a stated review date do most of the work. If you use AI to draft messages like this, keep your studio's tone; using AI in a studio while keeping your voice shows how to brief it.
The new class needs its own message, sent first to the people who wanted in. For the extra Tuesday Vinyasa, the owner filtered the waitlist records to members who had joined a Tuesday 18:30 waitlist twice or more (illustratively, 23 of them) and offered them the first 48 hours of booking for the 19:45 before it opened to everyone. That turns the class launch into a reward for the people whose demand created it, and fills most of the first week before any general announcement. Keep the message short: the new time, that they're getting early access because they've been on the waitlist, and the booking link.
If you're adding a class because of a waitlist, consider whether running the waitlist automatically gets some of those people into existing classes first.
Run the new timetable as a six-week test
Treat every change as an experiment with an end date. Decide before launch what success means for each changed slot, for instance "the new Tuesday 19:45 averages 12 or more by week six" or "Wednesday Yin keeps at least 70% of the Thursday regulars". At week six, rerun the same prompt on the six weeks since the change and compare like for like.
For the yoga studio, an illustrative week-six readout: the new Tuesday 19:45 averaged 13 attendees against a target of 12, and the original 18:30 still filled at 88%, so the second class had absorbed the overflow rather than splitting the first. Thursday 19:00 Vinyasa, replacing Yin, averaged 15. Wednesday 20:00 Yin kept four of its six Thursday regulars, short of the 70% target, and two of the four had booked only half the weeks. That's a partial result, not a failure, and the right response is to ask the two who stopped coming what would work, not to move Yin a second time straight away. A slot moved twice in two months loses even the loyal ones.
Three things muddy the results, so account for them: a seasonal swing (compare against the same weeks last year if you have them), a teacher's holiday cover, and any promotion running at the same time. Change one thing per slot, not three, or you won't know which one worked.
When the booking data can't answer the question
Some timetable questions sit outside what twelve weeks of bookings can tell you. A class launched less than eight weeks ago is still finding its audience, so give it a full term before judging it. A slot that is always full tells you demand exceeds capacity but not by how much; the waitlist only records people who bothered to join it. And the data shows nothing about people who never book because no class suits them, such as parents who could only come at 9.30am after the school run. For those questions, a two-question survey to members ("Which times would you come to that we don't offer?" and "Which style would you try?") fills the gap, and a chat assistant can group free-text answers into themes in a few minutes.
An illustrative run on 64 replies returned five themes: weekday 9.30am classes (17 mentions), a later Friday evening slot (11), weekend mornings before 9am (9), something gentler for older members (8) and pre- and postnatal classes (6). Two things needed checking. Three replies that said "anything after drop-off" had been counted under "weekend mornings" when they meant weekday mornings, which lifts the 9.30am theme to 20. And the themes covered only 51 of the 64 replies: the other 13 ("cheaper memberships", "more parking") fitted no timetable theme, and the assistant had left them out without saying so. That's fine for timetabling, but those 13 are worth reading for other reasons. Ask for the replies behind each theme and skim them; it takes five minutes and changes how confident you should be.
Scaling the method down to a personal trainer's small groups
The same method works at a smaller scale. A personal trainer running eight small-group sessions a week with six places each has too few data points per session for fill rates to mean much over 12 weeks, so widen the view: group sessions by time band (early morning, lunchtime, evening) rather than individual slot, and look at which clients book which band. If most of the 6am regulars also book 12.30, the trainer can consolidate two thin early sessions into one full one without losing anyone. The prompt is the same with "slot" replaced by "time band", and the minimum sample is the rule to respect: with fewer than 30 attendances in a group, treat any pattern as a hunch to test, not a finding.
Further reads
- How to Reduce No-Shows With AI Reminders and Automatic Rebooking — If no-shows are what's dragging a slot down, fix them first.
- Gym Automation Mistakes That Increase Member Churn — Automation mistakes that push members away, worth avoiding here.
- Automated Check-Ins for Gym Members: What to Send and When — Check-in messages that keep members coming to their usual class.
- How to Keep Customer Data Private When Your Team Uses AI — What to strip out of member data before any AI sees it.
- How to Forecast Next Quarter's Sales With AI Using Your History — The same history-based method, applied to next quarter's revenue.
- Gym Retention Software With AI: What It Costs and Delivers — What gym retention AI costs in 2026, what it really delivers (a ranked call list), and a 60-day holdout test to see if it works at your gym.
- How to Build a Restaurant Staff Rota With AI Demand Forecasts — Turn a covers forecast into an hourly staffing plan and a fair rota, with a worked Saturday that shows the labour-cost difference in dollars and hours.
- What Is AI Churn Prediction and Can a Small Gym Use It? — How gym churn prediction works in plain English, which signals matter, and a spreadsheet risk score a small gym can build in an afternoon.
- Tutoring Centre Admin With AI: Enquiries, Timetables, Invoices — Enquiry replies from a fact sheet, AI-proposed timetables checked for clashes, and invoices built from attendance: a tutoring centre's admin, step by step.
- How Driving Schools Use AI to Keep Instructor Diaries Full — Fill cancelled slots in an hour, replace pupils before they pass, cut dead travel between lessons and spot quiet weeks early, with the data each step needs.
- AI Tools and AI Development: The Complete 2026 Guide — the AI hub, including every tutorial in the AI-for-business series.
Sources: Mindbody reporting pages and its guidance on using the Class Schedule and Attendance Analysis reports; Momence help pages on report downloads.