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.
Para comercial
Sección titulada «Para comercial»- 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
proyenterprise; 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.
Cómo lo usa el staff
Sección titulada «Cómo lo usa el staff»Acceso y permisos
Sección titulada «Acceso y permisos»/dashboard/riesgo— todos los roles del staff. Los roleshop,psiydiradicionalmente ven indicadores mentales (ansiedad).- Sub-rutas
/dashboard/riesgo/historialy/dashboard/riesgo/pesosdocumentadas en sus propias páginas.
Flujos paso a paso
Sección titulada «Flujos paso a paso»- 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
notificationspara roleshop/dir/scvía fan-out.
Configuración relacionada
Sección titulada «Configuración relacionada»Settings → Riesgos. Todos los thresholds viven en organizations:
risk_acwr_min/max(default 0.80 / 1.30) yrisk_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_method—rma(default, ventanas 7d/28d) oewma(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).
Cómo lo ve el jugador
Sección titulada «Cómo lo ve el jugador»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).
Datos y métricas
Sección titulada «Datos y métricas»Fórmulas
Sección titulada «Fórmulas»Pesos al consenso v1 #16 (migration-103, HMLD agregado con peso 0.07):
| Indicador | Peso |
|---|---|
| ACWR distancia | 0.18 |
| ACWR HSR | 0.12 |
| ACWR sprint | 0.08 |
| ACWR HMLD | 0.07 |
| Vmax% | 0.08 |
| Hooper | 0.14 |
| Dolor (zonas) | 0.08 |
| Lesiones 6m | 0.07 |
| No apto médico | 0.12 |
| Dolor fisio | 0.07 |
| Ansiedad | 0.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 <5 sesiones → NULL y decay veteranos (≥30 años → MAX últimos
12 meses para evitar penalizar lentitud crónica).
Tablas DB / RPCs
Sección titulada «Tablas DB / RPCs»risk_snapshots— snapshot diario por jugador (ver subpágina Historial).compute_daily_risk_snapshots()— RPC schedulada víapg_crondiariamente a las 06:00 UTC.getRecommendation()server action (app/dashboard/riesgo/actions.ts).
Integraciones
Sección titulada «Integraciones»- Wellness — Hooper + dolor.
- Carga GPS — ACWR distancia / HSR / sprint / HMLD + Vmax%.
- Médico —
medical_consultations.fit_for_training=false. - Fisio —
physio_sessions.pain_after. - Psicología —
mental_records.anxiety_score(gated por rol). - Anthropic SDK — modelo
claude-haiku-4-5-20251001, prompt en español, máx 200 tokens, 3 oraciones. RequiereANTHROPIC_API_KEY.
Limitaciones / roadmap
Sección titulada «Limitaciones / roadmap»- 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.