Quien dejó de aparecer tiene nombre, fecha y lista
No te enteras de que perdiste a alguien por el cobro. Te enteras por el panel, con el nombre de la persona, la fecha en que desapareció y la clase en la que se detuvo.
Esta página es prueba consultable, no argumento. Muestra qué mide el panel de retención, con qué definición, qué hace solo el backend y dónde deja de actuar la plataforma.
La lista tiene nombre y tiene fecha
El panel de retención tiene un bloque que no devuelve porcentaje: devuelve gente. El endpoint aplica dos cortes al mismo tiempo. La última presencia registrada del miembro cayó entre hace 14 y 44 días. Y publicó o comentó al menos tres veces en la ventana de 30 días que termina en ese corte de 14 días.
Los dos cortes juntos son el punto. Quien nunca participó no entra en la lista — no sirve de nada exigir el regreso de quien nunca llegó. Quien desapareció ayer tampoco entra. Queda el miembro que estaba dentro, participando, y se detuvo.
Cada fila trae el nombre, el avatar o las iniciales, el XP acumulado, cuántas veces participó antes de desaparecer, hace cuánto tiempo está callado y la fecha exacta de la última presencia. Quien calló último aparece primero. Lo predeterminado son veinte nombres y el parámetro de límite llega hasta cien — es un recorte de los silencios más recientes, no un barrido de toda la base. El mismo bloque sale en CSV, con nombre, fecha y actividad anterior por fila.
La ventana está cerrada por los dos lados: quien lleva callado más de 44 días ya salió de la lista. Es una decisión del código, y vale la pena saberlo antes de usar la pantalla como inventario de pérdidas.
La definición de “sigue activo” está escrita en el código
Tres números con comparación: D7, D30 y D90. La definición es estrecha a propósito y vale la pena leerla despacio. La cohorte de D7 son los miembros que se registraron en la ventana de un día que terminó hace siete días — no es todo el que entró en la semana. Seguir activo significa tener presencia registrada, post, comentario o me gusta en los últimos siete días. Cada uno de los tres también se recalcula como estaba hace treinta días, para que leas la dirección y no solo el valor.
El tamaño de la cohorte aparece en la tarjeta, junto al porcentaje. Es el detalle que le impide a la métrica mentir: retención completa sobre una cohorte de dos registros es ruido, y la pantalla dice que son dos.
Un cuarto bloque muestra la distribución de racha de estudio — cuántos miembros están sin racha, cuántos están con uno a tres días, y así sucesivamente — a partir de la racha actual y del récord de cada alumno.
Toda la lente exporta en CSV, con un botón.
Ningún número de esta página es nuestro. Retención no es benchmark de proveedor.
La clase exacta donde se detuvo, con fecha
La lente de retención dice quién desapareció. La ficha del miembro dice dónde.
En el panel de un solo alumno el sistema arma, en una pantalla: la última clase vista, con el título de la clase, el título del curso y la fecha en que se detuvo. El porcentaje completado de cada curso al que tiene acceso activo, calculado sobre el total de clases del curso. Cada matrícula en ruta con el estado actual — activa, pausada, completada o abandonada — con pasos totales y completados. Los certificados de ruta emitidos, con número de serie, estado y fecha. La última presencia. El nivel de confianza con días activos, posts, comentarios y me gusta contabilizados. Y cuántas de sus sesiones siguen abiertas, contadas por los tokens de acceso todavía válidos.
En lo agregado el mismo dato se vuelve embudo. Cada ruta tiene analytics propio: cuántos matriculados alcanzaron cada paso, cuántos lo completaron o lo saltaron, y el tiempo promedio de conclusión de quienes terminaron. El recorrido de onboarding tiene embudo por misión y marca solo las transiciones en que la caída es mayor, con el nombre de la misión de origen y de la misión de destino.
Doce rutinas que corren solas. Ninguna de ellas dice “vuelve aquí”
El backend de tu comunidad tiene doce programadores registrados. Estos son todos.
Digest por correo, todos los días a las nueve de la mañana — el job despierta diariamente y envía a quien eligió ese día de la semana, saltando miembros baneados, con pausa entre envíos y registro en el historial. Acceso a curso vencido se vuelve EXPIRED cada hora, y emite evento. Acceso a ruta, lo mismo. Paso de ruta con liberación por fecha se desbloquea cada hora. Grupo con fecha se vuelve RUNNING solo y avanza el cronograma de desbloqueo, cada hora. Descenso por inactividad a medianoche: treinta días sin fecha de actividad registrada en el progreso de confianza y el miembro baja un nivel, con historial grabado y motivo. Penalización vencida se desactiva cada hora. Escrow del marketplace y destacado pago expiran cada hora. El tamaño de video se sincroniza cada cinco minutos. La cola del generador de curso por IA se recorre cada veinte segundos — retoma tarea trabada, cierra job inactivo — y los archivos de fuente adjuntos se borran del CDN a las cuatro de la mañana.
Aparte de eso, el push: toda notificación creada dispara un envío web push, respetando el interruptor por tipo del miembro y las claves VAPID de tu propio backend.
Lo que ninguna de estas rutinas hace es buscar a quien se detuvo y llamarlo de vuelta. Eso está en la última sección.
Lo que la plataforma no hace sola
No existe recordatorio automático de clase detenida. Ninguno de los veintiocho tipos de notificación corresponde a eso, y ningún programador busca progreso trabado. La lista de quién se detuvo existe; el correo de vuelta no sale solo.
El recordatorio de onboarding calcula quién es elegible — tiempo de inactividad, misión incompleta, días desde el ingreso — y ya excluye a quien lo recibió antes. Pero no tiene remitente ni programador: el envío de prueba devuelve una vista previa, y la función que graba el log de envío no tiene ningún llamador en el repositorio. Hoy es una regla de segmentación, no una regla de disparo.
No existe disparo masivo para un segmento. La plantilla de correo de comunicado existe en el CRUD de plantillas, con variables documentadas y versionado, y ningún código la envía.
La lista de riesgo no es clicable. Ver el nombre ahí y abrir la ficha de ese alumno son dos movimientos: el elemento de la lista no tiene enlace ni acción, y el admin busca a la persona en la pantalla de miembros a mano.
La presencia que alimenta el “hace cuánto desapareció” se graba en un único punto: la conexión y la desconexión del socket del chat de la comunidad. Post, comentario y me gusta entran en las cuentas de D7, D30 y D90; en la lista de riesgo, la señal es solo la presencia.
El digest solo alcanza a quien tiene preferencia grabada, y esa fila nace cuando el miembro abre la pantalla de notificaciones por primera vez — no en el registro.
Se pueden exportar las métricas en CSV, lente por lente. No se puede exportar la lista de miembros.
Continúa en
La lista dice quién se detuvo. La ruta, el grupo y el embudo de pasos dicen en qué punto estaba: 02 · Cursos →
La última presencia se graba en la conexión del chat. Cómo funciona esa sala: 04 · Chat →