How to schedule reformer pilates classes without overbooking
Short answer
Overbooking a reformer class — selling more spots than the room has reformers — is almost always a configuration mistake rather than a software gap. Capacity should be set at the floor-plan level (one spot per reformer, full stop), with no override option for staff. Pick-a-spot booking eliminates the double-booking edge case structurally. The cancellation window plus a two-mode waitlist (auto-promote inside the window, broadcast-claim outside) handles the late-cancel case without overselling. The mechanical fix is the right capacity setting; the operational fix is treating the floor plan as the source of truth.
Overbooking a reformer class is the kind of operational mistake that doesn't show up on a dashboard until a paying client arrives to find no reformer waiting for them. The damage is concentrated in that single moment: one client who paid for a class, drove in, and has nowhere to do it. The recovery is expensive (full refund plus apology credit) and the brand cost compounds. This post is about how to set up your scheduling so the configuration prevents the failure mode, instead of asking the operator to remember to check.
The short version is in the Short answer callout at the top of this page. The long version, with the per-pattern detail and the worked examples, is below.
Why overbooking happens
In most studio software, class capacity is a single integer on the service-type configuration. You create a service called "Reformer Foundations," set capacity to 12, and every scheduled instance of that service inherits the 12-spot capacity.
The failure modes:
- A reformer goes out of order, the studio doesn't update the service capacity, and the next class books to 12 — except there are only 11 working reformers. One client arrives to nowhere.
- A new service type is created by cloning an existing one, and the capacity field is copied without verifying it against the room — sometimes the new service is for a different room with a different reformer count.
- A second class of a different type runs in the same room and the operator confuses which capacity applies to which slot.
- The reformer count on paper doesn't match the room — someone added or removed a reformer and the service configuration was never updated.
None of these are software bugs. They're configuration drift. The mechanical fix is to derive capacity from the floor plan rather than from a separate number, so the room's actual state is the source of truth.
The floor-plan-as-source-of-truth pattern
The cleanest scheduling architecture for a reformer studio anchors capacity to the floor plan instead of a separate capacity field.
In the operator dashboard, you build a floor plan for each room — drag reformers, towers, and any other apparatus into a 2D layout, name the spots, save the plan. When a service is configured to use the floor plan (any reformer class, almost always), capacity is automatically the count of working spots in the active layout.
If a reformer goes out of order, you mark the spot as out of order on the floor plan. The capacity for every class using that floor plan drops by one. Bookings for upcoming classes that exceeded the new capacity are rerouted automatically (the most recently-booked client gets moved to the next available class, or refunded if they prefer, with no cancellation penalty).
If you add a reformer to the room physically, you add it to the floor plan once. Every class using that floor plan picks up the new capacity automatically.
This is the architecture Junocal uses for pick-a-spot scheduling. It's also what Mariana Tek and Walla ship for the same pattern. The shared property: capacity is always equal to the count of working spots in the floor plan, and the operator can't accidentally configure a higher number on the service.
Cancellation windows + waitlist behaviour
The other half of overbooking prevention is what happens when a client cancels late. If you sold 12 spots, then one client cancels three hours before class, you have an open spot. The question is whether to fill it from the waitlist or leave it empty.
The standard pattern, configurable per studio and per service:
Outside the cancellation window (more than 12 to 24 hours before class, depending on region): the client cancels without penalty. The spot opens. The waitlist auto-promotes — the next person on the waitlist gets the spot, with an email confirmation. Standard pattern, low-friction.
Inside the cancellation window (less than 12 to 24 hours before class): the client either pays the cancellation fee (defined by the four-mode cancellation policy on the service) or accepts the credit deduction. The spot opens. The waitlist broadcasts — every waitlist member gets an SMS (with SMS consent on file) or push notification with a one-tap link to claim the spot. The first to claim wins; the link expires for everyone else.
Inside the no-credit window (typically 2 hours before class or less): the client absorbs the full cost (lose-credit policy or charged fee, depending on the configuration). The spot opens but typically doesn't get filled — the broadcast goes out anyway, but waitlist conversion at this window is low.
The capacity protection during this flow is structural. The system can't add more bookings than the floor plan supports. A waitlist promotion claims an opening spot; it doesn't create a new spot. If somehow two clients try to claim the same spot in the same second, the first claim wins and the second sees an apology-and-refund flow.
Common configuration mistakes — and how to catch them
Six configuration mistakes that lead to overbooking, and how to catch each one.
1. Service-type capacity field set higher than the floor plan
How it happens: You create a service called "Reformer Express" and set capacity to 14 in the service configuration, but the room has 12 reformers.
How to catch it: When the service is set to use a floor plan, the capacity field should be disabled (or hidden) in the service configuration UI. Junocal, Mariana Tek, and Walla all do this — if you can't see or edit a capacity number on a floor-plan-using service, the architecture is right. If the number is editable, double-check that it matches the floor plan exactly.
2. Floor plan layout doesn't match the physical room
How it happens: You added a reformer to the room six months ago but never updated the floor plan. Or you moved a reformer to storage during a renovation and the floor plan still shows it.
How to catch it: Quarterly room audits. Walk the room with the floor plan on your phone (the operator dashboard shows it). Confirm every spot in the floor plan exists physically, and every physical reformer exists in the floor plan.
3. Out-of-order spots not flagged
How it happens: A reformer breaks. The instructor mentions it to a colleague but no one marks it on the floor plan. The next class books to full capacity.
How to catch it: Make "mark out-of-order on the floor plan" a one-tap action on the staff PWA, accessible from the day-of class view. Train every instructor on it. The friction has to be low or the action gets skipped.
4. Layout-per-class-type confusion
How it happens: Your studio runs reformer at 6 AM and 8 AM, then converts to mat for the 10 AM flow. The floor plan for mat has 20 spots (mat positions), the floor plan for reformer has 12 (reformers). If the wrong layout is assigned to a class, the capacity is wrong.
How to catch it: Configure layouts per service type, not per scheduled instance. A "Reformer" service always uses the reformer floor plan; a "Mat Flow" service always uses the mat floor plan. As long as the service-to-layout mapping is correct in the service configuration, the per-instance capacity is automatic.
5. Capacity overrides on specific class instances
How it happens: Some platforms allow per-instance capacity overrides — "this particular Saturday morning class, sell 14 spots even though the room has 12." This feature exists for legitimate reasons (e.g., a special workshop using extra equipment), but it's also the most common source of accidental overbooking.
How to catch it: Restrict per-instance capacity overrides to a specific operator role or require a confirmation step. If an instructor or front-desk staff can override capacity from the day-of view, the failure mode is just too easy to trigger.
6. Booking made directly in Stripe / through an external integration that bypasses the studio software
How it happens: A regular client emails you to book a slot for next Tuesday and you charge their card directly through Stripe to confirm the booking, planning to update the studio software later. You forget. The studio software still shows the slot as open. Someone else books it. Now you have 13 paid clients for a 12-reformer class.
How to catch it: Don't make bookings outside the studio software. Use the operator dashboard's manual-booking flow even for direct client requests. The booking goes into the same capacity tracking as a self-service booking.
The capacity-utilisation lever: waitlist conversion, not overbooking
Some studios consider overbooking as a way to boost capacity utilisation — sell 14 spots for 12 reformers, assume some will cancel. This is a bad lever for reformer classes.
The reformer business model depends on every paid client getting their reformer. The customer-experience cost of even one client arriving to no reformer is high — they tell their network, the review goes up, the trust in the studio's operational quality drops. For mat or yoga classes the failure mode is mild (over-crowding); for reformer it's structural.
The better lever for boosting utilisation: convert the waitlist on adjacent classes when a near-empty class has open spots.
Worked example: Your 6 AM class is at 12 out of 12. Your 8 AM class is at 10 out of 12. The 8 AM class has two open spots an hour before the window closes. The 7 AM class (which has a waitlist of three because it was full earlier) doesn't, but the waitlist members are already up and warm and looking for a class.
The waitlist broadcast goes to the 7 AM waitlist with a one-tap link to take an open spot in the 8 AM class. Conversion rate on this pattern is typically seventy to eighty percent — two of the three waitlist members claim the open spots. The 8 AM class now runs at full capacity. No overselling, no failure mode.
This is the architecture that's worth investing in. See how to fill empty class spots in your pilates studio for the operational detail on the waitlist conversion pattern.
What good capacity discipline produces
Studios with floor-plan-anchored capacity and disciplined waitlist conversion typically run at:
- 75–85% average capacity utilisation across the schedule (peak hours at 95%+, off-peak hours at 50–60%)
- 3–6% no-show rate on adult clients (down from 8–15% on a no-deposit, no-waitlist-discipline schedule)
- 70–80% waitlist conversion on broadcast-claim openings
- Zero overbooking incidents by configuration, not by operator vigilance
For a studio with 12 reformers and 50 classes a week, those numbers translate to roughly 460 to 510 paid attendance per week on a theoretical maximum of 600. At an average revenue of £15 per booking, that's an annual run-rate of around £370,000 to £400,000.
The same studio with looser capacity discipline (no floor-plan anchoring, occasional overbooking incidents, weaker waitlist conversion) typically runs at 60–70% utilisation, 12–18% no-show rate, and 30–40% waitlist conversion — which produces roughly £270,000 to £310,000 annual run-rate. The capacity-discipline difference is on the order of £80,000 to £100,000 a year.
How to set it up
If you're starting from a studio that doesn't currently have floor-plan-anchored capacity:
-
Build the floor plan for each room you run classes in. Drag reformers (and any other apparatus) into a layout that matches the physical room. Name spots by number, by location, or however your studio refers to them.
-
Reconfigure each service to use the floor plan instead of a separate capacity number. If the service-configuration UI shows a capacity field next to the floor-plan toggle, set the capacity to 0 or hide-from-clients — it's no longer the source of truth.
-
Train staff on the out-of-order action. Walk through how to mark a reformer out of order from the staff PWA. Make sure every instructor knows the workflow before the next time a reformer breaks.
-
Audit the room quarterly. Walk the room with the floor plan on your phone. Confirm every spot exists physically. Confirm every reformer exists in the floor plan.
-
Disable capacity overrides for non-owner roles, or require a confirmation dialog. If you genuinely need overrides for occasional workshops, gate them on a senior-operator permission.
-
Configure the waitlist behaviour per service: auto-promote outside the cancellation window, broadcast-claim inside it. Set the window per region (12h UK, 24h US) and per service type if needed.
Total setup time: typically two to four hours, depending on how many rooms and services you have. The payoff is structural — overbooking becomes a configuration impossibility rather than an operator-vigilance task.
Related reading: how to handle pilates studio no-shows, how to fill empty class spots in your pilates studio, should pilates studios charge deposits for classes. For the feature deep-dive on Junocal's pick-a-spot pattern, see the pick-a-spot page. If you want to walk through your specific scheduling setup, hello@junocal.com gets a real reply.
FAQ
- How is overbooking even possible if I'm using studio software?
- Most studio software calculates class capacity from a single number on the service configuration (e.g., 'capacity = 12'). If that number is set higher than the actual reformer count, bookings can exceed reformer availability without the system noticing. The mistake usually happens in two places: when a reformer goes out of order and the capacity isn't reduced, or when a new service type is created from a template and the capacity gets copied without verifying the room. Pick-a-spot scheduling eliminates this entirely because capacity is derived from the floor plan rather than entered as a separate number — if you have nine working reformers, the system can't sell ten spots.
- Should every reformer class use pick-a-spot, or is capacity-aware sometimes enough?
- Pick-a-spot is operationally safer for reformer classes regardless of whether your clients care about choosing their spot. The capacity protection is the structural reason. If your studio is a contemporary studio where clients don't normally pre-pick spots, you can still run pick-a-spot in 'assigned mode' — the system picks the spot for the client at booking, but the floor-plan-derived capacity still applies. For mat classes, capacity-aware booking without pick-a-spot is fine because the failure mode is just over-crowding rather than equipment availability.
- What's the right cancellation window for reformer classes?
- Twelve hours in the UK, twenty-four hours in the US, as regional defaults. The shorter UK window matches the operational reality of UK studios running tighter schedules and accepting later cancellations than US studios. The window is when the waitlist behaviour switches from auto-promote (a cancellation inside the window goes to the next waitlist member with a heads-up email) to broadcast-claim (a cancellation outside the window broadcasts to the whole waitlist and the first to claim wins). The window is configurable per studio and per service type; the defaults work for most studios.
- How do I handle a reformer that breaks during a class?
- On the staff PWA, mark the spot as out of order from the day-of view. The floor plan updates in real time. If a client is already booked on that spot for the current class or any upcoming class, the booking is moved to the next open spot in the same class, with an automatic email and (if SMS consent is on file) an SMS notification. The cancellation policy is suppressed for the rerouted booking — they pay nothing for the disruption. The out-of-order flag stays until you remove it; bookings for future classes use the reduced capacity automatically. For mid-class breakage, the typical operational response is rerouting on the spot (literally — move the client to an open reformer) and marking the broken one for repair afterwards.
- Can I oversell intentionally for popular classes?
- You can, but most reformer studios shouldn't. Overselling — selling more spots than reformer availability with the expectation that some clients will cancel — is operationally common at the gym tier (where the failure mode is mild over-crowding) and operationally bad at the reformer tier (where the failure mode is a client who paid for a class arriving to find no reformer). The customer-experience cost is high. If you're trying to boost capacity utilisation, the better lever is the waitlist conversion pattern (filling open spots from the waitlist on adjacent classes inside the cancellation window) rather than overselling. The waitlist-conversion approach captures the same demand without the no-reformer-for-the-paid-client edge case.
- What about teacher-training students who shadow regular classes?
- Configure them as a separate class type with a separate capacity. A teacher-training student shadowing a 6 AM reformer class isn't taking up a reformer themselves (they're observing or assisting), so the regular-class capacity stays at the reformer count. The TT students sit on a separate tracker that doesn't deduct from the main class capacity. Most studios run this as a 'shadow' tag on the booking rather than a separate class entirely, which keeps the schedule clean. Junocal handles this with the per-service intake and per-service capacity rules.
keep reading
- Junocal vs Mariana Tek for reformer pilatesAn honest comparison of Junocal and Xplor Mariana Tek for reformer-pilates studios: pick-a-spot at entry-tier pricing, multi-location depth, contract terms, and which fits which studio shape.
- Hybrid in-person + online pilates classes in 2026: the practical setupThe post-pandemic shape of pilates and yoga has settled into hybrid — in-studio for most clients, live online for the travellers and the home-bound. The practical playbook for running both off one schedule.
- How to onboard postnatal clients with the right intake questionsA trauma-aware postnatal intake template: pregnancy and birth history, pelvic floor symptoms, postnatal depression screening, return-to-exercise readiness.
Junocal is being built now
Studio software with no annual contract, your own Stripe account, and no marketplace commission. Built for pilates and yoga studios with one to five instructors.