Historial de riesgo
La sub-página /dashboard/riesgo/historial muestra una tarjeta
por lesión registrada en los últimos 6 meses, con sparkline de los
14 días previos y los indicadores el día exacto de la lesión. Sirve
para validar retrospectivamente si el Risk Advisor anticipó cada
lesión y para auditar la calibración de los thresholds.
Para comercial
Sección titulada «Para comercial»- Problema: “¿el Risk Advisor sirve o es ruido?” — el club necesita ver casos reales con datos.
- Casos de uso: revisión semanal por el HoP, justificación al cuerpo técnico cuando se discute por qué se bajó la carga.
- Diferenciador: integra automáticamente lesiones + snapshots de riesgo, sin que el PF tenga que cruzar planillas.
Cómo lo usa el staff
Sección titulada «Cómo lo usa el staff»- Ruta
/dashboard/riesgo/historial. Disponible para roles que ya acceden al Risk Advisor. - Bajo plan
esencialla sub-página es visible pero con datos limitados — el análisis post-lesión guiado en pesos sigue gated.
Flujos paso a paso
Sección titulada «Flujos paso a paso»- Al entrar, el sistema busca todas las lesiones de los últimos 180 días (max 30 cards).
- Por cada lesión, traer los snapshots
risk_snapshotsdesdeinjury_date - 14dhastainjury_date. - Renderiza una card por lesión con:
- Header: nombre, fecha, parte del cuerpo, severidad.
- Sparkline SVG del score total en la ventana de 14 días. Punto rojo al final indica el día de la lesión.
- Chips KPI con valor + nivel (verde/amarillo/rojo) de ACWR distancia, ACWR HSR, Hooper, dolor y score total el día de la lesión.
- Badge “Alerta roja” si alguno de los indicadores arriba estaba en rojo ese día — útil para auditar verdaderos positivos.
Configuración relacionada
Sección titulada «Configuración relacionada»- La retención de
risk_snapshotsdepende del croncompute_daily_risk_snapshots(06:00 UTC). Si el cron no corrió, faltan días en el sparkline y aparece “Sin datos de riesgo para este período”.
FAQ / casos límite
Sección titulada «FAQ / casos límite»- Card sin sparkline: menos de 2 snapshots en la ventana — o bien el jugador estaba inactivo, o el cron no corrió, o la lesión es muy reciente sin historial GPS.
- Card sin chips: la lesión cayó en día sin snapshot — no se pudo capturar el estado exacto.
Cómo lo ve el jugador
Sección titulada «Cómo lo ve el jugador»Player surface: N/A. Staff-only.
Datos y métricas
Sección titulada «Datos y métricas»Tabla risk_snapshots
Sección titulada «Tabla risk_snapshots»Una fila por jugador por día. Columnas leídas en esta página:
snapshot_date,total_score— para la curva.acwr_dt_value/level,acwr_hsr_value/level— distancia y alta intensidad.hooper_value/level,pain_value/level— wellness.- Desde migration-103 se persisten también
acwr_sprint_value/levelyacwr_hmld_value/level(no rendereados en historial por ahora, sí en breakdown del score).
Cómo se generan los snapshots
Sección titulada «Cómo se generan los snapshots»compute_daily_risk_snapshots() (función SQL,
SECURITY DEFINER) corre por pg_cron a las 06:00 UTC. Itera
todos los jugadores activos, llama a las RPCs ACWR centralizadas
(distancia, HSR, sprint, HMLD), a get_vmax_pct_batch, y persiste
el snapshot del día con thresholds dinámicos leídos de
organizations.risk_*.
Integraciones
Sección titulada «Integraciones»- Lesiones (
injuries) — fuente de las cards. Solo lesiones coninjury_dateno nulo entran al análisis. - Risk Advisor principal — comparte tablas y RPCs.
Limitaciones / roadmap
Sección titulada «Limitaciones / roadmap»- Solo muestra lesiones, no enfermedades ni indisponibilidades por otra causa.
- No hay filtro por jugador, posición o tipo de lesión — vista agregada solamente.
- No exporta a PDF — vista pantalla únicamente.