Membership cohorts: tracking gym sign-ups, retention and cancellations
Operational worked example · Independent membership gym with limited personal training; no pool or spa
Track gym members by their first paid activation, compare each cohort at the same membership age, and keep cancellation requests separate from effective exits. Reconcile the cohort survivors to the closing roster and invoices before choosing acquisition or retention work. A growing member count can coexist with weaker new-member retention; an active membership can coexist with unpaid dues. The worked counts below are hypothetical and leave the published financial case unchanged.
Read the complete operating guide set · Browse operating articles
Decide what counts as a join and a retained member
A sign-up form, a trial visit and a paid membership start are different events. For this worksheet, a join is a person’s first membership activation with the first payment confirmed. Cohort membership is fixed by that activation month. A later price change does not move the person into a newer acquisition cohort; a second subscription for the same person does not create a second member. Preserve a separate membership-spell ID for a person who leaves and returns.
Retention here means continuous eligibility for the ordinary membership at the observation boundary. A fully frozen membership is outside that eligible count while frozen. Track it separately so a temporary pause is not described as a permanent departure. A later return contributes to the current roster but does not erase the interruption from the original continuous-retention curve. If the club instead wants “currently active from the original cohort,” publish that as a separate measure; it can rise after reactivations.
Eligibility and collection are separate fields. A member in the club’s defined payment-grace period might retain access while the current invoice remains unpaid. Stripe’s documentation illustrates why a system label alone is insufficient: an active subscription need not mean every outstanding invoice has been paid. Use the actual contract and configured access rules to define eligibility, then reconcile invoices and receipts separately. Subscription and invoice states.
Keep an event register, not just today’s active list
The following is a measurement specification, not a claim that every software export already contains these fields. Retain event times in the gym’s local timezone, the export cutoff and the definition version. Deduplicate multiple subscriptions or repeated check-ins with a stable member ID. Save the state at each reporting boundary; today’s overwritten status cannot reliably reconstruct a past cohort.
| Record | Minimum fields | Use in the report |
|---|---|---|
| First paid activation | Member ID, membership-spell ID, activation time, confirmed first invoice, offer/channel | Original cohort denominator; excludes leads and unconverted trials |
| Membership state change | Old/new eligibility, effective time, freeze/resume or termination reason | Continuous retention and the closing roster bridge |
| Cancellation request | Request time, requested effective date, final effective date, voluntary/payment-related category | Forward cancellation workload; request alone is not a realized exit |
| Invoice and payment | Billing period, amount due, paid/refunded/overdue amount, settlement time | Dues billed and collected; separate from membership counts |
| Attendance | Member ID, visit timestamp, visit/session type, corrections or duplicate flags | Engagement within the same eligible cohort and observation window |
First-party Gymdesk documentation lists filtered member exports, individual check-in exports and payment exports as separate tools. It also lists Member Growth as a view-only dashboard. That is an example of why an attractive growth chart may need underlying exports and a saved snapshot to support your own definitions. These articles do not assume the club uses Gymdesk or Stripe. Exported records and dashboard limits.
Compare the same membership age across cohorts
Consider three hypothetical cohorts of 40 first paid activations: January, February and March. Everyone starts on the first day of their activation month; terminations in this example take effect at month boundaries. Age 0 is the activation month’s closing count, age 1 is the following month’s close and age 2 the next. No freezes, reactivations or administrative corrections occur in this small example. These are constructed counts, not records from a real gym. Worksheet scope.
| Activation cohort | Original joins | Age 0 eligible | Age 1 eligible / retained | Age 2 eligible / retained |
|---|---|---|---|---|
| January | 40 | 40 | 36 / 90.0% | 33 / 82.5% |
| February | 40 | 40 | 30 / 75.0% | Not yet observed |
| March | 40 | 40 | Not yet observed | Not yet observed |
The age-1 comparison is 90.0% for January versus 75.0% for February, a gap of 15.0 percentage points. Comparing January at age 2 with February at age 1 mixes different opportunities to leave. The March blanks are unobserved future outcomes, not zero retention. Keep them blank when exporting or averaging.
In a real club, activation dates may be scattered through the month. Define elapsed-time checkpoints, such as after a full first renewal interval, or use precise days-since-activation with a fixed window. Members who have not reached the checkpoint are not eligible for that comparison yet. Separate presale starts from ordinary acquisition months, and retain the original cohort size beside every rate. Small cohorts are sensitive to a few people; a difference is a question to investigate, not proof that one advertisement or staff member caused it.
Show how growth can conceal weaker acquisition quality
At February close the illustrative roster contains 76 eligible members: January’s survivors plus February’s new cohort. In March, January loses 3 and February loses 10. March adds another 40 first activations, so the roster still grows by 27 to 103. The positive growth total does not reveal February’s weaker age-1 result.
| Movement | Members | Counting rule |
|---|---|---|
| Opening eligible roster | 76 | February closing snapshot |
| Effective exits from that opening roster | 13 | January and February losses; no new-join exits in this example |
| New first paid activations | 40 | March acquisition cohort |
| Closing eligible roster | 103 | Opening minus effective exits plus first activations |
Opening-roster churn for March is 13 divided by 76, or 17.1%. January’s conditional loss from age 1 to age 2 is instead 3 divided by 36, or 8.3%. Cohort retention always uses the original cohort denominator; conditional period loss uses the members still exposed at that period’s start. Neither percentage should be relabeled as the other.
For an actual roster, add disjoint movements for reactivations/resumes, newly frozen memberships and reviewed corrections. Report members who activate and leave within the same month separately from exits among the opening roster. Otherwise the opening-roster denominator is paired with people who were never in it. A documented state-transition bridge should reproduce the closing member list exactly.
Separate cancellation requests, effective exits and payment failures
A request received before month-end may end access next month. Keep its request date for service follow-up and its effective date for the roster. Do not remove a paid-through member early to make churn look timely. Stripe distinguishes a scheduled period-end cancellation update from the eventual cancellation event, which is a useful technical illustration of the two clocks. It also allows collection to be paused without necessarily changing subscription status. Cancellation timing and collection pauses.
Classify effective voluntary exits separately from payment-related terminations, freezes and unresolved records. An unsuccessful payment attempt is not automatically an effective membership termination: retry and access policies determine what happens next. A member can request cancellation and also have an unpaid invoice; do not count that person twice in total exits. Use one final roster movement, with separate service and payment flags.
Review the reasons members actually give, including price, relocation, schedule, equipment waits or a missing service. Preserve “unknown” when no reason is supplied. A reason code is useful for designing a test, but is not a measured causal effect. Keep cancellation handling consistent with the member contract and applicable local requirements; this worksheet does not establish those terms.
Reconcile retained membership with the money collected
Apply the existing case’s assumed monthly membership fee of $65 to the illustrative March roster. The example assumes full-month dues, no discounts, no annual prepayments, no refunds and no paid training. Its 103 eligible memberships generate $6,695 of scheduled dues. At the reporting cutoff, 6 current dues invoices remain unpaid, worth $390. Collected March dues are therefore $6,305 before processor deductions. The example keeps those overdue members eligible within an assumed grace policy; it does not present them as fully paid.
This is a collection reconciliation, not an accounting revenue-recognition policy or a new financial-model scenario. A member pays annually, starts partway through a month or buys training only if the underlying invoices show it. Separate tax, fees, refunds and payments for earlier periods before comparing the current dues schedule with bank deposits. Attendance and an “active” flag cannot fill missing receipts. Lifecycle scope.
Choose acquisition spend using retained cohorts at equal age
Suppose January and February each have an independently assumed $1,200 campaign allocation. Cost per first paid activation is $30.00 in both cohorts. Dividing the same spend by age-1 survivors gives $33.33 for January and $40.00 for February. The equal sign-up cost hides a different cost per continuously retained member.
| Cohort | Campaign allocation | Cost / first activation | Cost / age-1 survivor |
|---|---|---|---|
| January | $1,200 | $30.00 | $33.33 |
| February | $1,200 | $30.00 | $40.00 |
These campaign allocations are article-only assumptions. They do not allocate or increase the base model’s marketing line. A real acquisition-cost definition should disclose whether it includes agency work, sales staff, referral rewards and introductory concessions; avoid counting the same concession as both lower receipts and campaign expense. Preserve unassigned spend rather than forcing every invoice into a channel. Exclude organic joins only when their acquisition cost and attribution treatment are consistently defined.
Before reallocating spend, compare the offer, channel mix, activation month, introductory price and renewal price, then look for operational differences. Record an intervention and compare later cohorts at the same age. Do not extrapolate a lifetime value from this short triangle: future renewal behavior, paid training and servicing cost remain unobserved.
Use the cohort evidence to test the existing membership forecast
The published educational case starts with 180.0 presold members, assumes 40.0 gross joins per later month and 4.0% churn on the previous roster. In its second operating month, expected exits are 7.2, net additions are 32.8 and the modeled closing roster is 212.8. Fractional members are expectations in that forecast; the operating event register contains whole people. The cohort worksheet above is a separate integer example and is not a replacement run.
At the target of 650.0, assumed churn consumes 26.0 replacement joins per month. The executed model clips membership at its target and physical limit, so desired joins are not always accepted growth. Use actual paid activations, cancellations and eligibility to test the assumed drivers before any owner-approved model revision. A single blended churn assumption also hides differences between new and established members; the cohort triangle exposes that question.
Close the roster and receipts together each month, review pending cancellation dates, and compare the latest eligible age checkpoint by offer/channel. Use attendance records to find members whose usage changed, then test whether service improvements affect later retention; absence is not itself a cancellation. Read the gym unit-economics guide for the reference unit and the monthly financial scenarios for the consequences of a different membership path. The operating decision here is which acquisition and retention work deserves attention, with a reconciled record to support it.
Sources and scope
- Operating-case methodology · Checked 2026-10-01 · Authored illustrative assumptions and a 60-month model. Budget allowances, prices charged, demand, payroll, rent and financing are not observed local averages.
- Original gym article worksheets and planning-case methodology · Checked 2026-10-05 · Original hypothetical cohort and equipment-use worksheets authored for these articles. Input quantities, marketing allocations, arrivals, durations and space deductions are assumptions, not customer observations or industry benchmarks. The methodology URL explains illustrative cases; it does not substantiate their market values.
- Gymdesk: Reports and data exports · Checked 2026-10-05 · First-party documentation of filtered member, individual check-in and payment exports. Different billing statuses can be exported; the Member Growth dashboard is currently view-only. Supports the data-collection workflow, not gym retention rates or adoption of this software.
- Stripe: Cancel subscriptions · Checked 2026-10-05 · Cancellation may occur immediately or at period end; scheduling and effective cancellation produce different events. Pausing payment collection need not change subscription status. Technical examples only, not a gym contract rule or a recommendation to use Stripe.
- Stripe: How subscriptions work · Checked 2026-10-05 · Subscription and invoice/payment states are different. An active subscription does not necessarily imply every outstanding invoice is paid; handling of past-due/unpaid states depends on configured rules. Supports reconciliation, not recognition of revenue or local legal access policies.