01
Occupancy by hour band, not by month
A monthly occupancy figure hides everything useful. A club at 60 percent overall can be full from 18:00 to 22:00 on weekdays and empty from 10:00 to 16:00. The report should show occupancy by day of week and hour band, per court, so the empty blocks are visible as blocks.
Read it for two things: hours that are always full, where the price could rise or a waitlist should run, and hours that are always empty, where a class, open play, or an off-peak rate might fill them.
- Occupancy per court, per weekday, per hour band
- Hours above 90 percent: candidates for peak pricing or a waitlist
- Hours below 30 percent: candidates for classes, open play, or off-peak rates
- Change against the same month last year
02
Revenue by source
Split revenue into court bookings, classes, memberships, lessons, and anything else the club sells. Then split court bookings by member versus non-member, and by booked online versus entered at the desk. The desk share is the number to watch. A rising desk share means players are calling instead of booking, and the reason is usually a link that does not work or a rule that confuses them.
03
No-shows and late cancellations
Report no-shows and late cancellations as counts and as a share of bookings, split by booking type. Unpaid member bookings usually carry the highest rate. Track whether the waitlist refilled late cancellations, because a refilled slot is not lost revenue. The trend month to month matters more than the level: a jump after a rule change or a new coach is a cause you can act on.
- No-shows as a share of confirmed bookings, by type
- Late cancellations, and how many the waitlist refilled
- Refunds issued, automatic versus manual
- Players with more than 2 late cancels in the month
04
Membership joins, lapses, and usage
For memberships, 3 numbers: new joins, lapses, and usage. Usage is bookings per member per month, and it predicts lapses. A member who booked 4 times a month and booked once last month is about to leave. A list of those members, read monthly, is the cheapest retention tool the club has. Send a message from the coach, not from the system.
05
Payouts against bookings
Once a month, match the payout reports from Stripe against the bookings marked paid. The totals should agree once refunds and card fees are accounted for. Anything unmatched is either a cash booking that was marked as card, a refund nobody recorded, or a booking marked paid that was never charged. 10 minutes on this each month stops small leaks from becoming a year-end surprise.
06
A reading routine that takes 30 minutes
Set a fixed morning, the first Monday of the month, and read the 6 in the same order every time. Occupancy first, because it frames everything else. Write 3 lines: what changed, why, and one action for the month. A report that produces one action is worth more than a dashboard that produces none.
- Occupancy by hour band
- Revenue by source and by channel
- No-shows by booking type
- Late cancellations and waitlist refills
- Membership joins, lapses, and usage
- Payout reconciliation, then one written action