Free · takes five minutes

Most members don't cancel. They stop coming.

By the time the cancel email lands, they left a month ago. This prompt reads your attendance export and tells you who's drifting right now, ranked by who you can still bring back.

1

Export attendance from your gym software.

PushPress, Wodify, StreamFit — any of them. The last four weeks is enough. A spreadsheet or CSV with names and check-in dates is all it needs.

2

Delete the email and phone columns first.

Names and dates are all the prompt uses. Don't paste your members' contact details into a chatbot — most of them keep what you paste.

3

Paste the prompt, then paste the export under it.

ChatGPT or Claude, either works. Copy the prompt below, drop your rows in where it says, send.

The prompt

You are helping a CrossFit Affiliate owner spot members who are drifting before they cancel. I'm pasting an attendance export below. It has member names and check-in dates (ignore any other columns).

For each member, work out:
1. Baseline — their average check-ins per week over the last 28 days.
2. Current — their check-ins per week over the last 14 days.
3. Days since their last check-in.

Then sort every member into exactly one bucket:
- Healthy — current pace matches or beats their baseline.
- Cooling — current pace is 50–79% of their baseline.
- At Risk — current pace is under 50% of baseline, OR 5+ days since their last visit.
- Ghost — no check-in in 10 or more days.

Give me four lists, Ghost first, then At Risk, then Cooling, then Healthy. Inside At Risk and Ghost, put the most recent absence at the top — a 12-day ghost is far more saveable than a 28-day one. For each At Risk and Ghost member show: name, days since last visit, baseline vs current per week. Then tell me the three people I should text today, and why them.

Do not invent data. If a member has fewer than 2 weeks of history, put them in a fifth list called "Too new to judge."

Here's the export:

What comes back

Healthy

Showing up at their own normal pace. Leave them alone.

Cooling

Down to half or three-quarters of their usual. Worth a hello this week.

At Risk

Under half their normal, or five days gone. Text today.

Ghost

Ten days or more with no visit. Still saveable if it's recent.

Every member is measured against their own normal, not a gym-wide average. The 5am regular who drops to twice a week gets flagged. The steady twice-a-week member doesn't. Then it names the three people to text today.

Heads up — this is a Monday-morning answer. By Wednesday it's stale, and it doesn't know who you already texted.

That's the part I built OTB for. Same sort, every morning, texts drafted, nobody nagged twice.

— Eamon