Retention Router

About
Why we built this

The call you shouldn’t make

Plenty of gyms are big enough to have churn and too small to have anyone act on it: no retention team, no marketing hire, nothing beyond the management platform. The front desk can already see who has stopped coming and whose term is about to end. Nobody rings them, because ringing tens of people a day is not a job anyone at the front desk has time for.

So we started where anyone would: automate the calls. Then we looked hard at who those calls would reach, and found the part nobody wants to say out loud.


What everyone builds

Two halves of the same assumption

One half of the market predicts. Keepme Score, PredictStay and Glofox’s At Risk report score every member’s chance of leaving from attendance and payment data. They tell a gym who is likely to go. None of them asks whether getting in touch is the right move.

The other half executes. Replify runs outbound retention calls; Keepme’s Antares runs text, chat and email follow-up. Both reach out to whoever the predictor flags. Neither has a reason to say no.

Both halves assume contact is neutral — that the worst a call can do is nothing. Point either at the member data behind today’s queue and they would ring the 129 auto-renewing members this product never calls, hardest at the 0 of them whose renewal date is inside a fortnight.


What we found

A call is not free

Phoning someone who has drifted reminds them they are paying for something they are not using. For a member on a fixed term that is about to lapse, that reminder is the point. For a member on a rolling contract who has stopped coming, it can be the reminder that ends the membership: they pay full price, take up no capacity, and the call risks being what makes them remember to cancel. Uplift research calls these members sleeping dogs.

So the first thing it decides is not who is about to leave. It is who you would lose by getting in touch — and then it leaves them alone.

In the member data behind today’s queue, that is 129 of 500 members who are never called. Not deferred, not queued for later, not tried once to see what happens. The only thing that lifts the rule is the member’s own request: 16 auto-renewers have asked to cancel, and each can get at most one call about it — and only if the gym has a freeze or a cheaper plan to put on the table.

Everyone the agent won’t dial today stays in the queue, below the members who are due, grouped under the reason that holds them back: on an auto-renewing contract (129), asked us to stop (0), asked to cancel at a gym with nothing to offer them (0), cooling off after a conversation that changed nothing, or waiting a week to redial a call nobody answered (0), at the attempt limit (1), or simply not due anything today (148). A manager can see exactly who is being left alone, and why.

That is the whole product, really. Everything below this is in service of it.


How it works

Four conversations, not one

A member whose term ends next week and a member whose membership ended months ago need nothing in common from a phone call, so they don’t share an agent. There are four, and each only knows what it needs to.

Renewal
Still training, and a fixed term is about to lapse. It makes sure they know the membership won’t renew by itself and makes renewing easy. If they hesitate and the gym has a save to offer, it offers it once.
Reengagement
The membership is live and they have stopped coming. It asks once what got in the way, then asks for one visit. It is not selling anything.
Winback
The membership has already ended. It asks why they stopped, once, and matches what the gym has to the reason they give. It is tried at about one, three and six months after the end date, and never after.
Cancellation
The member has asked to cancel. It tells them the cancellation is being processed, asks why once, and puts at most two alternatives on the table — the second only if they say the first doesn’t fit. Any decline ends the offers, and the cancellation goes ahead either way.

Each gym types in its facts and what it actually offers — the renewal discount, the cheaper plan, the freeze — and every sentence the agent reads about an offer is compiled from those fields, then checked against them. No model writes that text. A blank field means the gym didn’t say, which is not the same as no. Each agent’s prompt serves every gym; what changes is the facts and the offers.


The arithmetic

Forty-one cents

A call costs $0.41. A saved member is worth $475 to the gym — six more months of fees, averaged over the 222 members due a call today. Break-even is 0.085% — one save in roughly 1,170 calls, a bar so low it is almost embarrassing to state.

That is exactly why the restraint has to be built in rather than left to judgement. When calling is this cheap, nothing in the economics will ever stop you calling everybody. The only discipline left is the decision not to, and it has to live in the product, because it will not survive a quarterly target.


What it will not do

Six things, not configurable

These are not switches a gym can turn off. They are written into the agents’ prompts, and beside each is what the latest committed eval run, from 13 Sep 2026, found.

  • It says it is an AI, plainly and immediately, when anyone asks. It never denies it.Shared guardrails. Latest run: 2 of 2 checks passed.
  • “Stop calling me” ends the call, and it is permanent across every call type.Shared guardrails; lib/eligibility.ts. Latest run: 3 of 3 checks passed.
  • No guilt, ever — not about missed visits, their fitness or their body.Shared guardrails. In the prompt. No eval checks it yet.
  • An injury never gets advice. It gets pointed to a trainer or a doctor.Shared guardrails; winback goal. Latest run: 1 of 1 check passed.
  • It never invents a fact. If something isn’t in front of it, it says so rather than guessing yes or no.Shared guardrails. Latest run: 2 of 2 checks passed.
  • It never obstructs a cancellation. “Just cancel it” ends every offer, and it never asks anyone to justify leaving.Cancellation goal. Latest run: 4 of 4 checks passed.

The last one matters most. A retention product that quietly makes leaving harder will always look like it is working.


Who we are

Four of us

Everything above is in the repository — the router, the prompts and every eval run — so none of it has to be taken on our word.

Danar TanDanar Tan
Oliver BaldwinOliver Baldwin
Orlando TanOrlando Tan
Jesslyn SusantoJesslyn Susanto