The calculator turns your opening hours, slot length and buffer into the number of slots you can sell per day and per month, then applies your price and expected occupancy to estimate monthly revenue. It also shows what the buffer costs: with the same hours, a 1-minute buffer usually fits one or two more slots a day than 10 or 15 minutes. Below are the formulas, a worked example, and how to read occupancy and revenue per available hour once you are open.
How to use it
- Opening and closing time. A closing time at or before the opening time counts as the next day: 18:00 to 01:00 is 7 hours, 00:00 to 00:00 is 24.
- Open days per week. 1 to 7.
- Slot length. One slot is an exclusive booking of the whole gym.
- Buffer. The gap between one slot’s end and the next one’s start.
- Price per slot. One average price. With peak bands, use a weighted average or run the calculator once per band.
- Expected occupancy. The share of available slots you expect to sell. For a new gym, try 30 %, 50 % and 70 %.
The formulas
slots per day = floor((open minutes + buffer) ÷ (slot length + buffer))
The buffer is added to the open minutes once because the last slot can end at closing time. The result is rounded down, because a slot that only partly fits can’t be sold.
- Available slots per month = slots per day × open days per month, where open days per month = open days per week × 52 ÷ 12 (seven days a week is 30.33).
- Booked slots per month = available slots × occupancy.
- Revenue per month = booked slots × price.
The calculator keeps decimals internally and rounds only what it shows, so a hand check can differ by one unit or one slot.
Worked example
Amounts in GBP. A gym open 06:00–22:00 (960 minutes) seven days a week sells 60-minute slots at 15 and expects 50 % occupancy.
| Result | 10-minute buffer | 1-minute buffer |
|---|---|---|
| Slots per day | 13 | 15 |
| Available slots per month | 394 | 455 |
| Booked slots per month | 197 | 228 |
| Revenue per month | 2,958 | 3,413 |
With 10 minutes: 970 ÷ 70 = 13.86, so 13 slots; 13 × 30.33 × 0.5 × 15 = 2,957.50. With 1 minute: 961 ÷ 61 = 15.75, so 15 slots; 15 × 30.33 × 0.5 × 15 = 3,412.50. Two extra slots a day are worth 455 a month here. For your gym: extra slots × open days × occupancy × price.
Why 1 minute beats 10–15 minutes
For 06:00–22:00 with 60-minute slots:
| Buffer | Slots per day |
|---|---|
| 0 min | 16 |
| 1 min | 15 |
| 5 min | 14 |
| 10 min | 13 |
| 15 min | 13 |
In an unstaffed gym the buffer only separates one customer’s code window from the next. With no buffer, one code stops exactly when the next starts and two groups meet at the door. One minute keeps them apart and usually costs no slot. Two slots in a row get one code, so the gap never affects that customer.
Don’t put cleaning in the buffer: a 20-minute buffer is lost after every slot, all day. Keep 1 minute and block a cleaning window once a day. The calculator doesn’t model blocked time, so subtract those hours from your opening hours. More in slot length, buffer and cleaning time.
Occupancy and revenue per available hour
Once you are open, two numbers tell you whether the gym is working.
Available hours = opening hours − blocked hours. Open 16 hours a day for 30 days is 480 hours; block one hour a day for cleaning and 450 remain.
Occupancy = booked hours ÷ available hours. 200 of 480 is 41.7 %.
Revenue per available hour = revenue ÷ available hours, sold or not. If those 200 hours earned 4,000, that is 8.33 per available hour. It equals occupancy × average price, the same idea hotels use as RevPAR.
In the worked example the gym has 485.33 available hours a month: 6.09 per available hour with the 10-minute buffer, 7.03 with 1 minute. Only the buffer changed.
Why occupancy alone misleads
Two gyms, both with 480 available hours (amounts in GBP):
| Gym | Occupancy | Average price | Revenue per available hour |
|---|---|---|---|
| A | 80 % | 10 | 8.00 |
| B | 50 % | 18 | 9.00 |
Gym A looks busier. Gym B earns 480 more a month with 144 fewer bookings, which also means fewer changeovers, less cleaning and less wear. High occupancy at a low price says: test higher peak prices. Low occupancy at a high price says: fill off-peak hours.
Setting a target
- Add up fixed monthly costs: rent, energy, insurance, software, cleaning. Say 2,400.
- Divide by available hours: 2,400 ÷ 480 = 5.00. Below that revenue per available hour, you lose money.
- Divide by your average price for break-even occupancy: 5.00 ÷ 20 = 25 %.
- Set a target above it that pays for your time, for example 8 per available hour, at 40 % and 20 or 50 % and 16.
Then read the pattern by weekday and hour over at least four weeks. Hours that always sell out are underpriced. Hours that never sell need a lower price, a discount code for a specific group, or a block for your own clients. The method is in how much to charge per hour. Sparekey’s statistics show revenue, occupancy, revenue per available hour, peak hours and returning customers per location.
Limits of the estimate
- Same hours every day, no holidays, no blocked time, flat occupancy. Real months have fewer sellable slots.
- One price. Peak bands, discount codes and multi-slot discounts are not modelled.
- One location. Calculate each separately.
- Revenue, not profit.
Still deciding whether to open? Start with how to open a private gym. What Sparekey costs is on the pricing page, or get in touch with your numbers.
FAQ
How many slots fit in my opening hours?
floor((open minutes + buffer) ÷ (slot length + buffer)). For 06:00–22:00 with 60-minute slots: 16 with no buffer, 15 with 1 minute, 13 with 10 minutes.
What occupancy should I assume?
Your own data if you have it. For a new gym, try 30 %, 50 % and 70 % and check that the lowest still covers your costs.
Should blocked hours count as available?
No. Hours blocked for cleaning, maintenance or your own clients couldn’t be booked.
What is a good occupancy rate for a private gym?
There is no reliable benchmark. Work out break-even occupancy from your costs and price, and set a target in revenue per available hour above it.