🧠 Resumen ejecutivo para IA
Genera un texto breve para pegar en Claude y crear un PPT de hasta 2 diapositivas con conclusiones accionables para preparador físico, entrenador, cuerpo médico y dirección deportiva.
Cargá un Excel/CSV para generar el resumen ejecutivo.
📌 Resumen Ejecutivo — Dirección Deportiva
Fundamento: El z-score individual estandariza cada valor respecto a la propia línea base histórica del jugador (no del grupo), evitando comparar perfiles fisiológicos distintos (Hopkins, 2000 — "individualising" en monitoreo de carga). Es la primera capa de un sistema de alerta temprana: valores |z|>2 en variables de carga externa se asocian a mayor probabilidad de desadaptación aguda cuando coinciden con otras señales (ACWR, monotonía). Se recomienda usar este semáforo como triage diario, no como diagnóstico aislado.
Por qué EWMA y no solo media móvil: la media móvil simple (MM7) pondera igual todos los días de la ventana, mientras que la EWMA (span=7, α≈0.25) da más peso a los días recientes, detectando cambios de tendencia con menor retraso (Menaspà, 2017; método adoptado por sistemas GPS profesionales tipo Catapult/STATSports). Las bandas de Bollinger (±2 SD sobre MM7) aplican control estadístico de proceso (SPC): un día fuera del corredor no es solo "alto", es estadísticamente atípico respecto a la variabilidad reciente del propio jugador, señal más específica que un umbral fijo. Las zonas de intensidad por terciles (P33/P66) permiten leer de un vistazo si la sesión fue de carga baja, media o alta en relación al período analizado, sin depender de valores absolutos que varían por posición o rol táctico.
Contexto y limitaciones del ACWR: el ratio agudo:crónico es la métrica de referencia para relacionar carga reciente con capacidad de tolerancia construida en el mesociclo previo, pero ha recibido crítica metodológica (Impellizzeri et al., 2020) por autocorrelación matemática en la forma coupled y por sensibilidad al método de cálculo (RA vs EWMA). Por eso este panel muestra ambos métodos y ambas variantes en paralelo: permite contrastar señales antes de tomar una decisión de carga, en lugar de confiar en un único número. La monotonía (variabilidad diaria baja = rutina repetitiva) y el strain (carga semanal × monotonía) de Foster (1998, 2001) complementan al ACWR detectando otro tipo de riesgo: la falta de variación en el estímulo, asociada a sobreentrenamiento incluso con cargas absolutas moderadas.
Uso recomendado: esta vista es la herramienta de gestión de plantel por excelencia — responde "¿quién entrena más/menos que el grupo?" y "¿quién tiene un patrón de carga inconsistente (CV alto)?". El boxplot con outliers ayuda a diferenciar entre un jugador con carga alta pero estable de otro con picos aislados (ej. sesiones de recuperación de lesión combinadas con partidos completos), información clave para individualizar la planificación semanal.
Heatmap ∑T FWF — "¿qué tan alto está hoy, comparado con su propia historia?" Para cada variable y cada ventana τ, calcula la carga acumulada y la ubica como percentil histórico del jugador: percentil histórico = si dice 90%, significa que este es uno de los valores más altos que tuvo ese jugador en todo su historial (no significa "90% de riesgo"). La columna ★ GLOBAL promedia todas las variables para esa ventana, como una foto resumen. Heatmap ΔT FWF — "¿pegó un salto raro de una sesión a la otra?" Muestra el cambio respecto a la sesión anterior en z (z-score: cuántos desvíos estándar se alejó de lo que ese jugador viene haciendo; z cerca de 0 = normal para él, z alto en positivo o negativo = salto inusual). Heatmap de equipo — compara a todo el plantel en la ventana τ marcada con ★ (la más cercana a la elegida abajo), ordenado de mayor a menor carga aguda.
Cómo leer los colores: en los heatmaps de percentil, verde/frío = por debajo de lo habitual del jugador, ámbar = en su rango normal, rojo/caliente = por encima de lo habitual — igual criterio de semáforo que en el resto del dashboard (). En el heatmap ΔT, verde = bajó carga respecto a la sesión anterior, rojo = subió fuerte. Ni un percentil alto ni un salto en rojo son automáticamente un problema: pueden responder a una planificación intencional (ej. sesión de desarrollo antes de partido); son una señal para revisar con contexto, no una alarma definitiva.
Fórmulas y qué significa cada dato de la celda (v75):
- Ecuación 9 — AW(τ):
AW(τ) = Σ (carga de los últimos τ días). Es simplemente la suma de la variable elegida (ej. distancia total) en la ventana de τ días que se está mirando en esa fila (τ=3d, τ=7d, τ=14d, etc.). No es un promedio ni un puntaje: es el total acumulado de trabajo real en esa ventana. En el código esfwfCell().aw. - Ecuación 17 — ΔACW:
ΔACW = AW(τ) actual − AW(τ) de la ventana anterior. Es la diferencia entre la carga acumulada de la ventana más reciente y la de la ventana inmediatamente anterior (mismo τ, un paso atrás en el tiempo): si es positivo, el jugador acumuló más carga que en el período previo; si es negativo, acumuló menos. En el código esfwfCell().acw, y su versión en desvíos estándar (z-score) esfwfCell().acwZ, la que se colorea en el heatmap ΔT FWF. - Qué es cada símbolo dentro de una celda del heatmap ∑T FWF:
- AW = ... → el valor de la Ecuación 9 de arriba: la carga total acumulada en esa ventana τ, en las unidades originales de la variable (ej. metros, nº de sprints).
- P... (texto entre paréntesis) → el percentil histórico de ese AW(τ) respecto a todas las ventanas anteriores del mismo jugador (90% = de los valores más altos que tuvo nunca).
- Δ... (el triángulo/delta) → es exactamente la Ecuación 17: cuánto cambió el AW(τ) de esta ventana respecto a la ventana anterior, en las mismas unidades (Δ+120 = acumuló 120 unidades más que la vez anterior; Δ-80 = acumuló 80 menos).
- n=... / ⚠️n=... → cuántos datos históricos del jugador se usaron para calcular el percentil y el z-score de esa celda; el ⚠️ avisa cuando el historial todavía es corto para esa ventana τ (lectura preliminar).
Filosofía de diseño: este explorador replica la lógica de herramientas de BI (Tableau/Power BI) para que el cuerpo técnico pueda formular preguntas ad-hoc sin depender de un desarrollador — por ejemplo cruzar posición × microciclo × distancia a alta velocidad, o correlacionar RPE subjetivo con distancia total. La matriz de correlación (Pearson r) es útil para validar si dos métricas GPS aportan información redundante (r>0.8) o complementaria, decisión relevante al elegir qué variables monitorear diariamente sin sobrecargar al cuerpo técnico de datos.
Filas (eje X)
Valores (hasta 6 numéricas; texto permitido en Dispersión)
Color / Serie
Marco conceptual: este semáforo integra un modelo de "carga combinada" (Windt & Gabbett, 2017): ninguna métrica aislada predice riesgo de forma confiable, pero la combinación de carga externa (ACWR, z-score), carga interna/percibida (RPE, wellness) y señales clínicas (dolor referido) mejora la sensibilidad de detección. El dolor referido se trata como bloqueante absoluto siguiendo el principio de "red flag clínica" — ninguna variable de carga compensa un síntoma físico activo, decisión que debe quedar siempre bajo criterio médico final y no solo algorítmico.
📖 Cómo se calcula y cómo decidir
Reglas de riesgo (se acumulan puntos 0–100, mismo motor que el tab Estado · Gauges):
• ACWR > 1.5 → +30 (Gabbett 2016) · ACWR 1.3–1.5 → +15 · ACWR < 0.80 sostenido → +10 (detraining)
• Z-score de carga (último valor vs media personal) > 2 → +20 · 1.5–2 → +10
• Monotonía semanal > 2.5 → +15 (Foster 2001) · Strain > P90 personal → +10 (Foster 1998)
• Dolor / molestia referida (columna de dolor, si existe en el archivo, valor > 0) → +35 (bloqueante, prioridad clínica)
• Wellness compuesto (sueño+fatiga+estrés+ánimo, si existen) por debajo de su media personal −1 SD → +15
• Historial < 7 días → el índice se marca como provisional
Semáforo final: 🟢 APTO — Entrenamiento normal (0–24 pts, sin dolor) · 🟠 APTO CON CONTROL (25–49 pts: ajustar volumen/intensidad, vigilancia médica) · 🔴 NO APTO / RESTRINGIR (≥50 pts o dolor referido: derivar a fisioterapia/médico antes de entrenar con el grupo).
El dolor referido es bloqueante por sí solo: ningún valor de ACWR compensa una molestia física activa.
playerMetrics() — el mismo motor estadístico usado en ACWR y Estado. Este
dashboard no ingiere datos subjetivos de bienestar, por eso la lógica se basa exclusivamente en la
desviación del dato de GPS del día vs. la media histórica del jugador y en cuántos días consecutivos
se sostiene esa desviación.
⚕️ Esta herramienta prioriza a quién mirar hoy; no es un diagnóstico ni reemplaza la evaluación del cuerpo médico. Validá siempre contexto, minutos y estado del jugador antes de intervenir.
🧭 Qué hace · Cómo lo hace · Por qué · Importancia (carga externa/interna/recuperación)
Qué hace: clasifica el dato de GPS del día elegido en 5 zonas (muy baja / baja / habitual / alta / muy alta) comparándolo contra el historial propio del jugador — nunca contra el promedio del equipo — y marca cuántos días consecutivos sostiene esa desviación.
Cómo lo hace (v82): usa la función compartida pfBaseline() — la MISMA que usa la tabla de
Reporte de Sesión, para que ambas pestañas den siempre el mismo número. El baseline es el historial del
mismo tipo de día (MD) cuando hay ≥5 sesiones propias de ese MD; si no alcanza, cae al historial mixto
(todos los tipos de día). Los días de descanso o sin convocatoria (carga 0) se incluyen como carga real
(metodología ACWR/monotonía: Gabbett 2016, Foster 1998/2001) y nunca se compara contra sesiones futuras a la fecha analizada. La "persistencia"
(días consecutivos) es una pregunta distinta y se mide siempre sobre la serie diaria completa, no sobre el
historial de un solo MD (demasiado disperso — una sesión cada 5-7 días — para sostener ese conteo).
Por qué se hace así: mezclar entrenos y partidos en un mismo z-score infla artificialmente la desviación de cualquier día de partido (los partidos siempre tienen más volumen); y comparar contra el promedio del equipo ignora que cada jugador tiene su propio patrón de esfuerzo (Hopkins, 2000: individualización estadística). El baseline por MD resuelve ambos problemas a la vez.
Importancia para carga externa/interna y recuperación: este árbol es la primera línea de priorización diaria — decide a quién mirar HOY antes de que un patrón de sobrecarga externa (distancia, HSR, aceleraciones) se traduzca en fatiga acumulada, síntomas de carga interna (RPE, wellness) o, en el peor caso, lesión. Un baseline mal construido genera dos riesgos opuestos: falsos positivos que erosionan la confianza del cuerpo técnico en la herramienta, o falsos negativos que dejan pasar una sobrecarga real. Por eso la consistencia entre pestañas no es un detalle técnico — es lo que permite tomar una decisión clínica con un solo número de referencia, no con tres distintos para el mismo caso.
📖 Cómo se clasifica cada hoja
Nodo raíz: z-score del día vs. media histórica del jugador para la variable elegida.
• z > -1 DE → 🟢 Sin acción necesaria.
• -2 DE < z ≤ -1 DE → se cuentan los días consecutivos en este rango:
1–2 días → 🟡 Vigilancia — sin acción inmediata; ≥3 días → 🔴 Reportar a cuerpo médico + cuerpo técnico.
• z ≤ -2 DE → 🔴 Reportar a cuerpo médico + cuerpo técnico (prioritario), sin pasar por el conteo de días consecutivos.
Arrastrá el Excel de partidos aquí o hacé clic para elegirlo
Acepta .xlsx, .xls y .csv — cualquier export GPS de partidos
Columnas requeridas: Distancia Total y Duración/Tiempo (en minutos)
• Máximo = valor más alto de todos los partidos
• Promedio = media de todos los partidos
• Óptimo = (Promedio + Máximo) / 2
• % Volumen = (distancia_sesión ÷ referencia_elegida) × 100
• Intensidad competencia = referencia_elegida ÷ 98 min
• % Intensidad = (m/min_sesión ÷ m/min_competencia) × 100
m/min sesión = columna *Rel del GPS (directo) o valor_absoluto ÷ duración (min)
• 🟢 = dato directo de columna *Rel GPS ≈ = calculado (abs ÷ duración)
📦 Clasificación de Volumen
🟢 ≥90% del objetivo · 🟡 70–89% · 🟠 50–69% · 🔴 <50%
⚡ Clasificación de Intensidad (m/min)
CP.refs/CP_VARS ya
identificaron, sin volver a mapearlas manualmente. El día MD 0 (partido) no se controla.
📅 Semana de sábado a sábado. Domingo = MD+1 = día libre (no se controla Previsto vs Real ese día).
📖 Qué veo aquí / Qué acción tomar
Suma semanal: 🔥 ≥80% del máximo del equipo · ⚡ 60-80% · 💪 40-60% · 📈 20-40% · ❄️ <20%. Acción: si un jugador está en 🔥 varias semanas seguidas, considerá bajarle volumen.
Diferencia % semana a semana: 🟢 <±10% (seguro) · 🟠 10-20% (precaución) · 🔴 >20% (peligro — Gabbett 2016 asocia saltos >20% con más riesgo de lesión). Acción: evitar subir volumen >20% en una semana.
Monotonía = media diaria / desvío diario (Foster 1998). 🟢 ≤2.0 · 🟠 2.0-2.5 · 🔴 >2.5. Acción: si está en rojo, variá más la carga día a día (no repitas la misma sesión todos los días).
Fatiga/Strain = suma semanal × monotonía, comparado contra la media histórica personal de cada jugador (no contra el grupo, porque la carga base difiere por posición). 🟢 ≤ su media · 🟠 media→media+1SD · 🔴 >media+1SD. Acción: priorizar recuperación en los jugadores en rojo.
🧭 Qué hace · Cómo lo hace · Por qué · Importancia (carga externa/interna/recuperación)
Qué hace: ubica la sesión analizada dentro de la distribución histórica del propio jugador para el mismo tipo de día (mismo MD), mostrando el percentil exacto en vez de solo un semáforo verde/amarillo/rojo.
Cómo lo hace: filtra state.rawRows (todo el dataset, no solo el filtro de fecha activo)
por jugador + mismo valor exacto de MD, dentro del rango "Histórico desde/Hasta" que elijas (por defecto,
histórico completo). Requiere un mínimo de 5 sesiones históricas propias de ese MD para considerar el
percentil fiable; con menos, muestra explícitamente "Historial insuficiente" en vez de forzar un cálculo
poco confiable.
Por qué se hace así: los días de partido tienen sistemáticamente más volumen que los entrenos — comparar a un jugador en un MD contra su historial mezclado (entrenos + partidos) subestima artificialmente su media y hace parecer "alto" algo que para él es completamente normal ese día. Individualizar por MD (Hopkins, 2000) es el criterio que mejor previene falsas alarmas de sobrecarga.
Importancia para carga externa/interna y recuperación: esta pestaña es la referencia de mediano/largo plazo — mientras el Árbol de Decisión prioriza a quién mirar HOY, Histórico por MD responde "¿esto que pasó hoy es realmente nuevo para este jugador, o es lo que hace siempre en este tipo de día?". Es la pregunta que evita confundir un patrón de esfuerzo estable (aunque alto) con una señal real de sobrecarga que amerite ajustar la planificación de recuperación de la semana.
📖 Qué veo aquí / Qué acción tomar
Gráfico — vs. su propia historia en ese MD: puntos celestes = sesiones históricas del jugador en ese mismo MD; diamante rojo = sesión analizada. Si el diamante está lejos de su propia nube, la sesión fue atípica para ese jugador en ese MD específico — este es el criterio individual que mejor previene sobrecarga, ya que compara al jugador únicamente contra su propio patrón (Hopkins, 2000: individualización estadística).
Tarjetas de percentil: percentil de la sesión actual respecto al histórico propio del jugador para ese MD. Requieren un mínimo de 5 sesiones históricas para considerarse fiables; con menos, se muestra "Historial insuficiente".
Acción: priorizar revisión de los jugadores cuyo diamante cae lejos de su nube histórica (percentil ≥75% o ≤25%) — son quienes más se desviaron de su propio patrón habitual para este MD.
🧭 Qué hace · Cómo lo hace · Por qué · Importancia (carga externa/interna/recuperación)
Qué hace: muestra, para el día elegido, cómo salió cada jugador en las variables seleccionadas — en términos absolutos (barras) y en términos relativos a su propio historial (tabla de z-score).
Cómo lo hace (v82): la tabla comparativa usa la función compartida pfBaseline() —
la MISMA que usa el Árbol de Decisión — para que el mismo jugador/día/variable dé siempre el mismo z-score
en ambas pestañas. Antes, esta tabla promediaba filas crudas de toda la temporada (incluyendo sesiones
futuras a la fecha analizada), lo que podía dar un número distinto al del Árbol
para el mismo caso — esto ya está corregido.
Por qué se hace así: un reporte de sesión se usa para decidir sobre el día de HOY; comparar contra datos que todavía no existían en ese momento (sesiones futuras) no es una comparación válida para una decisión en tiempo real, aunque sí puede ser útil para un análisis retrospectivo de fin de temporada.
Importancia para carga externa/interna y recuperación: esta tabla es el detalle día-a-día que sostiene la decisión del Árbol — permite ver, variable por variable, si una alerta responde a un pico puntual (una sola métrica atípica) o a una sobrecarga generalizada (varias métricas altas a la vez), lo cual cambia completamente la recomendación de recuperación: un pico aislado en HSR sugiere validar el rol táctico del día, mientras que varias variables altas a la vez sugiere revisar la planificación de la semana completa.
📖 Qué veo aquí / Qué acción tomar
Barras por jugador: 🟢 claramente por encima del grupo (≥ +0.5 SD) · 🟡 en torno al promedio · 🔴 claramente por debajo (≤ -0.5 SD). Línea vertical = promedio de la sesión. Banda celeste + línea violeta = promedio histórico ±1σ para ese mismo MD.
Tarjetas por posición (si detectamos columna de posición): promedio histórico de cada posición para el MD de la sesión — referencia de a qué grupo pertenece cada jugador.
Tabla comparativa: z-score de cada valor de la sesión vs. el historial del propio jugador en el mismo MD. 🟢 |z|≤1 · 🟡 1<|z|≤2 · 🔴 |z|>2. Acción: revisar en rojo — esa sesión fue estadísticamente atípica para ese jugador en ese MD.