01
Find peak from the bookings, not from memory
Export 4 weeks of bookings and build a grid of weekday by hour, with the share of courts booked in each cell. Peak is any cell above 85 percent. Off-peak is anything under 40 percent. The band between is the shoulder, and it deserves its own price.
On most clubs the grid shows peak from 18:00 to 21:00 on weekdays and 09:00 to 12:00 at the weekend. Where a club is different, the data will say so. A club near offices may fill at 12:00 on weekdays and sit empty at 20:00, and pricing by habit would get that exactly wrong.
Build the grid per court type as well. Indoor courts in a rainy month fill at hours the outdoor courts never do, and a single grid for both hides that.
- Peak: 85 percent or more of courts booked in that hour, most weeks
- Shoulder: 40 to 85 percent, often the hour before and after peak
- Off-peak: under 40 percent, usually weekday mornings and early afternoons
02
Set the gap between peak and off-peak
The off-peak price has to be low enough to move a player from 19:00 to 15:00, and that means a visible difference. A gap of 25 to 40 percent moves people. A gap of 10 percent is noticed by nobody and costs revenue on the hours that would have sold anyway.
Move the peak price up before moving the off-peak price down. If peak hours are full every week with a waitlist behind them, they are underpriced. Raise them by a step, watch occupancy for 4 weeks, and only then set off-peak below the old base.
03
Price the shoulder hours on their own
The hour before peak, usually 17:00 on a weekday, is where a split price does the most work. Players who could arrive early will, if the saving is real. Set the shoulder price halfway between peak and off-peak and watch whether 17:00 starts to fill. If it does, 16:00 becomes the new shoulder.
Weekends have their own shoulder. Saturday at 08:00 and Sunday after 17:00 sit next to full mornings, and a lower price in those hours pulls in families and beginners who would not book at the peak rate. Treat each of them as a separate cell in the grid rather than copying the weekday pattern across.
04
Decide what members pay at peak
A membership that covers unlimited peak court time turns the busiest hours into a queue of members paying nothing extra per hour. Most clubs do better with a plan that includes off-peak and shoulder hours and gives a member discount at peak, or a plan with a monthly peak allowance.
Whatever the plan says, the booking page must show the member their own price before they confirm. A member who finds out at the desk that peak is not included does not come back to the desk.
Non-member players see the standard grid. Do not hide it behind a login, because the price is the first thing a new player looks for and a login wall reads as a reason to go elsewhere.
- Off-peak and shoulder included, peak at a member rate
- Or a monthly allowance of peak hours, then the member rate
- The member’s price shown on the booking screen, not only in the plan description
05
Publish the grid and review it monthly
Put the full hour-by-hour price grid on the booking page and in the confirmation email. Players accept a peak price when they can see the cheaper hour next to it. Hidden pricing feels like a surcharge, visible pricing feels like a choice.
Review the grid every month with the occupancy report next to it. An off-peak hour that now fills above 70 percent is ready to move into the shoulder band. A peak hour that dropped below 70 percent after a price rise needs the rise pulled back a step. Change 1 band at a time so you can tell what moved.
Tell players when the grid changes. A short line on the booking page 2 weeks before a peak rise, with the new grid beside it, prevents the surprise at checkout that generates most complaints about price.