Gym Referral Programme: Set Rewards and Test the Maths With AI

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Gym Referral Programme: Set Rewards and Test the Maths With AI.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Gym Referral Programme: Set Rewards and Test the Maths With AI.

Set the reward well below what one new member is worth to you after costs, and pay it only once the friend has made a first full monthly payment. AI can test the maths if you give it your own anonymised member export: join dates, end dates and fees. Without real numbers it will only guess.

It is tempting to pick a reward by feel, usually a free month, without checking it against how long members actually stay. The check takes one export and one afternoon: average paid months in a joiner's first year, multiplied by what each month contributes, gives you a ceiling. Nothing here promises that referrals will arrive; the maths only tells you what you can afford to pay if they do.

Follow me on Instagram@sagnikteaches

Step 1: pull five columns from your member system

You need a list of everyone who has joined in the last two or three years, with five columns: a member ID, the join date, the end date (blank if still active), the plan and the monthly fee actually paid. Use the fee paid, not the list price, because members on discounts or old rates change the answer. If your system only exports names, replace each name with an ID before the file goes anywhere near an assistant.

Connect on LinkedInSagnik Bhattacharya
member_id,join_date,end_date,plan,monthly_fee
M-1001,2024-03-04,,Standard,45
M-1002,2024-03-09,2024-06-30,Standard,45
M-1003,2024-04-12,,Plus,65
M-1004,2024-05-01,2024-05-31,Standard,45
M-1005,2024-06-18,2025-01-31,Plus,65
M-1006,2024-07-02,,Standard,45

Remove names, email addresses, phone numbers, addresses, payment details and any health or injury notes. Dates, plans and fees are all the maths needs. Then check how the assistant treats your data: consumer ChatGPT and Claude plans have a model-training switch in their privacy settings, and business plans do not train on business content by default. If you export a messy file with mixed date formats or duplicate rows, the tutorial on cleaning messy data shows how to tidy it first.

Subscribe on YouTube@sagnikteaches

Step 2: measure what a joiner is worth in the first 12 months

Use members who joined at least 12 months ago, so every one of them has had the full year to stay or go. For each month from 1 to 12, count the share of that group still paying. Add the twelve shares and divide by 100: the answer is the average number of months a joiner pays for in their first year. Multiply by what each month contributes after cost to serve, which is the fee less payment charges and consumables.

An illustrative cohort of 100 joiners (made-up figures, not a benchmark) looks like this at five checkpoints.

Month136912
Share still paying100%88%75%66%60%

Adding all twelve monthly shares (100, 94, 88, 83, 79, 75, 72, 69, 66, 64, 62 and 60) gives 912, so a joiner pays for 9.12 months of the first 12 on average. With a $45 fee and $3 a month of cost to serve, each month contributes $42, so the 12-month contribution is 9.12 x $42 = $383.04. That figure is the reference for every reward. In a spreadsheet, a close proxy for each member's months is =MIN(12, DATEDIF(B2, IF(C2="", TODAY(), C2), "M")), where B is the join date and C the end date; your billing records are more exact, so compare a handful by hand.

Resist two shortcuts. Do not average only the members who left, which makes stays look short, or only those still active, which makes them look long. And do not stretch the first year into a "lifetime", because a figure extrapolated from 12 months is a guess. The 12-month number is solid because it comes from data you hold. To understand why members leave, the churn prediction tutorial for small gyms is the next step.

If you want a figure closer to lifetime value, extend the same sum with older data instead of projecting forward. With three years of exports, take members who joined at least 24 months ago and add 24 monthly shares instead of 12. Say that group's first year matches the one above, 45% are still paying at month 24, and months 13 to 24 add another 6.3 paid months (all illustrative): the 24-month contribution is (9.12 + 6.3) x $42 = $647.64, and the $50 two-sided reward is 7.7% of it. Use the longer figure only when enough members are old enough to supply it, and keep the 12-month ceiling as the test a reward must pass first, because the reward is paid within the friend's first two months, long before their second year has happened.

Step 3: set the ceiling and compare six reward designs

Choose a ceiling as a share of the 12-month contribution. The 15% used here is an example you can change, not an industry rule, and it gives 15% x $383.04 = $57.46. Then cost each design at the moment you pay it.

DesignCost at payoutShare of $383.04Months of the friend's contribution to recover itWatch for
$25 credit for the referrer$256.5%0.6Credits that sit unused; easy to explain
A free month for the referrer$4511.7%1.1A full fee given up; it can feel bigger than it is
Two-sided: friend's $30 joining fee waived, referrer $20 credit$5013.1%1.2Both sides add up, and the fee waiver goes to friends who would have joined anyway
Two one-week guest passes for the member to give awayAbout $1.50 (two weeks at the $3 a month cost to serve)0.4%0.04Crowding at peak hours and passes that are never followed up
Merchandise bought at $9$92.3%0.2Members who do not want it, and stock to manage
Ladder: $15, then $25, then a free month across three referrals in a year$85 for three, $28.33 each7.4%0.7More admin, and only the third reward is a full fee

Every design passes a 15% ceiling, but not by the same margin. The two-sided offer is closest, and it is the one that goes wrong first. Run a stress test on it: suppose referred members leave faster, with retention 10 points lower than the cohort in every month after the first. Their first year then holds 8.02 paid months and contributes $336.84, and the $50 reward is 14.8% of that, barely under the ceiling. A $25 credit would be 7.4% and still comfortable. Where a reward sits close to the ceiling, either lower it or ask for a longer wait before paying it.

The payment rule matters as much as the amount. Pay only once the friend's first full monthly payment has cleared. Otherwise a friend who joins to hit a trial offer and leaves in week two costs you a reward and earns you nothing. Capacity is the other check: if the gym is full at peak hours, extra referred members cost more than the table shows, because they crowd out members already there. If you also run offers to new members, test the two together, since a referred friend who receives a joining-fee waiver and a January offer can cost more than either alone.

Sometimes the maths says to wait. If your 12-month contribution is low because members leave early, even a $25 reward can exceed the ceiling, and a referral scheme would add new members to a bucket that leaks. In that case fix retention first, and use churn analysis to find out why members cancel. A referral scheme multiplies whatever your retention already is.

Step 4: let AI test the maths, then check its work

Give the assistant the anonymised file and ask for the cohort table first, then the reward test.

Attached is an anonymised export of gym members with columns member_id, join_date, end_date (blank if still active), plan and monthly_fee. Today's date is [date].
Use only members who joined at least 12 months ago. Build a table for months 1 to 12 showing how many of them were still paying and what share that is. Add up the twelve shares to get average paid months in the first 12, then multiply by (average monthly fee - $3 cost to serve) for the 12-month contribution. Show every formula. List every member you excluded and why. Do not extrapolate beyond month 12.
Using a 12-month contribution of $383.04, cost each of these reward designs as a share of it, and the months of the friend's contribution needed to recover it: [paste the six designs]. Then repeat with retention 10 points lower in every month after the first. Flag any design above 15% of the 12-month contribution.

A first answer (illustrative) usually looks competent and contains the same three slips. It includes members who joined three months ago in the 12-month group, so their short stay is counted as if it were complete, which makes retention look worse. It uses the $45 list price for everyone, ignoring members on $39 legacy rates. And it adds a headline such as "average lifetime: 32 months", extrapolated from the early months, which the prompt told it not to do. Fix the first two by checking the excluded-members list against the dates, and delete the lifetime line. Then recompute one month by hand: count members still paying in month 6 and compare the share with the table. If the two disagree, look for a misread date format first.

After those fixes, a correct answer to the second prompt reads like this (illustrative). The stress column uses the lower-retention cohort, whose 12-month contribution is $336.84.

DesignShare of $383.04Share of $336.84 (stress)Against a 15% ceiling
$25 credit6.5%7.4%Passes with room
Free month ($45)11.7%13.4%Passes
Two-sided ($50)13.1%14.8%Passes by 0.2 points: lower it or delay payout
Guest passes (about $1.50)0.4%0.4%Passes; check peak-hour crowding
Merchandise ($9)2.3%2.7%Passes
Ladder ($28.33 average)7.4%8.4%Passes

The assistant is also useful as a sceptic. Ask it: "Which assumption in this reward test would change the answer most, and what data would settle it?" A typical reply points at retention for referred members, which you cannot know before launch. That is a reason to start with a modest reward and review it after 90 days, not to avoid the scheme.

Step 5: write the offer in plain words

The wording should fit on a poster, with the rules one click away. Here is an illustrative version for the $25 credit design. Adjust the amount, but keep the structure: what the member gets, when, and the one thing the friend must do.

Bring a friend, get $25. When a friend who has never been a member here joins and makes their first full monthly payment, you get $25 off your next payment. When your friend joins, they just tell us who sent them.

The terms underneath should read like a short list a person can take in at a glance.

  1. New members only: the friend must not have held a membership here in the last 12 months.
  2. The reward is a credit against your next payment, applied after your friend's first full monthly payment clears.
  3. You can earn up to five rewards in any 12 months.
  4. Credits have no cash value and cannot reduce a payment below zero.
  5. Members who refer themselves, or people who live in the same household, do not qualify.
  6. You must still be a member when the reward is applied.
  7. If a friend's first payment is refunded or reversed, no reward is applied.
  8. We may change or end the offer at any time. Changes do not affect rewards you have already earned.

It helps to see what the plain version replaces. A typical first draft from an assistant, or from a template, reads: "Refer a mate and get a FREE month! T&Cs apply." It hides the conditions, shouts, and promises a free month that the terms then qualify. Members who read it as an unconditional gift feel misled when the credit arrives late, and the desk team takes the complaints. The plain version states the amount, the trigger and the timing in the first two sentences, which is what a member needs in order to trust it.

Two things stay out of the wording. Do not tie the reward to reviews or social posts: Google's review policy bans offering anything in return for a review, and a post written for a reward may have to be labelled as an advert, so keep the reward for a friend who joins and pays. And do not promise results such as "double your membership": the scheme may bring few referrals, and the wording should never suggest otherwise. An assistant can draft the poster, email and desk script from these terms. Tell it to use only the terms as written, and read the output against the list. For wording and timing of the ask itself, see how to ask for referrals, with timing and wording.

Step 6: build the tracking sheet

Attribution is where referral schemes quietly fall apart, because "how did you hear about us?" is answered from memory. Put a "Who referred you?" field on the join form, ask for the member's ID or a short code, and check it with the referrer before logging. One row per referral keeps the rest simple. The rows below are illustrative.

ReferralReferrerNew memberJoinedFirst full paymentStatusRewardValue
R-001M-1003M-22103 Nov3 DecPaidCredit$25
R-002M-1128M-22149 Nov9 DecQualifiedCredit$25
R-003M-1003M-223120 NovPendingCredit$25
R-004M-1550M-224024 NovVoid: left in week 2None$0
R-005M-1128M-22552 Dec2 JanQualifiedCredit$25

Four formulas turn the sheet into a scoreboard. In Google Sheets, with the status in column F and the value in column H:

Referred joins logged     =COUNTA(C2:C)
Rewards owed              =SUMIFS(H2:H, F2:F, "Qualified")
Rewards paid              =SUMIFS(H2:H, F2:F, "Paid")
Cost per rewarded member  =IFERROR(SUMIFS(H2:H, F2:F, "Paid") / COUNTIFS(F2:F, "Paid"), 0)

Give the desk team two short scripts. When someone joins: "Did a member send you here? What is their name?" Then check the name against the member system before the join is finished. When a member asks about their credit: "Your friend joined on [date], and the reward is applied once their first full payment clears, which is [date]. I will check the sheet now." Both take under a minute, and the status column settles the question.

Run the Qualified list weekly and apply the credits in one batch, so no reward is paid early or twice. Ask the assistant to draft the reward notification message and the weekly summary, but give it the sheet with member IDs only. If you want a reminder sequence around the scheme, running a referral programme with automated reminders covers the automation.

Step 7: rules for gaming and awkward cases

Decide the awkward cases before the first one arrives, write the answers into the terms, and give the desk team a copy. These are the ones that come up.

  • A lapsed member returns. A friend who held a membership eight months ago is not new under the 12-month rule. If you want to win lapsed members back, run a separate offer for them and keep it out of the referral scheme.
  • Two members claim the same friend. Credit the referrer named on the join form, confirmed with the friend, and write that rule down.
  • A couple or family joins together. Decide whether one new membership account earns one reward, and say so.
  • The friend pays annually. Define the first full payment as the first full payment of their plan, monthly or annual, and decide whether an annual payer earns the same reward.
  • A staff member or coach refers someone. Keep staff outside the scheme and cover them in their own agreements.
  • One member refers many people. The cap of five rewards a year protects you. Look at any member who reaches it, because it may be genuine enthusiasm or a sign that someone is gaming the rule.

A realistic mistake (illustrative): the gym pays on the join date, not the first full payment. A friend signs up on a trial offer, leaves in week two and the referrer has already been credited $25, with nothing coming in. It is a one-line change in the terms and the sheet, and it is much cheaper to fix before launch than after the first dozen referrals.

Step 8: read the first 90 days without over-reading them

After 90 days, pull five numbers from the tracking sheet and the member system: referred joins and their share of all joins, rewards paid, cost per rewarded member, the share of referred joiners still paying at day 90, and the same share for everyone else who joined in the period. An illustrative summary: 14 referred joins out of 96 new members (15%), 11 rewards paid at $25, so $275, with 3 pending. At day 90, 11 of the 14 referred members are still paying (79%) against 66 of the other 82 (80%).

Read that comparison with care. With 14 referrals, a gap of one or two members is noise, and nothing here says referred members stay longer or shorter than anyone else. Treat the figures as a starting point and keep collecting. What the sheet does show clearly is the cost: $25 for each rewarded member, recovered once the friend has paid for a bit more than half a month of contribution at $42.

  • Few referrals. Do not raise the reward first. Check awareness: is the offer on the desk, in the welcome email and mentioned by coaches? Then check whether the ask comes at a good moment, such as after a member's first month.
  • Referred members leaving faster. Lengthen the wait before paying, from the first full payment to the second, or lower the reward, and rerun the ceiling with the new retention figures.
  • Referred members staying as long or longer. You may raise the reward a little, as long as the new total stays under the ceiling you set in step 3.
  • Costs above the ceiling. Change the design, not the arithmetic.

Repeat the cohort calculation each quarter with fresh data, because retention moves with prices, seasons and the quality of your induction. The assistant can rerun the same two prompts in minutes, and your check by hand takes a few more. If you want the maths to feed a wider plan, the January marketing plan shows how a bring-a-friend week fits into the calendar, and the whole exercise rests on one habit: pay a reward only when the numbers in your own export say you can afford it.

Questions about gym referral rewards

Is a free month the best referral reward?

Not automatically. A free month gives up a full month's fee, about 11.7% of a joiner's first-year contribution in the example here, while a $25 credit costs about 6.5%. The best reward is the one that fits under your ceiling and that members actually value, so test two designs on your own numbers before you launch.

Should the friend get a reward as well?

A two-sided offer can feel fairer and gives the member an easy line when they invite someone, but it adds cost to every referral. Add both rewards together before comparing them with your ceiling, and keep the friend's part simple, such as a waived joining fee.

How do I stop members gaming the scheme?

Define a new member in writing, for example nobody who held a membership in the last 12 months, and pay only after the first full payment clears. Cap rewards per member per year, exclude people in the same household, and log every referral with a status so patterns show before they cost you.

Can I reward members for posts or reviews?

It is safer to reward joins, not posts or reviews. Google's review rules do not allow incentives for reviews, and rewarded posts may need to be labelled as such under advertising rules. Keep the reward for a friend who joins and pays, and ask for reviews separately, offering nothing in return.

Further reads

Sources: the worked example uses illustrative member data, not benchmarks; Google's review content policy on incentives; OpenAI and Anthropic help pages on the model-training setting; Google Sheets help for DATEDIF, COUNTA, COUNTIFS and SUMIFS.

Want your referral reward tested on your own data?

On a 1:1 call we'll look at your member export, work out what a joiner is worth over their first year, and decide which parts of the testing and tracking AI can run for you.

Book a 1:1 call with me