Ir al contenido

Risk Advisor

El Risk Advisor combina 10 indicadores por jugador en un score 0–100 con semáforo verde/amarillo/rojo y recomendación textual. Los indicadores cruzan carga GPS (ACWR distancia / HSR / sprint / HMLD), neuromuscular (Vmax%), wellness (Hooper, dolor), lesiones recientes, no-apto médico, dolor en fisio y ansiedad. En pro / enterprise la recomendación la redacta IA; en esencial es texto basado en reglas. Definiciones de cada sigla en el glosario.

  • Problema: los PFs cruzan ACWR, Hooper, dolor y lesiones a mano en planillas. CÉNIT lo hace en una sola vista con threshold configurables y snapshot diario para análisis post-lesión.
  • Casos de uso: semáforo del plantel antes de cada entrenamiento, bajada de carga argumentada al cuerpo técnico, análisis retrospectivo de qué indicador anticipó cada lesión.
  • Planes: módulo en todos. IA solo pro y enterprise; análisis post-lesión y ajuste de pesos también gated.
  • Diferenciador: pesos al consenso v1 #16 (Williams 2017, Drew/Finch 2016), thresholds dinámicos por org, snapshots diarios con retención larga.
  • /dashboard/riesgo — todos los roles del staff. Los roles hop, psi y dir adicionalmente ven indicadores mentales (ansiedad).
  • Sub-rutas /dashboard/riesgo/historial y /dashboard/riesgo/pesos documentadas en sus propias páginas.
  • Tabla principal — listado ordenado por score descendente, columnas con valor crudo + chip de nivel por indicador.
  • Detalle del jugador — drawer lateral con breakdown de los 10 indicadores, su contribución al score y la recomendación (getRecommendation).
  • Notificaciones automáticas — cuando un jugador pasa a rojo, se crea notifications para roles hop/dir/sc vía fan-out.

Settings → Riesgos. Todos los thresholds viven en organizations:

  • risk_acwr_min/max (default 0.80 / 1.30) y risk_acwr_warn_min/max (default 0.70 / 1.40). Aplican a las 4 ACWR (distancia, HSR, sprint, HMLD).
  • risk_hooper_ok / risk_hooper_warn (default 14 / 18).
  • risk_vmax_ok / risk_vmax_warn (default 90 / 80).
  • risk_pain_warn, risk_inj_warn, risk_physio_thr, risk_anxiety_thr.
  • acwr_methodrma (default, ventanas 7d/28d) o ewma (Williams 2017 opt-in, λ_acute=0.25, λ_chronic≈0.069).
  • ¿Por qué un jugador queda amarillo sin estar lesionado? El default es amarillo cuando un indicador no tiene datos suficientes (ej. ACWR sin sesiones en 28 días, o Vmax con <5 sesiones). No es alerta — es transparencia sobre lo que no se puede medir.
  • ¿La IA falla? Si Anthropic timeoutea, cae a la recomendación estática y muestra el motivo del fallback (Sentry capturado).

Player surface: N/A. El Risk Advisor es staff-only. El jugador no ve su propio score — la decisión es deliberada (el dato es clínico, no autocontenido, y requiere lectura del cuerpo técnico).

Pesos al consenso v1 #16 (migration-103, HMLD agregado con peso 0.07):

IndicadorPeso
ACWR distancia0.18
ACWR HSR0.12
ACWR sprint0.08
ACWR HMLD0.07
Vmax%0.08
Hooper0.14
Dolor (zonas)0.08
Lesiones 6m0.07
No apto médico0.12
Dolor fisio0.07
Ansiedad0.06

Score por nivel: green=0, yellow=50, red=100. Total redondeado.

ACWR centralizada en RPCs SQL (get_acwr_batch distancia, get_acwr_hsr_batch migration-097, get_acwr_sprint_batch y get_acwr_hmld_batch migration-103). Todas en m/día, ratio acute_7d / chronic_28d.

Vmax%get_vmax_pct_batch (migration-104) con peak all-time, gate &lt;5 sesiones → NULL y decay veteranos (≥30 años → MAX últimos 12 meses para evitar penalizar lentitud crónica).

  • risk_snapshots — snapshot diario por jugador (ver subpágina Historial).
  • compute_daily_risk_snapshots() — RPC schedulada vía pg_cron diariamente a las 06:00 UTC.
  • getRecommendation() server action (app/dashboard/riesgo/actions.ts).
  • Wellness — Hooper + dolor.
  • Carga GPS — ACWR distancia / HSR / sprint / HMLD + Vmax%.
  • Médicomedical_consultations.fit_for_training=false.
  • Fisiophysio_sessions.pain_after.
  • Psicologíamental_records.anxiety_score (gated por rol).
  • Anthropic SDK — modelo claude-haiku-4-5-20251001, prompt en español, máx 200 tokens, 3 oraciones. Requiere ANTHROPIC_API_KEY.
  • Análisis post-lesión actual es retrospectivo manual (ver Pesos); el ajuste automático de pesos por org está pendiente.
  • ACWR EWMA es opt-in por org — falta UI en Settings para activarlo.
  • No hay export del breakdown a PDF — solo visible en pantalla.