Occupancy & Scheduling
How to calculate class occupancy rate for a pilates or yoga studio (with formula)
"Are my classes full enough?" feels like a simple question until you try to answer it precisely. Most studio owners have a rough sense — busy evenings, quiet weekday mornings — but a rough sense doesn't tell you which specific slot is quietly losing money every week.
Here's the actual formula, the benchmark to compare against, and why the studio-wide average you're probably already tracking is hiding the number that matters most.
The formula
Occupancy Rate = (Filled Slots ÷ Total Available Slots) × 100
Say your reformer studio has 10 machines and a class runs at 7 filled spots. That single class is at 70% occupancy. Simple enough — the complexity comes from what you do with this number next.
Calculate it per class, not just studio-wide
A single blended average across your whole week can look perfectly reasonable while hiding a real problem. A studio might run 95% occupancy at peak evening times and 30% at an off-peak Tuesday afternoon slot — average those together and you get a moderate-looking 62%, with no indication that one specific class is actively losing money every time it runs.
Break your occupancy rate down three ways:
- By time slot — which specific hours are chronically under capacity?
- By day of week — is there a predictable weekly pattern (e.g. Mondays strong, Wednesdays weak)?
- By instructor — is a particular teacher's class consistently under- or over-filled, independent of time slot?
What's a healthy benchmark
High-performing boutique studios typically run 75–85% average occupancy. Above 90% often signals genuine excess demand — worth considering an additional class or expanded capacity. Below 65% signals real room to improve, either through schedule changes, targeted promotion for that slot, or, if a slot never recovers, cutting it entirely.
Not every empty slot is the same problem
Before changing anything, it's worth separating empty slots into three categories, since each needs a different fix:
- Chronically low-demand slots — consistently empty regardless of effort (e.g. a Tuesday 3pm class that's rarely above 30% no matter what you try).
- Seasonal slots — fluctuate predictably with the calendar (January/February dips, September/spring peaks).
- Underexploited slots with real potential — genuine demand exists, but something is blocking it: a scheduling conflict with a more popular class, a lack of promotion, or an instructor who hasn't built an audience yet.
Only the third category is worth actively fixing with marketing or promotion. The first is usually a cut-or-convert decision; the second just needs to be expected and planned around, not panicked over.
Why this number is worth more than it looks
If your average class holds 12 spots at a $30 average package rate, every empty slot represents roughly $30 of unrealized revenue for that session. A studio running consistently at 60% instead of 80% occupancy across a full week of classes adds up to real monthly revenue — the kind that's easy to miss slot-by-slot but obvious once totaled.
This is exactly the number StudioCheck breaks down automatically by class, time, and instructor — so the specific underperforming slot is visible immediately instead of buried inside a studio-wide average.
Frequently asked questions
What is the formula for class occupancy rate?
Occupancy Rate = (Filled Slots ÷ Total Available Slots) × 100. Calculate it per class, not just as a single studio-wide average, since a blended number hides which specific slots are underperforming.
What is a good occupancy rate for a boutique studio?
High-performing boutique studios typically run between 75% and 85% average occupancy. Above 90% often signals it's time to add capacity; below 65% signals there's real room to improve scheduling or marketing for specific slots.
Why does my overall occupancy rate look fine but revenue still feels tight?
A blended average can mask the real picture — a studio might run 95% occupancy at peak evening times and 30% at an off-peak slot, and the 62% average looks moderate while hiding a badly underperforming class that's actively losing money.