The cheapest schedule optimisation tool a studio has is a single grid: day of week across the top, time of day down the side, fill rate in each cell. Built right, you can read it in thirty seconds. You see which classes are turning members away, which classes are empty, where the lunchtime dead zone lives, and whether your 6am Monday is actually as full as the front desk thinks it is.
Built wrong, it's a colourful piece of decoration that lives on the dashboard and changes nothing. The difference is in how you read it. Most studio owners look at the brightest cells and pat themselves on the back. The interesting information is in the patterns — the rows, the columns, and the gaps.
Here's a practical guide to actually using your heatmap. What the patterns mean, what they don't mean, and how to test a change without breaking everyone's habit at once.
1. What the heatmap actually shows
A class heatmap is a two-axis grid. The horizontal axis is day of week (Monday through Sunday). The vertical axis is time of day (usually in one-hour buckets from 5am to 10pm). Each cell shows the average utilization rate — bookings as a percentage of capacity — for any class that ran in that slot over the period you're looking at, usually the last 30 or 90 days.
Hot cells are full. Cold cells are empty. A cell with no class at all is blank. Most platforms also show absolute numbers on hover — 14/16 booked, 87% fill — so you can tell the difference between one class ran here, it was packed and eight classes ran here, average 87%.
The first read is always the same: where's the heat. The second read — the one that pays — is the shape of the heat.
2. The patterns and what they're telling you
| Pattern | Likely cause | What to test |
|---|---|---|
| A hot row at 6:00pm | Time-of-day demand. Working professionals book the after-work slot regardless of weekday. | Add capacity (a second class running in parallel in a different room) before adding a new time slot. |
| A hot column on Monday | Day-of-week demand. Members start the week strong; consider Tuesday a leakier version of this. | Add a Monday class one hour earlier or later before adding a Tuesday class at the same time. |
| A hot diagonal (Mon 6am, Tue 7am, Wed 8am) | Probably noise, occasionally a real pattern from a single instructor's recurring schedule. | Check whether the same instructor teaches all of those slots. Patterns that disappear when the instructor changes are about the person, not the time. |
| A cold weekday lunchtime row | Demand ceiling. Your members aren't free at noon. Adding more lunchtime classes will hurt utilization, not help. | Don't add classes. Remove the underperforming ones and reinvest the slot elsewhere. |
| Saturdays hot, Sundays empty | Demand pattern, not capacity. Sundays in many cities are family days; gym demand collapses. | Try a single weekend brunch-time class on Sunday rather than a full slate. Or accept the pattern. |
| A consistently 100% cell | Capacity ceiling. You're turning members away. The cell shows full, but the waitlist behind it tells the real story. | Cross-reference the waitlist size, then add a parallel class or move to a bigger room. |
| An 85-95% cell with no waitlist | Healthy. Don't touch it. Members are getting in but the class feels full. | Leave it alone. Optimising past 90% creates frustration. |
| A 40-60% cell | Middle band — could be growing, could be dying. The trend matters more than the snapshot. | Compare to last quarter. Trending up means keep going; trending down means change format or kill it. |
| A 0-30% cell that's been there for months | Dead. Members have decided this slot doesn't work. Keeping it open costs instructor pay and dilutes the brand. | Cancel it. Reinvest the instructor's time in a slot adjacent to a hot one. |
3. Hot rows vs hot columns — they need different responses
A row of heat across all seven days at 6pm tells you something different than a column of heat all day Saturday. They look similar on the chart; they're not.
A hot row at 6pm means time-of-day is the dominant variable. Members want to come after work, full stop. The lever is adding capacity at that hour — a parallel class in another room, a second instructor splitting the slot, a slightly later or earlier time to catch the spillover. Adding a 6am class on the same day will not absorb 6pm demand, because the underlying constraint is when in the day, not when in the week.
A hot column on Saturday morning means day-of-week is dominant. Saturday demand exists because members have time on Saturday. The lever is squeezing more out of the same day — running classes back-to-back, opening earlier, adding an afternoon slot. Moving a Saturday class to Sunday will not capture Saturday demand, because the demand is tied to that day.
The diagonal patterns are mostly noise. If you see Monday 6am, Tuesday 7am, Wednesday 8am all hot, the first question is whether the same instructor teaches all three. Patterns built around a single staff member are real but fragile — they'll vanish the moment that instructor leaves.
4. How to test a schedule change without breaking habit
Members are creatures of habit. They book the same class at the same time for months at a stretch. Change too much at once and you'll see a temporary attendance dip in the rest of your schedule, because regulars who came on Wednesday and Saturday now have to rebuild their pattern. Most owners panic at the dip and revert the change before the new pattern stabilises.
The rule that works: move one class per week, not five. Pick the most obvious change — a cold class to kill, a 30-minute time shift on a popular one, a new slot adjacent to a hot one — and make exactly that change. Watch the heatmap for four weeks. If the change worked, the new cell stabilises at a higher utilization than the old one. If it didn't, you only have one variable to roll back.
Four weeks isn't a guess. Weekly-cadence members need three or four full weeks for a new pattern to feel normal. The first week's data is noise; the second is still adjustment; the third is the first honest read; the fourth confirms.
5. What the heatmap doesn't tell you
A few things the grid won't show, that you need to know anyway:
- Member overlap. A 90% Monday 6pm and a 90% Tuesday 6pm might be the same 30 members showing up twice. If you add a Wednesday 6pm, you might find it's filled by the same people, not by new ones.
- Class quality. A consistently 80% utilization could be because the class is good, or because the alternatives are bad. The heatmap doesn't know.
- Instructor effect. If Lina's classes are 90% full and Anna's at the same time are 50%, the chart shows you the average. The instructor breakdown lives elsewhere.
- Member retention by slot. Maybe your 6am class fills every day but the members in it churn out at twice the rate of the 9am crowd. The fill rate is fine; the slot is still losing the business.
The heatmap is a starting point, not a verdict. The right next step on any interesting cell is to drill into the individual class — who's booked, who's repeating, who's churning, which instructor — before deciding what to change.
6. The spot heatmap — a different tool for a different question
If your studio uses assigned seating (bikes in a spin room, reformers on the floor, bags on a wall), there's a second heatmap worth keeping next to the class one: the spot heatmap. Same shape, different question. It shows you which physical positions in the room get booked first and which stay empty.
This one drives room-level decisions, not schedule-level ones. The dead bikes in the back corner. The reformer near the door that nobody picks. The bag closest to the speakers that's always empty. We've covered this at length in the assigned-seating piece if you want the full read.
The point of mentioning it here is that the two heatmaps answer different questions and shouldn't be conflated. The class heatmap is about when members want to come; the spot heatmap is about where in the room they want to be once they get there. Both useful; don't read one as the other.
7. The mistakes most owners make
- Reading the snapshot, not the trend. A 70% cell is a different story if it was 50% three months ago vs 90% three months ago. The direction matters more than the number.
- Adding capacity to demand ceilings. Empty Tuesday 11am classes don't get better by adding a second Tuesday 11am. The slot is the problem.
- Killing cold cells without checking the waitlist. A 30% utilization could mean 5 booked out of 16 — or 5 booked, 12 on the waitlist for the class one hour later. Don't read fill rates in isolation.
- Optimising for 100%. A consistently 100% class is a class that's turning members away. The visible number is good; the invisible waitlist is the problem.
- Changing five things at once. If you change five classes and attendance drops, you don't know which one is responsible. Move one variable at a time.
8. The monthly heatmap ritual
A simple rhythm that works for most studios. Once a month, on a quiet hour (a Sunday morning, a Tuesday lunchtime — whatever's calm), the owner opens the heatmap, looks at the prior 90 days, and asks four questions:
- What's the brightest cell, and is the waitlist behind it telling me to add capacity?
- What's the darkest cell that's been there for three months, and is it time to kill it?
- What's changed since last month — any cells that have shifted up or down?
- One change I want to test next month, and which week I'll measure it.
Twenty minutes a month. The studios that do this consistently end up with schedules that fit their members. The studios that don't end up with schedules that fit historical assumptions about what their members wanted.