Integrated functional fatigue model for esports professionals.
Al acceder a FitForEsports, el usuario acepta las siguientes condiciones en su totalidad:
El usuario reconoce que el sistema de puntuación, el Algoritmo de Interpolación Lineal y el diseño de la interfaz son propiedad exclusiva de Adrián Antonio Mesa, con registro de autoría en vigor. Queda terminantemente prohibida la copia, reproducción o ingeniería inversa de cualquier parte del código o la metodología.
El jugador presta su consentimiento explícito para la recogida y análisis de datos biométricos (HRV, Sueño, Percepción de Fatiga y Rendimiento Cognitivo). Estos datos se utilizarán únicamente para la optimización del rendimiento deportivo y la prevención de lesiones dentro del equipo, de conformidad con la normativa vigente de protección de datos.
El usuario tiene derecho a solicitar la eliminación total de sus registros históricos en caso de baja definitiva del equipo o cese de la actividad deportiva. Dicha solicitud deberá dirigirse por escrito al administrador del sistema a través del correo fitforesports@gmail.com, quien procederá a la eliminación técnica de los registros en un plazo máximo de 30 días.
El contenido del Dashboard de Staff es información clasificada. La difusión no autorizada de métricas grupales o individuales se considerará una vulneración de la confianza profesional y podrá tener consecuencias contractuales y legales según la normativa aplicable al entorno deportivo profesional.
By accessing FitForEsports, the user agrees to the following conditions in their entirety:
The user acknowledges that the scoring system, the Linear Interpolation Algorithm and the interface design are the exclusive property of Adrián Antonio Mesa, with active authorship registration. Copying, reproduction or reverse engineering of any part of the code or methodology is strictly prohibited.
The player provides their explicit consent for the collection and analysis of biometric data (HRV, Sleep, Perceived Fatigue and Cognitive Performance). This data will be used exclusively for sports performance optimisation and injury prevention within the team, in accordance with applicable data protection regulations.
The user has the right to request the complete deletion of their historical records upon permanent departure from the team or cessation of sporting activity. Such requests must be submitted in writing to the system administrator at fitforesports@gmail.com, who will proceed with the technical deletion of all records within a maximum of 30 days.
The Staff Dashboard content is classified information. Unauthorised disclosure of group or individual metrics will be considered a breach of professional trust and may have contractual and legal consequences under regulations applicable to the professional sports environment.
| # | Name | Team | PIN | Actions |
|---|
FitForEsports is a real-time fatigue monitoring platform designed for professional esports organisations. It integrates biometric, cognitive, and subjective data into a single daily score (0-10) that quantifies each player's readiness to compete.
The system collects data across four independent physiological and cognitive blocks: autonomic recovery (HRV), sleep architecture, cognitive-motor performance (4 tests), and perceived fatigue. Each block contributes a weighted component to the global score, compared against the player's individual 14-21 day rolling baseline.
The platform is deployed as a single-page web application accessible from any device, with Firebase Firestore as the cloud backend for cross-device synchronisation.
| Block | Weight | Max Points | Baseline |
|---|---|---|---|
| HRV (Autonomic Recovery) | 28% | 2.80p | 21-day rolling average |
| Sleep Quality | 28% | 2.80p | 14-day rolling average |
| Cognitive-Motor Performance | 28% | 2.80p | 14-day rolling average |
| Perceived Fatigue (PSE) | 16% | 1.60p | 14-day rolling average |
Performance sub-block (2.80p):
| Test | Weight | Max | Measures |
|---|---|---|---|
| Reaction Time (VR) | 30% | 0.84p | Visual-motor processing speed |
| Go/No-Go (Stroop) | 30% | 0.84p | Inhibitory control + decision throughput |
| Number Sequence | 25% | 0.70p | Visual search + motor precision + working memory |
| CPS/APM | 15% | 0.42p | Neuromuscular drive (finger tapping) |
All transfer functions use continuous linear interpolation (no discrete steps) with a +/-4% noise zone and a hard cap at -20% from baseline. The mathematical model is fully documented in the internal Technical Log.
Since v3.1 (April 2026), two performance blocks capture scientifically-validated secondary metrics that feed a composite scoring formula: Go/No-Go additionally records the Stroop Effect (reaction time cost under colour-word interference, Meeusen et al. 2013) as a direct marker of prefrontal inhibitory control under fatigue; CPS/APM additionally records Peak APM, Sustain Ratio and Decay Slope as a neuromuscular fatigue signature. Both blocks combine primary and secondary metrics via a 70 % primary + 30 % advanced sub-metric formula, with per-component clamps (+/-40 % variation) to prevent single-outlier domination. Legacy entries without the new fields transparently fall back to the primary-only formula (backward-compatible migration, no score discontinuity).
Adapted from Gabbett's ACWR (2016, British Journal of Sports Medicine). The daily fatigue score is inverted to create a load index: Load = 1 - (score/10). The ratio of 7-day acute load to 28-day chronic load identifies risk zones: optimal (0.80-1.30), risk (1.30-1.50), and critical overload (>1.50). Validated prospectively by Hulin et al. (2016) and Murray et al. (2017).
First known implementation of ACWR on real physiological data in esports.
Based on Meeusen et al. (2013) ECSS consensus on overreaching. Compares the percentile rank of today's HRV score against today's performance score within the player's 14-day distribution. When these diverge (+/-20 percentiles), the system identifies the type of fatigue -- autonomic stress, cognitive fatigue, global overreaching, or a peaking window -- enabling targeted intervention rather than generic load reduction.
Impulse-response model adapted from Banister et al. (1975), updated by Clarke & Skiba (2013). Tracks each player's individual recovery curve after match days (D+1, D+2, D+3 vs pre-match baseline). Used for lineup decisions in Bo3/Bo5 formats and weekend tournaments. Also modulates D+3 projections to prevent false declining trends during normal post-match recovery cycles.
effectiveTotal = total x (sleepH / 5.5)| Authentication | Firebase Anonymous Auth (unique UID per session). PIN-based player login with SHA-256 hashing (Web Crypto API) + salted fallback. Rate limiting: 3 failed attempts -> 60s lockout. |
| Data at rest | Firestore (Google Cloud, EU region) with security rules requiring request.auth != null on all collections. Local mirror in browser localStorage for offline-first capability. |
| Data in transit | HTTPS enforced via Netlify CDN. All Firebase SDK connections use TLS 1.2+. |
| Consent | Explicit consent modal (GDPR Art. 6/7) shown before first access. Bilingual (ES/EN). Covers: intellectual property, health data processing, right to erasure, confidentiality. |
| Right to Erasure | GDPR Art. 17 compliance. Data deletion requests via fitforesports@gmail.com. Staff has built-in data management tools for selective metric deletion with automatic score recalculation. Maximum response time: 30 days. |
| IP Protection | Scoring algorithm, transfer functions, and diagnostic profiles are proprietary (authorship registration active). License agreement prohibits reverse engineering. Cloud Functions migration planned for server-side IP protection. |
Complementing the internal load model, FitForEsports includes a complete external workload tracking system based on the Session-RPE method (Foster, 1998). Staff logs daily training sessions (Scrims, SoloQ, VOD Review, Gym, Official Matches) with configurable duration and intensity factors.
External ACSR: An external Acute:Chronic ratio is computed from training load data (7d acute / 28d chronic), using the same Gabbett (2016) framework as the internal ACSR. The same zone thresholds apply (0.80–1.30 optimal, 1.30–1.50 risk, >1.50 critical).
Efficiency Index — 5-zone integrated classifier: The cross-reference between internal ACSR (fatigue response) and external ACSR (training load applied) is formalised as a clinical classifier with 5 diagnostic zones and specific prescriptions. BALANCED: equilibrium, sustainable maintenance state. ADAPTATION: high external load well absorbed — peak window pre-competition. OVERREACHING: high load plus high internal fatigue — expected during intentional loading, plan deload within 7–10 days. MALADAPTATION: elevated internal fatigue without corresponding training load — the key clinical signal, consistent with the non-training fatigue concept described in Meeusen et al. (2013) ECSS/ACSM consensus statement as an early marker of subclinical illness, sleep debt, or psychological load; prescription includes ruling out illness first and mandatory medical consultation if it persists beyond 5 days. FRESH: low load, low fatigue — safe to ramp up volume or correct pre-taper state. Each zone includes a staff-facing prescription with concrete temporal thresholds (3–5 day monitoring, 7–10 day deload, 5-day medical consultation in MALADAPTATION).
The system includes a monthly heatmap calendar, team roster weekly overview, copy/paste functionality for rapid data entry, automatic match day session suggestions, load distribution analysis by activity type, and weekly summaries cross-referenced with internal fatigue scores. Based on the internal:external load relationship described by Impellizzeri et al. (2004).
Complementing the daily scoring engine, FitForEsports v3.1 includes a dedicated Training Zone module for player-driven skill acquisition. Players can run unlimited practice sessions on the 4 performance tests without affecting their daily fatigue score. Practice and fatigue are treated as orthogonal axes: skill evolves over time while fatigue fluctuates around a stable skill baseline. Conflating them would contaminate both measurements.
Strict data separation: Training sessions persist to a dedicated Firestore collection (training_logs), completely isolated from the checkins collection that feeds the scoring engine. The scoring engine never reads training data. Practice immediately before a check-in cannot contaminate the daily fatigue measurement -- a critical invariant for scientific validity.
Private progress view for players: Each player sees their own personal bests, 10-session rolling medians, 14-day progression sparklines, a 30-day activity calendar heatmap, and 13 achievement milestones (9 volume-based always visible, 4 performance-based as surprise unlocks). All metrics are framed against the player's own historical baseline -- no peer comparisons, no ranking, no judgmental colour coding.
Staff visibility -- volume only: Within the Performance Analysis dashboard, staff see training volume per player (session counts per test, 14-day activity calendar) but no performance metrics from training sessions. This preserves the player's private territory around deliberate practice while giving staff the information needed to detect overtraining patterns. The decision to expose volume but not scores is deliberate: it avoids the performance pressure dynamic ("why did you do badly in practice today?") that would compromise the player's intrinsic motivation to self-practice.
Nocebo-safe design: The stats view uses only motivational framing (personal bests, streaks, milestones, consistency indicators). There are no declining-trend warnings, no red arrows, no "you are getting worse" signals. If longitudinal regression is detected, it surfaces only in the staff check-in dashboard -- never in the player-facing Training Zone.
Foster, C. et al. (2001). A new approach to monitoring exercise training. J. Strength & Conditioning Res., 15(1), 109–115.
Impellizzeri, F.M. et al. (2004). Use of RPE-based training load in soccer. Med. Sci. Sports Exerc., 36(6), 1042–1047.
Gabbett, T.J. (2016). The training-injury prevention paradox. BJSM, 50(5), 273–280.
Meeusen, R. et al. (2013). Prevention, diagnosis and treatment of overtraining syndrome. ECSS/ACSM consensus statement.
Banister, E.W. et al. (1975). A systems model of training for athletic performance. Australian J. Sports Med., 7, 57-61.
Kiviniemi, A.M. et al. (2010). Daily exercise prescription on the basis of HR variability. EJAP, 108(5), 897-904.
Plews, D.J. et al. (2012). Training adaptation and HRV in elite endurance athletes. IJSPP, 7(2), 109-117.
Banks, S. & Dinges, D.F. (2007). Behavioral and physiological consequences of sleep restriction. J. Clinical Sleep Med., 3(5), 519-528.
Foster, C. (1998). Monitoring training in athletes with reference to overtraining syndrome. Med. Sci. Sports Exerc., 30(7), 1164-1168.
Armstrong, L.E. et al. (2012). Mild dehydration affects mood in healthy young women. J. Nutrition, 142(2), 382-388.
Hulin, B.T. et al. (2016). The acute:chronic workload ratio predicts injury. BJSM, 50(4), 231-236.
Clarke, D.C. & Skiba, P.F. (2013). Rationale and resources for teaching the mathematical modeling of athletic training. Advances in Physiology Education, 37(2), 134-152.
FitForEsports es una plataforma de monitorizacion de fatiga en tiempo real disenada para organizaciones profesionales de esports. Integra datos biometricos, cognitivos y subjetivos en una unica puntuacion diaria (0-10) que cuantifica la disponibilidad competitiva de cada jugador.
El sistema recoge datos de cuatro bloques fisiologicos y cognitivos independientes: recuperacion autonomica (HRV), arquitectura del sueno, rendimiento cognitivo-motor (4 tests) y fatiga percibida. Cada bloque aporta un componente ponderado a la puntuacion global, comparado contra el baseline individual del jugador de 14-21 dias.
La plataforma se despliega como una aplicacion web de pagina unica accesible desde cualquier dispositivo, con Firebase Firestore como backend cloud para sincronizacion entre dispositivos.
| Bloque | Peso | Puntos Max. | Baseline |
|---|---|---|---|
| HRV (Recuperacion Autonomica) | 28% | 2.80p | Media movil 21 dias |
| Calidad de Sueno | 28% | 2.80p | Media movil 14 dias |
| Rendimiento Cognitivo-Motor | 28% | 2.80p | Media movil 14 dias |
| Fatiga Percibida (PSE) | 16% | 1.60p | Media movil 14 dias |
Sub-bloque de Rendimiento (2.80p):
| Test | Peso | Max | Mide |
|---|---|---|---|
| Tiempo de Reaccion (VR) | 30% | 0.84p | Velocidad de procesamiento visomotor |
| Go/No-Go (Stroop) | 30% | 0.84p | Control inhibitorio + throughput de decision |
| Number Sequence | 25% | 0.70p | Busqueda visual + precision motora + memoria de trabajo |
| CPS/APM | 15% | 0.42p | Activacion neuromuscular (finger tapping) |
Todas las funciones de transferencia usan interpolacion lineal continua (sin escalones discretos) con zona de ruido de +/-4% y un tope rigido en -20% respecto al baseline. El modelo matematico esta completamente documentado en el Technical Log interno.
Desde v3.1 (abril 2026), dos bloques de rendimiento capturan metricas secundarias con validacion cientifica que alimentan una formula de puntuacion composite: Go/No-Go registra adicionalmente el Stroop Effect (coste de tiempo de reaccion bajo interferencia color-palabra, Meeusen et al. 2013) como marcador directo del control inhibitorio prefrontal bajo fatiga; CPS/APM registra adicionalmente Peak APM, Sustain Ratio y Decay Slope como firma de fatiga neuromuscular. Ambos bloques combinan la metrica primaria y la secundaria mediante una formula 70 % primaria + 30 % sub-metrica avanzada, con clamps por componente (+/-40 % de variacion) para evitar que un unico outlier domine el score. Los entries historicos sin los campos nuevos caen transparentemente al calculo con solo la metrica primaria (migracion retrocompatible, sin discontinuidad en el score).
Adaptado del ACWR de Gabbett (2016, British Journal of Sports Medicine). La puntuacion diaria de fatiga se invierte para crear un indice de carga: Carga = 1 - (score/10). El ratio entre la carga aguda de 7 dias y la carga cronica de 28 dias identifica zonas de riesgo: optima (0.80-1.30), riesgo (1.30-1.50) y sobrecarga critica (>1.50). Validado prospectivamente por Hulin et al. (2016) y Murray et al. (2017).
Primera implementacion conocida del ACWR sobre datos fisiologicos reales en esports.
Basado en el consenso ECSS de Meeusen et al. (2013) sobre sobreentrenamiento. Compara el rango percentil de la puntuacion HRV del dia con la puntuacion de rendimiento dentro de la distribucion de 14 dias del jugador. Cuando divergen (+/-20 percentiles), el sistema identifica el tipo de fatiga -- estres autonomico, fatiga cognitiva, sobreentrenamiento global o ventana de peaking -- permitiendo una intervencion dirigida en lugar de una reduccion generica de carga.
Modelo de impulso-respuesta adaptado de Banister et al. (1975), actualizado por Clarke & Skiba (2013). Rastrea la curva de recuperacion individual de cada jugador tras dias de partido (D+1, D+2, D+3 vs baseline pre-partido). Utilizado para decisiones de alineacion en formatos Bo3/Bo5 y torneos de fin de semana. Tambien modula las proyecciones D+3 para evitar falsas tendencias descendentes durante ciclos normales de recuperacion post-partido.
effectiveTotal = total x (sleepH / 5.5)| Autenticacion | Firebase Anonymous Auth (UID unico por sesion). Login de jugador basado en PIN con hashing SHA-256 (Web Crypto API) + fallback con salt. Rate limiting: 3 intentos fallidos -> bloqueo 60s. |
| Datos en reposo | Firestore (Google Cloud, region UE) con reglas de seguridad que requieren request.auth != null en todas las colecciones. Mirror local en localStorage del navegador para capacidad offline-first. |
| Datos en transito | HTTPS forzado via Netlify CDN. Todas las conexiones del SDK de Firebase usan TLS 1.2+. |
| Consentimiento | Modal de consentimiento explicito (RGPD Art. 6/7) mostrado antes del primer acceso. Bilingue (ES/EN). Cubre: propiedad intelectual, tratamiento de datos de salud, derecho de supresion, confidencialidad. |
| Derecho de Supresion | Cumplimiento RGPD Art. 17. Solicitudes de eliminacion de datos via fitforesports@gmail.com. El staff dispone de herramientas integradas de gestion de datos para eliminacion selectiva de metricas con recalculo automatico del score. Tiempo maximo de respuesta: 30 dias. |
| Proteccion PI | El algoritmo de puntuacion, las funciones de transferencia y los perfiles diagnosticos son propietarios (registro de autoria activo). El contrato de licencia prohibe la ingenieria inversa. Migracion a Cloud Functions planificada para proteccion de PI del lado servidor. |
Complementando el modelo de carga interna, FitForEsports incluye un sistema completo de tracking de carga externa basado en el método Session-RPE (Foster, 1998). El staff registra sesiones diarias de entrenamiento (Scrims, SoloQ, Revisión de VOD, Gimnasio, Partidos Oficiales) con duración y factores de intensidad configurables.
ACSR Externo: Se calcula un ratio Agudo:Crónico externo a partir de los datos de carga de entrenamiento (aguda 7d / crónica 28d), usando el mismo framework de Gabbett (2016) que el ACSR interno. Los mismos umbrales de zona aplican (0.80–1.30 óptimo, 1.30–1.50 riesgo, >1.50 crítico).
Indice de Eficiencia — clasificador integrado de 5 zonas: El cruce entre ACSR interno (respuesta de fatiga) y ACSR externo (carga aplicada) se formaliza como un clasificador clinico con 5 zonas diagnosticas y prescripciones especificas. EQUILIBRIO: estado sostenible de mantenimiento. ADAPTACION: carga externa alta bien absorbida — ventana de pico pre-competicion. SOBRECARGA: carga alta y fatiga interna alta — respuesta esperada a una fase de carga intencional, planificar deload en 7–10 dias. DESADAPTACION: fatiga interna elevada sin carga de entrenamiento que la justifique — la senal clinica clave, coherente con el concepto non-training fatigue descrito en el consensus statement ECSS/ACSM de Meeusen et al. (2013) como marcador temprano de enfermedad subclinica, deuda de sueno o carga psicologica; la prescripcion incluye descartar enfermedad primero y consulta medica obligatoria si persiste mas de 5 dias. RECUPERADO: carga baja y fatiga baja — seguro para incrementar volumen o estado pre-taper correcto. Cada zona incluye una prescripcion dirigida al staff con umbrales temporales concretos (3–5 dias de monitorizacion, 7–10 dias de deload, consulta medica a los 5 dias en DESADAPTACION).
El sistema incluye calendario mensual con heatmap, vista de roster semanal del equipo, funcionalidad de copiar/pegar para entrada rápida de datos, sugerencias automáticas de sesión en días de partido, análisis de distribución de carga por tipo de actividad, y resúmenes semanales cruzados con los scores internos de fatiga. Basado en la relación carga interna:externa descrita por Impellizzeri et al. (2004).
Complementando el motor de scoring diario, FitForEsports v3.1 incluye un modulo Training Zone dedicado a la adquisicion de habilidad por iniciativa del jugador. Los jugadores pueden realizar sesiones de practica ilimitadas en los 4 tests de rendimiento sin afectar a su score de fatiga diario. Practica y fatiga se tratan como ejes ortogonales: la habilidad evoluciona con el tiempo mientras que la fatiga fluctua alrededor de un baseline estable de habilidad. Confundirlos contaminaria ambas mediciones.
Separacion estricta de datos: Las sesiones de entrenamiento se persisten en una coleccion de Firestore dedicada (training_logs), completamente aislada de la coleccion checkins que alimenta el motor de scoring. El motor de scoring nunca lee datos de entrenamiento. Practicar inmediatamente antes de un check-in no puede contaminar la medicion de fatiga diaria -- una invariante critica para la validez cientifica.
Vista privada de progreso para el jugador: Cada jugador ve sus propios records personales, medianas rolling de las ultimas 10 sesiones, sparklines de progresion de 14 dias, un heatmap calendario de actividad de 30 dias, y 13 hitos de logro (9 basados en volumen siempre visibles, 4 basados en rendimiento como desbloqueables sorpresa). Todas las metricas se enmarcan contra el propio historico del jugador -- sin comparaciones con companeros, sin ranking, sin codificacion cromatica de juicio.
Visibilidad para staff -- solo volumen: Dentro del dashboard de Performance Analysis, el staff ve el volumen de entrenamiento por jugador (contadores de sesiones por test, calendario de actividad de 14 dias) pero ningun dato de rendimiento de las sesiones de entrenamiento. Esto preserva el territorio privado del jugador en torno a la practica deliberada mientras da al staff la informacion necesaria para detectar patrones de sobreentrenamiento. La decision de exponer volumen pero no resultados es deliberada: evita la dinamica de presion de rendimiento ("por que has sacado mal esto en practica hoy?") que comprometeria la motivacion intrinseca del jugador a auto-practicar.
Diseno nocebo-safe: La vista de estadisticas usa unicamente framing motivacional (records personales, rachas, hitos, indicadores de consistencia). No hay avisos de tendencia descendente, no hay flechas rojas, no hay senales de "estas empeorando". Si se detecta regresion longitudinal, solo aparece en el dashboard de check-in del staff -- nunca en el Training Zone visible para el jugador.
Foster, C. et al. (2001). A new approach to monitoring exercise training. J. Strength & Conditioning Res., 15(1), 109–115.
Impellizzeri, F.M. et al. (2004). Use of RPE-based training load in soccer. Med. Sci. Sports Exerc., 36(6), 1042–1047.
Gabbett, T.J. (2016). The training-injury prevention paradox. BJSM, 50(5), 273–280.
Meeusen, R. et al. (2013). Prevention, diagnosis and treatment of overtraining syndrome. ECSS/ACSM consensus statement.
Banister, E.W. et al. (1975). A systems model of training for athletic performance. Australian J. Sports Med., 7, 57-61.
Kiviniemi, A.M. et al. (2010). Daily exercise prescription on the basis of HR variability. EJAP, 108(5), 897-904.
Plews, D.J. et al. (2012). Training adaptation and HRV in elite endurance athletes. IJSPP, 7(2), 109-117.
Banks, S. & Dinges, D.F. (2007). Behavioral and physiological consequences of sleep restriction. J. Clinical Sleep Med., 3(5), 519-528.
Foster, C. (1998). Monitoring training in athletes with reference to overtraining syndrome. Med. Sci. Sports Exerc., 30(7), 1164-1168.
Armstrong, L.E. et al. (2012). Mild dehydration affects mood in healthy young women. J. Nutrition, 142(2), 382-388.
Hulin, B.T. et al. (2016). The acute:chronic workload ratio predicts injury. BJSM, 50(4), 231-236.
Clarke, D.C. & Skiba, P.F. (2013). Rationale and resources for teaching the mathematical modeling of athletic training. Advances in Physiology Education, 37(2), 134-152.