Which campaigns bring the best gym members: cohort analysis without being a data analyst
Your best campaign is almost never the one that generates the most leads. It's the one that brings in members who stay paying the longest, and there's only one way to find out which that is: group members by the campaign that brought them and compare how each group behaves over the following months. That's a cohort analysis. It sounds like something from a data team; it fits in a spreadsheet with four columns.
This article gives you the full method: the four columns, an example table where the "winning" campaign loses, the patterns that almost always appear, when you have enough data to make a judgment, and what to do with the verdict. It's the diagnostic tool that turns the thesis of measuring marketing by revenue rather than CPL into actual decisions.
What a cohort is and why it matters
A cohort is a group of members who share origin and moment: "people who joined between January and March through the 6-week challenge campaign." By grouping them this way, you can track their behavior as a group: how many are still active at 3 months, at 6 months, what average fee they pay.
The alternative, what almost everyone does, is to look at each campaign by its acquisition metrics (leads, CPL, sign-ups) and view gym retention as a single global number. That approach mixes apples and oranges: your overall retention might be 70% at 6 months while one specific campaign is feeding you members who cancel in month two, and the aggregate hides it. The cohort separates it and shows it.
The method: four columns per campaign
For each campaign or offer that generated sign-ups, calculate four figures:
- Sign-ups: how many members it brought. You get this by cross-referencing campaign leads with sign-ups in your management software, usually by phone number.
- Average tenure at 6 months: of those who joined at least 6 months ago, how many months have they paid on average. A member still active at 6 months counts as 6; one who cancelled in month three counts as 3.
- Average fee: what the average member in that cohort pays. This matters because some campaigns systematically sell the cheap plan, others the full one.
- % early cancellations: how many cancelled within the first 2 months. This is the detector for members who should never have joined.
With those four columns you calculate the fifth, which is the one that matters: average revenue per member (tenure × average fee, a simplified version of properly calculated member LTV) and, by dividing the campaign spend by its sign-ups, cost per member. The ratio between the two is the real return of each campaign.
The table where the winner loses
Four real-structure campaigns (rounded numbers from a composite case), same gym, standard fee of €45:
| Campaign | Spend | CPL | Sign-ups | Avg tenure (6m) | Avg fee | Early cancellations | Revenue/member | Cost/member |
|---|---|---|---|---|---|---|---|---|
| Free week pass | €800 | €4 | 18 | 2.8 months | €38 | 44% | €106 | €44 |
| 8-week challenge (€99) | €800 | €9 | 11 | 5.1 months | €47 | 18% | €240 + €99 challenge | €73 |
| "Train with method" (price shown) | €800 | €14 | 8 | 5.7 months | €52 | 12% | €296 | €100 |
| 50% off first month | €800 | €6 | 14 | 3.5 months | €41 | 36% | €144 | €57 |
By CPL, the free pass wins by a mile: €4 vs €14. By cost per member, it also wins: €44 vs €100. And yet it's the worst campaign in the table: every euro invested returns €2.4 at 6 months, while the method campaign returns €3.0 and the paid challenge, counting the €99 entry fee, returns €4.7. The most expensive campaign by every acquisition metric is among the best by the only metric that pays the rent. Without the cohort columns, you'd have moved the entire budget to the free pass with total conviction.
Also look at the early cancellation column: 44% on the free pass. Almost half of those sign-ups weren't members, it's the old quality vs quantity of leads dilemma reaching the bottom of the funnel before evaporating. The quality problem isn't always visible in the lead; sometimes it only surfaces in month 2.
The patterns that almost always appear
When gyms build this table for the first time, they tend to find the same things. These aren't laws, they're tendencies with explanations.
Hard offers bring soft members. Free, 70% off, no commitment: the lower the barrier to entry, the less commitment comes with the person who crosses it. Someone who joins for price leaves for price. It doesn't mean aggressive offers are forbidden; it means their cohort needs watching closely and they need a well-developed process for converting to full fee.
Community and method campaigns bring retention. Ads that sell how you train at your facility, the group, the tracking, the coach, attract people who are buying that, and that's exactly what retains them. Their CPL will always be worse. Their cohort will almost always be better.
The paid challenge outperforms the free pass. Paying €49-99 for an entry programme is both a commitment filter and advance revenue. Subsequent conversion to a regular membership typically doubles that of a free pass. The trade-off is volume: it brings fewer people, and if your floor is empty you might prefer imperfect volume to perfection with nobody in it.
Segment age and time slot predict retention. Cohorts of 35-50 year-olds retain better than 18-25 year-olds almost always, and morning members tend to stay longer than late-evening ones. If your campaigns segment by age or the creatives attract different profiles, you'll see it in the table. To understand why each weak cohort underperforms, it also helps to look at where the lead-to-member conversion breaks down: sometimes the problem isn't who the campaign attracts but what happens once they arrive.
Your situation may contradict any of these patterns. Good: that's what the table is for, so you decide with your own data rather than industry clichés (or mine).
When you have enough data to make a judgment
This is where the two errors that invalidate the whole exercise happen.
Minimum 15-20 sign-ups per cohort. With 6 sign-ups, two members moving to another city wrecks your average tenure and makes you shut down a good campaign. Below 15 sign-ups, treat the figures as a signal, not a verdict. If your individual campaigns don't reach that, group by offer type (all free passes together, all challenges together): you lose detail, you gain reliability.
Minimum 3-6 months of cohort life. A February cohort can't be judged in March: it hasn't had time to churn yet. At 3 months you have a decent first reading (the early cancellations have already happened); at 6 months, a solid one. Judging earlier is like evaluating annual retention in week 2.
The uncomfortable consequence: this system makes you wait. The campaign you launched this month won't have a verdict for a good quarter. That's why acquisition metrics still have their place as early diagnostics; what they lose is the right to deliver the final sentence.
What to do with the verdict: shift gradually
You have the table, there's a clear winner and a clear loser. The temptation is to move the entire budget at once. Don't, for three reasons: small cohort figures have a margin of error; the winning campaign may not scale linearly (its audience gets exhausted, its CPL rises as you increase budget); and abrupt changes reset Meta's algorithm learning.
The practical rule: move 20-30% of the budget per month from the losing cohort to the winning one, then review. If the winner maintains its cohort quality with the increased budget, repeat the following month. If its cost per member degrades at scale, you've found its ceiling, and you've found it with 25% of the budget committed, not 100%.
With the losing campaign you have two options before killing it: change the offer (from free pass to paid challenge, for example, keeping the segmentation and creatives that work) or give it a different role, such as filling off-peak hours even if its cohort is mediocre. A campaign that's bad for long-term members can be acceptable for a tactical objective, as long as you know exactly what it costs you.
The minimum system to keep this alive
A spreadsheet with one tab per quarter: rows of new members, columns for source campaign, fee, and a yes/no per month of activity. Everything comes from your management software's billing data, which is where the truth of this analysis lives. On the 1st of each month, 30-45 minutes: export new sign-ups from the management software, cross-reference by phone with the leads, update the activity column. At 6 months the pivot table gives you the four columns per campaign with no additional effort.
The ceiling of the spreadsheet arrives with volume: above 30-40 leads per month, the manual cross-reference starts breaking down from fatigue, and one month without updating breaks the series. At that point you need to automate the lead-sign-up-fee cross-reference, either via your management software's API or with a platform that does it natively (it's one of the problems Pilotium solves for gyms). The buying criterion is always the same: that the cohort columns fill themselves.
While you decide, this week's task is retroactive and free: take the sign-ups from 6 months ago, assign them to their source campaign as best you can (cross-reference by phone, "how did you hear about us" field, reception memory) and build the first table. It won't be perfect. It will be the first time you see which campaign brings you members and which brings you foot traffic, and that difference is worth more than any leads report you've received this year.