AI churn prediction gives each gym member a risk score for cancelling soon, based on signals such as falling visit frequency, failed payments and no upcoming class bookings. A small gym can use it. Several gym platforms now include an at-risk member list, and for under about 500 members a simple rules-based score in a spreadsheet does most of the same job.
The part people skip is what happens after the list. A prediction on its own keeps nobody. The value comes from a coach or owner talking to the flagged members that week, in person or by a genuine message. And with small numbers, be sceptical of the word "AI": a 250-member gym losing ten members a month doesn't have enough cancellations for a model to learn much from its own data, so rules based on how your members behave are often just as good.
How churn prediction works, without the jargon
Every version, from a vendor's machine-learning model to a spreadsheet, does the same three things:
- Learns each member's normal. Someone who trains four times a week has a different baseline from someone who comes every Saturday. The useful signal is a change from their own pattern, not a low number in absolute terms.
- Watches for drift. Visits dropping, class bookings stopping, a payment failing, app activity going quiet.
- Turns the drift into a score or a band. Low, medium or high risk, refreshed daily or weekly.
Glofox, for example, describes its model as reading who attends, how often, what they book and how they pay, then labelling members low, medium or high risk as they drift from their routine. It also names two patterns every gym owner recognises: the first 90 days of a membership carry the highest risk, and a member who goes quiet in February after a January burst isn't necessarily leaving.
A machine-learning model weighs dozens of signals together and adjusts the weights from past cancellations. Vendors with data from thousands of gyms can train on far more cancellations than you'll ever have, which is the main advantage of a built-in tool. What it can't do is know that your 6am crew always vanishes for the summer holidays, or that a member told the coach last week she's moving away.
The signals that matter in a small gym
| Signal | Why it predicts cancelling | Where the data lives | A starting threshold |
|---|---|---|---|
| No visits in the last 14 days | Habit is broken; the membership starts to feel like a waste | Check-in or door-access log | 0 visits in 14 days for someone who usually comes weekly |
| Visits down by half against their own average | The early stage of the drift, before they stop entirely | Check-in log | Last 4 weeks under 50% of their previous 8-week average |
| Failed payment | Often the moment a member decides to leave | Billing system | Any failed payment not recovered within 7 days |
| No classes booked ahead | Class members who stop booking have usually stopped planning to come | Booking system | Nothing booked in the next 7 days for a regular class-goer |
| Early in membership | New members haven't formed the habit yet | Member start date | Joined in the last 90 days |
| Contract or commitment ending | The natural decision point | Membership record | Ends in the next 30 days |
| Late cancels and no-shows rising | They're booking out of guilt, then not coming | Booking system report | 3 or more in 4 weeks |
Check one thing before you trust any of these: is the check-in data complete? If members tailgate through the door, if the fob reader fails, or if class attendance is ticked off only when a coach remembers, your "no visits" signal will flag people who are training three times a week. Spend a week spot-checking the log against who's actually on the gym floor.
Seasonal intakes cause a different kind of flood. A gym that signs up 45 new members in January will, in late February, see most of them carrying the "joined in the last 90 days" point, and the ones whose visits settle from five a week to two will also pick up the "down by half" points. Suddenly 20 January joiners are HIGH, alongside the long-standing regulars who really are drifting, and the coaches can't tell which is which. Give new members their own list for their first 90 days, with a simpler test (fewer than one visit a week, or nothing booked), and keep the main score for everyone past the three-month mark.
How it shows up in practice: the side-door fob reader stops logging for ten days in March, nobody notices because the door still opens, and the next Monday's list flags 38 members HIGH, most of them regulars who train before work. A coach who messages a few of them gets puzzled replies ("I was in this morning?"). If a list suddenly doubles in size, check the data before you contact anyone.
Built into your software, bolted on, or a spreadsheet
- Built in. Glofox has a Members at Risk report in its dashboard; which plans include it varies, so check yours. PushPress Core lists retention signals for spotting at-risk members among its business insights, with paid Core plans from $159 a month. If your platform has something like this, use it before buying anything else.
- Bolt-on retention tools. Keepme, for instance, sits on top of your membership system and adds predictive scoring, lead follow-up and outreach. Tools like this tend to be priced by quote and aimed at larger and multi-site operators; what gym retention software costs goes through the price ranges.
- A spreadsheet score. Free, transparent, and you understand every point. The trade-off is a weekly export and 20 minutes of someone's time.
For a single site with a few hundred members, I'd start with whatever the software includes and a spreadsheet score alongside it for a month. If both flag the same people, trust the built-in one and drop the spreadsheet. If they disagree, look at the members each flags and see which list your coaches recognise.
A spreadsheet risk score you can build this afternoon
Export these columns from your gym software each Monday, one row per active member: member ID, visits in the last 14 days, visits in the last 28 days, average weekly visits over the 8 weeks before that, failed payment in the last 30 days (yes or no), days since joining, classes booked in the next 7 days, and days until the contract ends.
Then add up points:
Points
3 No visits in the last 14 days
2 Last 28 days' visits under half of their usual (usual weekly avg x 4 x 0.5)
3 Failed payment in the last 30 days
1 Joined in the last 90 days
1 Class-goer with nothing booked in the next 7 days
1 Contract ends within 30 days
Score 5 or more = HIGH (contact this week)
Score 3 to 4 = MEDIUM (contact within two weeks, or a coach checks in on the floor)
Score 0 to 2 = LOW
Example formula, with columns:
B = visits last 14 days, C = visits last 28 days, D = usual weekly average,
E = failed payment (Y/N), F = days since joining, G = classes booked next 7 days,
H = class-goer (Y/N), I = days to contract end
=IF(B2=0,3,0) + IF(C2<D2*4*0.5,2,0) + IF(E2="Y",3,0) + IF(F2<90,1,0)
+ IF(AND(H2="Y",G2=0),1,0) + IF(AND(I2>=0,I2<=30),1,0)
Three illustrative rows, scored, show how the points combine:
| Member | Visits 14 days | Visits 28 days / usual weekly | Failed payment | Days since joining | Booked next 7 days | Score |
|---|---|---|---|---|---|---|
| M-1043 | 0 | 1 / 3.5 | No | 410 | 0 (class-goer) | 3 + 2 + 0 + 0 + 1 = 6, HIGH |
| M-1187 | 1 | 3 / 2.0 | Yes | 64 | 1 | 0 + 2 + 3 + 1 + 0 = 6, HIGH |
| M-0921 | 4 | 9 / 2.5 | No | 730 | 2 | 0, LOW |
M-1043 is the classic drifting regular. M-1187 still comes, just less than in the first weeks, but a new member with a failed payment is at a real decision point, and a friendly "your card didn't go through, all OK?" from a person is the right contact. M-0921 is fine. None has a contract ending soon.
If you'd rather have a chat assistant build it, you can upload the export and ask it to create the score. Remove names, emails and phone numbers first and work from member IDs, and use a business plan that doesn't train on your data. Whether it's safe to put customer data into ChatGPT covers the settings to check. A prompt that works:
Attached is an export of our gym members, one row per member, identified by
member ID only. Columns: [list them].
1. Add a risk score column using these rules: [paste the points above].
2. Sort by score, highest first.
3. Tell me how many members fall into HIGH, MEDIUM and LOW.
4. List any rows where the data looks wrong (e.g. visits in 14 days
greater than visits in 28 days, negative days, blanks).
Don't invent any columns or fill blanks with guesses.
Point 4 matters. Exports from gym software often contain frozen members, staff accounts and test profiles, and the assistant will happily score all of them unless you ask it to flag oddities.
An illustrative reply, and what to check before you trust it:
I've added a risk_score column and sorted by score.
HIGH (5+): 21 members MEDIUM (3-4): 29 LOW (0-2): 236
Possible data problems:
- 6 rows have visits_14 greater than visits_28 (e.g. M-0112, M-0348)
- 4 rows have days_since_joining = 0 and no visits (likely test
or staff accounts: M-9001 to M-9004)
- 3 rows have a blank usual_weekly_avg; I scored the "down by half"
rule as 0 for these.
Three things to do with that: remove the four test accounts and re-run, because they inflate LOW; look at the six impossible rows in your gym software, since a visits bug would affect everyone's score; and decide what a blank average means. Members too new to have an average are exactly the ones in their risky first 90 days, so they may need a separate rule rather than a zero.
An illustrative month at a 280-member gym
Take an independent strength-and-conditioning gym with 280 active members, losing about 11 a month. That's a monthly churn rate of roughly 4% (cancellations in the month divided by members at the start, times 100).
- The Monday score flags 18 members HIGH and 26 MEDIUM.
- Of the 18 HIGH, the owner recognises four as already known: two injured, one moving away, one who has told a coach he's leaving. They're taken off the list, which leaves 14 to contact.
- Coaches message or speak to all 14 that week. Six reply with a reason: new job hours, lost motivation, a niggle in a knee. Two book a session with a coach; one switches to a cheaper off-peak option instead of cancelling.
- Over the next month, the gym compares cancellations among the contacted HIGH members with its previous months.
If that outreach keeps even two members a month who would have left, on a $60 monthly membership with members typically staying a year or more, that's well over $1,000 of future revenue for about two hours of coach time a week. Those figures are illustrative, so work out yours from your own average membership length and price.
What to do with the list on Monday morning
The mistake is to feed the list straight into an automated "we miss you!" email. Flagged members are the ones most likely to be irritated by a generic nudge, and some are flagged because of an injury or a bereavement. Gym automation mistakes that increase churn covers what goes wrong when you do.
A better routine:
- The owner or head coach reads the HIGH list first and removes anyone whose situation they already know.
- Split the rest between coaches, ideally by who knows each member.
- Contact is personal and short, with no offer in the first message. See the illustrative before and after below.
- Log the reply in one word in the member record: injury, time, money, motivation, moving, no reply.
- Only then use automation, for check-ins that suit the reason. Automated check-ins for gym members has timings and wording.
BEFORE (automated, sent to everyone on the HIGH list):
Subject: We miss you! ๐ช
Hi {first_name}, it's been a while! Come back this week and get
20% off a PT session. Don't lose your progress!
AFTER (sent by the coach who knows them, from the gym's number):
Hi [first name], haven't seen you since the 3rd. Everything all right?
The Tuesday 6pm crew were asking after you. No pressure either way,
just checking in. [Coach's name]
The reply is where the coach earns the contact. A realistic one: "Honestly, money's tight this month and I'm not getting in enough to justify it." The instinct is to offer a discount. A better answer names the options the gym already has: "Totally understand. You could drop to the off-peak membership, or freeze for a month and come back when things settle. Want me to sort either?" Both keep the member on the books, and neither gives away margin to someone who might have stayed at full price once their shifts changed.
The first treats a drifting member like a lapsed shopper and gives away margin before you know the reason. The second starts a conversation, and the reply tells you whether the answer is a timetable change, a programme tweak or simply a busy month.
The logged reasons become more valuable than the score after a few months. If "time" dominates, your timetable is the problem, not your members.
Here is an illustrative quarter's log at the 280-member gym, from 70 contacts:
| Reason logged | Members | What it pointed to |
|---|---|---|
| Time | 19 | 12 said the 6pm and 7pm classes were full by the time they could book |
| Motivation | 11 | Mostly members training alone with no programme |
| Injury | 7 | Coach check-ins and a modified plan, not marketing |
| Money | 6 | Three moved to off-peak; three left |
| Moving | 4 | Nothing to fix |
| No reply | 23 | One follow-up two weeks later, then leave them be |
Twelve members saying the evening classes are full is a clearer instruction than any risk score: add a 7.15pm session, or cap how far ahead the popular slots can be booked. Eleven motivation replies from people training alone suggest a free 20-minute programme review for anyone flagged who doesn't do classes.
Checking that your score predicts anything
Any score, built in or homemade, should be tested against what actually happened. Two checks are enough for a small gym:
- Look back. Take everyone who cancelled in the last three months. For each, work out what their score would have been four weeks before they cancelled. If most would have scored HIGH or MEDIUM, the score is catching real risk. If most scored LOW, your signals are wrong or your data is incomplete.
- Look at false alarms. Of the members flagged HIGH three months ago who weren't contacted, how many are still members? If nearly all of them are, the threshold is too sensitive and your coaches will stop trusting it.
A filled-in look-back, with illustrative numbers from the 280-member gym. Over the last three months, 31 members cancelled. Four weeks before each cancellation, the score would have put 14 in HIGH, 9 in MEDIUM and 8 in LOW. So 23 of 31, about three in four, would have been flagged in time to contact. The 8 it missed are the useful part: five were steady attenders whose contracts ended and who cancelled on the day, which the score can't see coming, and three were class-goers whose attendance the coaches hadn't been ticking off. The first group needs a conversation a month before any contract end, whatever the score says; the second needs the attendance habit fixed.
The false-alarm side, from the same gym: of 20 members flagged HIGH three months earlier who, for one reason or another, weren't contacted, 15 are still members. That's three in four false alarms, which is too many for coaches to keep taking the list seriously. Raising the HIGH line from 5 points to 6 cut the weekly list from 18 to 11 in the next export, and the look-back still caught 20 of the 31. Fewer names, taken seriously, beat a long list nobody works through.
Vendors often quote high accuracy figures for their models. Treat those as marketing until you've seen the same look-back on your own members.
What churn prediction can't tell you
- Why someone is leaving. A drop in visits is a symptom. The reason comes from asking, which is why the one-word log matters.
- Life events. New jobs, house moves and new babies don't show in the data until it's too late.
- Whether you should keep them. Some members are better off leaving, and a retention call that turns into a guilt trip damages the gym's name more than one cancellation does.
- Anything, if the data is patchy. A score built on unreliable check-ins is confidently wrong. Running a churn analysis on why customers cancel is the companion job: prediction tells you who, analysis tells you why.
Further reads
- How to Win Back Lapsed Customers With AI-Personalised Emails โ For members the score caught too late: win-back emails that don't grovel.
- Should AI Handle Membership Freezes and Cancellations? โ What happens when an at-risk member asks to freeze or leave.
- How to Clean Up Customer Records Before You Add AI โ Tidy member data first so the score isn't built on errors.
- How to Use Booking Data and AI to Fix Your Class Timetable โ Use the same booking data to fix classes people drift away from.
- Can AI Analyse My Sales Spreadsheet? What to Upload and Check โ What to upload to a chat assistant and what to check in its answers.
- Generative AI vs Traditional AI: Which Does Each Task Need? โ How generative and traditional AI differ in what they need, cost and get wrong, four questions that sort any task, and a print shop's six tasks sorted.
- How Pilates Studios Use AI to Turn Intro Offers Into Memberships โ Find where intro clients drop out, then run an attendance-triggered sequence with AI-drafted notes from instructors and a membership recommendation that fits.
- Can AI Answer Gym Enquiries and Book Trial Sessions? โ What an AI assistant can safely answer for a gym, how it books a trial, and why it must collect a phone number before Instagram's 24-hour window closes.
- How to Build a Customer Loyalty Programme With AI Personalisation โ Get the reward maths right first, then use AI to sort customers by behaviour, choose the next nudge for each group and write messages that don't feel creepy.
- What Is Predictive Marketing and Can a Small Business Use It? โ What predictive marketing actually predicts, the data thresholds for built-in tools, and a spreadsheet version that works for a customer list of any size.
- AI Tools and AI Development: The Complete 2026 Guide โ the AI hub, including every tutorial in the AI-for-business series.
Sources: Glofox pages on AI churn prediction and its Members at Risk report; PushPress Core product page and help centre; Keepme product pages.