Open Gym Digital TwinObserve · member behavior labObservar · laboratorio de comportamiento
A paid month
is not a visited month.
Un mes pagado
no es un mes entrenado.
Gyms see bookings, payments and renewals long before they see someone leave. Attendance is the earliest honest signal. Using a real historical archive from three US health clubs, this lab measures what monthly attendance can, and cannot, say about engagement before anyone talks about churn.
Los gimnasios ven reservas, pagos y renovaciones mucho antes de ver a alguien irse. La asistencia es la señal honesta más temprana. Con un archivo histórico real de tres clubes de EE. UU., este laboratorio mide qué puede decir, y qué no, la asistencia mensual sobre el compromiso antes de hablar de churn.
01
How many visits does a paid month buy?
¿Cuántas visitas compra un mes pagado?
The most common month is a month with no visit. After that the curve falls steadily: a long tail of regulars sits behind a large group who pay and rarely come. A mean of 4.7 hides that split; the median is 3.
El mes más frecuente es un mes sin visitas. Después la curva baja de forma sostenida: detrás de un gran grupo que paga y casi no viene hay una cola larga de habituales. La media de 4,7 esconde esa división; la mediana es 3.
Show as tableVer como tabla
02
Three paid months in a row, none attended.
Tres meses pagados seguidos, ninguno entrenado.
A single empty month can be a holiday or an injury. Three consecutive eligible months with no recorded visit is a different conversation. It happened in about 1 of every 6 complete three-month windows.
Un mes vacío puede ser vacaciones o una lesión. Tres meses elegibles seguidos sin ninguna visita registrada es otra conversación. Ocurrió en cerca de 1 de cada 6 ventanas completas de tres meses.
Windows only count consecutive eligible months. An excluded month breaks the window; it is never filled with a zero.
Las ventanas solo cuentan meses elegibles consecutivos. Un mes excluido rompe la ventana; nunca se rellena con un cero.
Show as tableVer como tabla
03
The first month is the busiest.
El primer mes es el más activo.
In the first eligible month of a run, 23% of months record no visit. By month eleven it is close to 36%, and mean visits fall from 5.2 to 4.3. Then the line turns, around the one-year mark.
En el primer mes elegible de una racha, el 23 % de los meses no registra visitas. Hacia el mes once se acerca al 36 %, y la media baja de 5,2 a 4,3. Después la línea gira, alrededor del año.
Read with care.Leer con cuidado. Each point mixes different people: those who stay past a year are not the same group who started. The turn after month 12 can come from who remains, not from anyone visiting more. This describes the population, not each member's path.Cada punto mezcla personas distintas: quienes siguen después de un año no son el mismo grupo que empezó. El giro tras el mes 12 puede deberse a quién permanece, no a que alguien venga más. Describe a la población, no el recorrido de cada socio.
Show as tableVer como tabla
04
Month to month, more go down than up.
De un mes al siguiente, bajan más de los que suben.
Across 73,352 pairs of adjacent eligible months, the count fell more often than it rose. These are arithmetic signs, not states: a drop from 12 to 11 and a drop from 5 to 0 count the same here.
En 73.352 pares de meses elegibles contiguos, el conteo bajó más veces de las que subió. Son signos aritméticos, no estados: pasar de 12 a 11 y de 5 a 0 cuentan igual aquí.
05
Three clubs, four years.
Tres clubes, cuatro años.
Mean visits per eligible month stayed between about 3.4 and 6.1 in every club. The regular-month population grew and changed throughout, so the wiggles are not validated seasonality.
La media de visitas por mes elegible se mantuvo entre 3,4 y 6,1 aproximadamente en todos los clubes. La población de meses regulares creció y cambió todo el tiempo, así que las oscilaciones no son una estacionalidad validada.
Months with fewer than 50 eligible member-months are not shown.
No se muestran meses con menos de 50 meses-socio elegibles.
Show as tableVer como tabla
06
Before counting, choose which months count.
Antes de contar, elegir qué meses cuentan.
The archive holds 491,506 member-month rows. Only regular monthly or annual contract months inside each club's documented span, with accepted source flags, enter the analysis. Promotional, prorated, frozen and ambiguous months are left out, and their attendance becomes unknown, not zero.
El archivo tiene 491.506 filas socio-mes. Solo entran meses de contrato regular mensual o anual dentro del periodo documentado de cada club y con banderas de origen aceptadas. Los meses promocionales, prorrateados, congelados y ambiguos quedan fuera, y su asistencia pasa a ser desconocida, no cero.
This conservative subset does not reproduce the published 7,752-member sample; the selection policy is documented and versioned (berkeley_regular_month_v1).
Este subconjunto conservador no reproduce la muestra publicada de 7.752 socios; la política de selección está documentada y versionada (berkeley_regular_month_v1).
07
What monthly attendance can and cannot say.
Lo que la asistencia mensual puede y no puede decir.
It can describe
Puede describir
- Volume of recorded visits per eligible month
- El volumen de visitas registradas por mes elegible
- Empty months and runs of empty months
- Meses vacíos y rachas de meses vacíos
- Consistency over complete 3- and 6-month windows
- Constancia en ventanas completas de 3 y 6 meses
- Changes between adjacent eligible months
- Cambios entre meses elegibles contiguos
It cannot establish
No puede establecer
- Days since the last visit, time of day or weekday habits: the table is monthly
- Días desde la última visita, horario o día de la semana: la tabla es mensual
- Churn probability: no outcome is modelled here
- Probabilidad de churn: aquí no se modela ningún resultado
- Validated engagement states, segments or risk scores
- Estados de compromiso, segmentos o puntuaciones de riesgo validados
- How present-day gyms behave: these are 1997–2001 records
- Cómo se comportan los gimnasios actuales: son registros de 1997–2001
08
One module of an open gym digital twin.
Un módulo de un gemelo digital abierto de gimnasio.
- ObserveObservarThis lab: monthly behavior metrics with a data contractEste laboratorio: métricas mensuales con contrato de datos
- ConnectConectarSame source and keys as the Retention lab; 81,927 rows matchedMisma fuente y claves que Retention; 81.927 filas cotejadas
- PredictPredecirLives in Retention, with its own target and limitsVive en Retention, con su propio objetivo y límites
- SimulateSimularFuture workTrabajo futuro
- DecideDecidirFuture workTrabajo futuro
Behavior features and future outcomes stay in separate modules on purpose, so attendance metrics cannot quietly leak into a churn label.
Las métricas de conducta y los resultados futuros viven en módulos separados a propósito, para que la asistencia no se filtre sin querer en una etiqueta de churn.
09
Reproduce it.
Reprodúcelo.
The archive is downloaded from the authors' page and checked against a pinned SHA-256 before any analysis. The public Kaggle notebook repeats the full selection and recovers the same totals; it writes aggregates only.
El archivo se descarga de la página de los autores y se comprueba contra un SHA-256 fijado antes de cualquier análisis. El notebook público de Kaggle repite toda la selección y obtiene los mismos totales; solo escribe agregados.
# Python 3.14
python scripts/acquire_berkeley.py --download
python scripts/analyze_berkeley.py
python scripts/verify_berkeley.py
python -m unittest discover -s tests