What This Screen Does
This screen shows you a list of members who might be at risk of leaving your gym. Think of it like an early warning system — it finds members who have not been attending classes very often during a certain time period. By spotting these members early, you can reach out to them and help keep them engaged before they cancel their membership.
How to Get There
Open the dashboard.
In the left-hand menu, click Retention.
You are now on the Retention Issues list screen.
Step-by-Step Guide
1. Understanding the Table
When the page loads, you will see a table listing members who have low attendance. The table has the following columns:
Column | What It Shows |
Name | The member’s first and last name, along with their email address and profile photo. |
Number of attendances | How many times this member attended a class during the selected time period. |
Membership | The type of membership this member has (e.g. “Unlimited”, “Basic”). |
Phone number | The member’s phone number so you can reach out to them. |
Actions | A three-dot menu with additional options. |
2. Filter by Search
Use the Search text field at the top of the table to find a specific member by name or email.
Start typing and the list will update automatically.
3. Set Minimum and Maximum Participations
These filters let you narrow down results based on how many times a member attended during the period.
Filter | Required | What to Enter |
Minimum participations | No | The lowest number of attendances to include. Defaults to 0. |
Maximum participations | No | The highest number of attendances to include. Defaults to 3. |
For example, setting minimum to 0 and maximum to 1 will show only members who attended zero or one class.
4. Set the Time Period
These date pickers define the window of time the system looks at when counting attendances.
Filter | Required | What to Enter |
Period from | No | The start date of the period to check. Defaults to 3 months ago from today. |
Period to | No | The end date of the period to check. Leave empty to include up to the current date. |
Click the date field and pick a date from the calendar, or type it in directly.
5. View the Status Tab
At the top of the table there is an All tab that shows the total number of members with retention issues.
The count next to the tab label tells you how many members matched your current filters.
6. Clear Filters
If you have changed any filters from their defaults, a results found bar appears below the toolbar.
Click the Clear button (with the trash icon) to reset all filters back to their defaults.
7. Sort the Table
Click on any column header (Name, Number of attendances, Membership, Phone number) to sort the table by that column.
Click again to switch between ascending and descending order.
8. View a Member’s Profile
Find the member you want to check on.
Either click the three-dot menu (⋮) on the right side of their row and select View, or click on the row itself.
You will be redirected to that member’s profile page where you can see more details and take action.
9. Export the List
Click the three-dot menu (⋮) icon in the top-right area of the toolbar.
Select Export.
The system will download a CSV file called
result.csvcontaining all members that match your current filters.The export includes all matching members (not just the current page).
10. Adjust Table Density and Pagination
At the bottom of the table, use the Rows per page dropdown to choose how many members to show per page.
Use the page navigation arrows to move between pages.
Toggle the Dense switch to make rows more compact, which lets you see more members at once.
What Happens Behind the Scenes
Page loads (or filters change)
|
v
API call: GET /api/retention-issues
with parameters: pageSize, pageNumber, sortBy, direction,
search, minNumberOfAttendances, maxNumberOfAttendances,
periodFrom, periodTo
|
v
Server returns list of members with low attendance
and total count in the response header (x-total-count)
|
v
Table displays the members
Total count appears on the "All" tab--- When you click "Export" ---API call: GET /api/retention-issues
with Accept: text/csv header
and all current filter parameters
(fetches ALL matching members, not just one page)
|
v
Server returns CSV data
|
v
Browser downloads "result.csv" file
Troubleshooting
“The table is empty even though I know I have members”
Check your Period from and Period to dates. The default period is the last 3 months. If you set a very narrow window, there may not be any data.
Check the Minimum participations and Maximum participations values. If the range is too narrow (e.g. both set to 0), very few members may match.
Make sure you have the correct gym/location selected in the dashboard header. The retention list is filtered by the currently selected gym.
“I cannot find a specific member in the list”
Try typing their name or email in the Search field.
The member might have more attendances than your maximum filter allows. Try increasing the Maximum participations value.
The member may belong to a different gym. Switch to the correct gym in the dashboard header.
“The export file is empty or does not download”
Make sure there are members in the list before exporting. If the table shows no results, the export will also be empty.
Check your browser’s download settings — the file may have been blocked by a pop-up blocker.
If the download seems stuck, check your internet connection and try again.
“The member count on the tab does not match what I see in the table”
The count on the All tab shows the total number of matching members across all pages, not just the ones visible on the current page.
Use the pagination controls at the bottom to navigate through all the results.
“I clicked on a member but nothing happened”
Clicking the row or selecting View from the three-dot menu should take you to the member’s profile page.
If the page does not load, try refreshing and clicking again.
If the problem persists, the member’s profile may have been deleted. Contact your administrator.
“The page is loading very slowly”
If you have a large number of members, the retention query can take a moment. Try narrowing your filters — use a shorter time period or a smaller attendance range.
Reduce the Rows per page setting at the bottom of the table to load fewer results at once.
“I changed the gym but the list did not update”
The list should refresh automatically when you switch gyms in the dashboard header. If it does not, try refreshing the page manually.
Make sure the gym you selected actually has members with active memberships.
