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.
Cognitive-Motor Profiling (v3.3): Radar/spider charts visualise each player's skill profile across trainable dimensions, normalised against manually-defined elite benchmarks (VR 120ms, Go/No-Go 50pts, Number Sequence 10s). Two separate radar views enforce strict data-source separation: the player-facing radar (Training Zone) uses practice session data (4 axes: RT, Go/No-Go, Sequence, CPS) while the staff-facing radar (Performance Detail) uses check-in data only (3 axes: Reaction, Attention, Motor). CPS/APM is excluded from the staff radar because it measures SNP fatigue state, not a trainable skill. The staff radar displays two overlaid polygons: a solid 14-day profile and a dashed today snapshot, enabling the coach to distinguish stable strengths/weaknesses from acute daily fluctuation. This is the prescriptive tool for individualised training: "this player needs Go/No-Go work" or "focus on Number Sequence."
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 monitorización de fatiga en tiempo real diseñada para organizaciones profesionales de esports. Integra datos biométricos, cognitivos y subjetivos en una única puntuación diaria (0-10) que cuantifica la disponibilidad competitiva de cada jugador.
El sistema recoge datos de cuatro bloques fisiológicos y cognitivos independientes: recuperación autonómica (HRV), arquitectura del sueño, rendimiento cognitivo-motor (4 tests) y fatiga percibida. Cada bloque aporta un componente ponderado a la puntuación global, comparado contra el baseline individual del jugador de 14-21 días.
La plataforma se despliega como una aplicación web de página única accesible desde cualquier dispositivo, con Firebase Firestore como backend cloud para sincronización entre dispositivos.
| Bloque | Peso | Puntos Max. | Baseline |
|---|---|---|---|
| HRV (Recuperación Autonómica) | 28% | 2.80p | Media móvil 21 días |
| Calidad de Sueño | 28% | 2.80p | Media móvil 14 días |
| Rendimiento Cognitivo-Motor | 28% | 2.80p | Media móvil 14 días |
| Fatiga Percibida (PSE) | 16% | 1.60p | Media móvil 14 días |
Sub-bloque de Rendimiento (2.80p):
| Test | Peso | Max | Mide |
|---|---|---|---|
| Tiempo de Reacción (VR) | 30% | 0.84p | Velocidad de procesamiento visomotor |
| Go/No-Go (Stroop) | 30% | 0.84p | Control inhibitorio + throughput de decisión |
| Number Sequence | 25% | 0.70p | Búsqueda visual + precisión motora + memoria de trabajo |
| CPS/APM | 15% | 0.42p | Activación neuromuscular (finger tapping) |
Todas las funciones de transferencia usan interpolación lineal continua (sin escalones discretos) con zona de ruido de +/-4% y un tope rígido en -20% respecto al baseline. El modelo matemático está completamente documentado en el Technical Log interno.
Desde v3.1 (abril 2026), dos bloques de rendimiento capturan métricas secundarias con validación científica que alimentan una fórmula de puntuación composite: Go/No-Go registra adicionalmente el Stroop Effect (coste de tiempo de reacción 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 métrica primaria y la secundaria mediante una fórmula 70 % primaria + 30 % sub-métrica avanzada, con clamps por componente (+/-40 % de variación) para evitar que un único outlier domine el score. Los entries históricos sin los campos nuevos caen transparentemente al cálculo con solo la métrica primaria (migración retrocompatible, sin discontinuidad en el score).
Adaptado del ACWR de Gabbett (2016, British Journal of Sports Medicine). La puntuación diaria de fatiga se invierte para crear un índice de carga: Carga = 1 - (score/10). El ratio entre la carga aguda de 7 días y la carga crónica de 28 días identifica zonas de riesgo: óptima (0.80-1.30), riesgo (1.30-1.50) y sobrecarga crítica (>1.50). Validado prospectivamente por Hulin et al. (2016) y Murray et al. (2017).
Primera implementación conocida del ACWR sobre datos fisiológicos reales en esports.
Basado en el consenso ECSS de Meeusen et al. (2013) sobre sobreentrenamiento. Compara el rango percentil de la puntuación HRV del dia con la puntuación de rendimiento dentro de la distribución de 14 días 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 intervención dirigida en lugar de una reducción genérica de carga.
Modelo de impulso-respuesta adaptado de Banister et al. (1975), actualizado por Clarke & Skiba (2013). Rastrea la curva de recuperación individual de cada jugador tras días de partido (D+1, D+2, D+3 vs baseline pre-partido). Utilizado para decisiónes de alineación en formatos Bo3/Bo5 y torneos de fin de semana. También modula las proyecciones D+3 para evitar falsas tendencias descendentes durante ciclos normales de recuperación post-partido.
effectiveTotal = total x (sleepH / 5.5)| Autenticación | Firebase Anonymous Auth (UID unico por sesión). 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, región 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 supresión, confidencialidad. |
| Derecho de Supresión | Cumplimiento RGPD Art. 17. Solicitudes de eliminación de datos via fitforesports@gmail.com. El staff dispone de herramientas integradas de gestion de datos para eliminación selectiva de métricas con recálculo automático del score. Tiempo maximo de respuesta: 30 días. |
| Protección PI | El algoritmo de puntuación, las funciones de transferencia y los perfiles diagnósticos son propietarios (registro de autoria activo). El contrato de licencia prohibe la ingeniería inversa. Migración a Cloud Functions planificada para protección 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).
Índice 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 clínico con 5 zonas diagnósticas y prescripciónes específicas. EQUILIBRIO: estado sostenible de mantenimiento. ADAPTACION: carga externa alta bien absorbida — ventana de pico pre-competición. SOBRECARGA: carga alta y fatiga interna alta — respuesta esperada a una fase de carga intencional, planificar deload en 7–10 días. DESADAPTACION: fatiga interna elevada sin carga de entrenamiento que la justifique — la señal clínica 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 subclínica, deuda de sueño o carga psicológica; la prescripción incluye descartar enfermedad primero y consulta médica obligatoria si persiste mas de 5 días. RECUPERADO: carga baja y fatiga baja — seguro para incrementar volumen o estado pre-taper correcto. Cada zona incluye una prescripción dirigida al staff con umbrales temporales concretos (3–5 días de monitorización, 7–10 días de deload, consulta médica a los 5 días 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 módulo Training Zone dedicado a la adquisición de habilidad por iniciativa del jugador. Los jugadores pueden realizar sesiones de práctica ilimitadas en los 4 tests de rendimiento sin afectar a su score de fatiga diario. Práctica 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 mediciónes.
Separación estricta de datos: Las sesiones de entrenamiento se persisten en una colección de Firestore dedicada (training_logs), completamente aislada de la colección checkins que alimenta el motor de scoring. El motor de scoring nunca lee datos de entrenamiento. Prácticar inmediatamente antes de un check-in no puede contaminar la medición de fatiga diaria -- una invariante crítica para la validez científica.
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 días, un heatmap calendario de actividad de 30 días, y 13 hitos de logro (9 basados en volumen siempre visibles, 4 basados en rendimiento como desbloqueables sorpresa). Todas las métricas se enmarcan contra el propio historico del jugador -- sin comparaciones con compañeros, sin ranking, sin codificacion cromática 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 días) pero ningún dato de rendimiento de las sesiones de entrenamiento. Esto preserva el territorio privado del jugador en torno a la práctica deliberada mientras da al staff la información necesaria para detectar patrones de sobreentrenamiento. La decisión de exponer volumen pero no resultados es deliberada: evita la dinámica de presion de rendimiento ("por que has sacado mal esto en práctica hoy?") que comprometeria la motivación intrínseca del jugador a auto-prácticar.
Diseño nocebo-safe: La vista de estadísticas usa únicamente framing motivacional (records personales, rachas, hitos, indicadores de consistencia). No hay avisos de tendencia descendente, no hay flechas rojas, no hay señales de "estás empeorando". Si se detecta regresión longitudinal, solo aparece en el dashboard de check-in del staff -- nunca en el Training Zone visible para el jugador.
Perfilado Cognitivo-Motor (v3.3): Gráficos radar/spider visualizan el perfil de habilidades de cada jugador en dimensiones entrenables, normalizado contra benchmarks elite definidos manualmente (VR 120ms, Go/No-Go 50pts, Number Sequence 10s). Dos vistas radar separadas con estricta separación de fuentes de datos: el radar del jugador (Training Zone) usa datos de sesiones de práctica (4 ejes: RT, Go/No-Go, Secuencia, CPS) mientras que el radar del staff (Performance Detail) usa exclusivamente datos de check-in (3 ejes: Reacción, Atención, Motor). CPS/APM queda excluido del radar staff porque mide fatiga del SNP, no una capacidad entrenable. El radar staff muestra dos polígonos superpuestos: un perfil sólido de 14 días y un snapshot punteado de hoy, permitiendo al preparador distinguir fortalezas/debilidades estables de fluctuaciones agudas diarias. Esta es la herramienta prescriptiva para entrenamiento individualizado: "este jugador necesita trabajo de Go/No-Go" o "priorizar Number Sequence."
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.