Introduction
In Perfect Gym, the Studio Report offers a detailed, multi-faceted analysis of your studio's activity, including class performance, employee efficiency, club utilization, and member attendance records over a specified time period. Its primary purpose is to provide business intelligence to help management assess the profitability, popularity, and operational efficiency of group exercise classes.
In this article, you will learn how to generate the Studio report, configure the necessary filters, and interpret the data across various tabs to analyze class, instructor, and club performance.
This article will be helpful for Studio Managers, Club Managers, and Operations Directors
Before you start
To ensure you can access and generate the Studio Report, your system permissions must be correctly configured.
Follow these steps to grant the necessary employee roles access to the report:
Navigate to PGM -> Clubs -> System Permissions.
Use the Search Bar or look through the Categories to find the system permission related to Reports.
Select the employee Role (e.g., Club Manager, Studio Instructor) whose permissions you wish to modify.
Within the permissions list, locate the permission for the Studio Report.
Check the box to grant the selected role access to the report.
Save your changes to apply the new permissions.
Fast lane
This section offers a brief overview of the steps. The following sections contain more detailed information.
Navigate to PGM -> Reports -> All.
Search for Studio Report or check the Clubs category.
Click the report name.
Set filters (Club, Time Table, Trainer, Dates).
Click Generate.
Instruction
This report delivers key insights into class capacity, revenue per participant, employee rating, and the ratio of club visits that include studio participation. By breaking down data across individual classes, instructors, clubs, and members, it facilitates data-driven decisions related to scheduling, staffing, pricing, and member engagement strategies.
How to generate the report
Follow these steps to find and generate the Studio Report:
Go to PGM -> Reports -> All.
Use the Search Bar or look through the Categories to locate the Studio report. The report is located in the category Clubs.
Click on the Studio report name to open the generation window.
This will display the filters that can be used to generate the report:
Club: Select a specific club location to analyze. Leave blank to include all clubs you have permission for.
Time Table Category: Select one or more categories of classes (e.g., 'Cardio', 'Strength'). Leave blank to include all categories.
Time Table: Select one or more specific class types (timetables) you want to include in the report. Leave blank to include all classes.
Example: Select 'Yoga', 'Spin Class'.
Trainer: Select a specific employee (instructor) to focus the report on their classes.
Date From: Select the starting date and time for the period you want the report to cover. Only class events that started on or after this date will be included.
Date To: Select the ending date and time for the period you want the report to cover. Only class events that started on or before this date will be included.
Click Generate to run the report.
Report Extract
The Studio report is divided into several sections (worksheets/tabs), each providing a different view of the data.
1. Studio
This tab provides a line-by-line detail of every class event that occurred in the selected date range.
ClubName: The name of the club where the class event took place.
TimeTableName: The name of the class (e.g., 'Spinning', 'Zumba').
TimeTableCategory: The category the class belongs to (e.g., 'High Intensity', 'Yoga').
UserGroupLevel: The level associated with the user group for this class (e.g., 'Beginner', 'Advanced').
EmployeeName: The first and last name of the instructor who taught the class.
StartDate: The date the class event started, formatted as YYYY-MM-DD.
DayOfWeek: The three-letter abbreviation of the day the class took place (e.g., 'MON', 'TUE').
StartTime: The scheduled start time of the class, formatted as HH:MM:SS.
RealStartTime: The actual time the class started, formatted as HH:MM:SS.
Duration: The length of the class in minutes.
UsersLimit: The maximum number of participants allowed in the class.
UsersCount: The total number of users who have actively booked the class (excluding standbys).
UsersStandBy: The number of users who are on the standby list for the class.
UsersPresent: The number of users who actually attended (checked in to) the class.
Capacity: The percentage of the class capacity that was filled by users who attended. Calculated as: $UsersPresent / UsersLimit$.
MalesToAll: The ratio of male attendees to the total number of users who actively booked the class. Calculated as: $Males / UsersCount$.
Price: The price of the class event.
CostPerHead: The average cost of the class divided by the number of participants who attended. Calculated as: $Price / UsersPresent$.
Rating: The average rating given to this specific class event by participants.
VotesCount: The total number of votes (ratings) received for this specific class event.
Capacity_BackColor: A color-coded indicator based on the Capacity percentage:
Red: If Capacity is less than 30% (less than $0.3$).
Orange: If Capacity is 30% or more, but less than 80% ($0.3$ to less than $0.8$).
Green: If Capacity is 80% or more ($0.8$ or greater).
NULL: Otherwise (e.g., if Capacity is NULL).
2. StudioByClasses
This tab aggregates performance metrics by class (timetable) name, providing an overview of overall class popularity and performance.
ClubName: The name of the club where the classes were held.
TimeTableName: The name of the class (e.g., 'Spinning', 'Zumba').
TimeTableCategory: The category the class belongs to (e.g., 'High Intensity', 'Yoga').
UsersLimit: The sum of the user limits for all class events of this type.
TTECount (ClassesCount): The total number of class events (TimeTableEvents) of this type that took place in the reporting period.
UsersCount: The sum of all active bookings (excluding standbys) for all class events of this type.
UsersPresent: The total number of users who attended (checked in to) all class events of this type.
Capacity: The average capacity utilization across all class events of this type.
Price: The average price of all class events of this type.
CostPerHead: The average cost per attending participant across all class events of this type.
Capacity_BackColor: A color-coded indicator based on the Capacity percentage:
Red: If Capacity is less than 30% (less than $0.3$).
Orange: If Capacity is 30% or more, but less than 80% ($0.3$ to less than $0.8$).
Green: If Capacity is 80% or more ($0.8$ or greater).
NULL: Otherwise (e.g., if Capacity is NULL).
3. StudioByEmployee
This tab aggregates performance metrics by instructor, allowing for the evaluation of individual employee success and contribution.
ClubName: The name of the club where the employee conducted classes.
EmployeeName: The full name of the instructor.
Department: A comma-separated list of departments the employee belongs to (e.g., 'Fitness, Group Ex').
UsersLimit: The average user limit across all classes taught by this employee.
TTECount (ClassesCount): The total number of class events taught by this employee in the reporting period.
UsersCount: The total number of active bookings (excluding standbys) for all classes taught by this employee.
UsersPresent: The total number of users who attended (checked in to) all classes taught by this employee.
Capacity: The average capacity utilization across all classes taught by this employee.
Price: The average price of all classes taught by this employee.
CostPerHead: The average cost per attending participant across all classes taught by this employee.
Rating: The average rating received by this employee across all their classes in the period.
VotesCount: The total number of votes (ratings) received for this employee in the period.
TotalEmployeeCost: An estimate of the total cost associated with the employee's classes. Calculated as: $Average Price * TTECount$.
Capacity_BackColor: A color-coded indicator based on the Capacity percentage:
Red: If Capacity is less than 30% (less than $0.3$).
Orange: If Capacity is 30% or more, but less than 80% ($0.3$ to less than $0.8$).
Green: If Capacity is 80% or more ($0.8$ or greater).
NULL: Otherwise (e.g., if Capacity is NULL).
4. StudioByClub
This tab aggregates the total class performance metrics for each club, providing a high-level view of club-specific studio activity.
ClubName: The name of the club.
UsersLimit: The sum of the user limits for all class events at this club.
UsersCount: The total number of active bookings (excluding standbys) for all classes at this club.
UsersPresent: The total number of users who attended (checked in to) all classes at this club.
Capacity: The average capacity utilization across all class events at this club.
Price: The average price of all class events at this club.
CostPerHead: The average cost per attending participant across all class events at this club.
Rating: The average rating received for all classes at this club in the period.
VotesCount: The total number of votes (ratings) received for all classes at this club in the period.
Capacity_BackColor: A color-coded indicator based on the Capacity percentage:
Red: If Capacity is less than 30% (less than $0.3$).
Orange: If Capacity is 30% or more, but less than 80% ($0.3$ to less than $0.8$).
Green: If Capacity is 80% or more ($0.8$ or greater).
NULL: Otherwise (e.g., if Capacity is NULL).
5. GXU (Group Exercise Utilization)
This tab focuses on comparing club attendance with studio attendance on a daily basis, showing how many members who visited the club also participated in a studio class.
ClubName: The name of the club.
Date: The specific date for the utilization figures.
VisitsInClub: The total number of unique check-ins (visits) recorded at the club on that date.
VisitsInStudio: The number of those club visits that also included an attendance (presence) in a studio class on the same date.
VisitsRatio: The ratio of club visits that had a studio component. Calculated as: $VisitsInStudio / VisitsInClub$.
UsersPresent: The total number of unique users who attended (checked in to) all studio classes on that date.
UsersPresentRatio: The ratio of users present in studio classes compared to the total club visits for the day. Calculated as: $UsersPresent / VisitsInClub$.
6. StudioByMember
This tab provides a detailed attendance log for individual members, along with member-specific information. It only includes users who were present in a studio class during the report period.
ClubName: The name of the club where the class took place.
Date: The date and time the class event started.
TimeTableName: The name of the class attended.
FirstName: The first name of the member.
LastName: The last name of the member.
BirthDate: The member's date of birth.
Gender: The member's gender:
M: If the member's sex is 'Male'.
F: If the member's sex is anything other than 'Male'.
UserNumber: The unique ID or number assigned to the member.
IsFirstClass: Indicates if this was the first ever studio class this member has attended:
1: If no prior attendance is recorded before this class's start date.
0: If the member has attended a studio class before this one.
ContractStartDate: The start date of the member's contract that was active when the class took place. This is the oldest active contract start date before the class.
HasPresenceInClub: Indicates if the member also had a general club check-in record around the time of the class event (1 day before the class end time).
1: If a club check-in was recorded.
0: If no club check-in was recorded.
IsSimple: Indicates the member's user type:
0: If the user type is 'Member'.
1: If the user type is anything else.
Tags: A comma-separated list of tags associated with the member (e.g., 'VIP', 'Loyal').
Hints
Filter Exclusions: Notice that if you leave the Time Table or Time Table Category filters empty, the report will include all corresponding data. If you only want to filter by date and club, you can leave the other filters as their default "all" settings.
Data Consistency: The report relies on attendees being marked as Present for the capacity, cost-per-head, and member-specific sections to be accurate. Ensure your check-in process is consistently applied by staff.