Dashboard de Clasificaciones Ciclistas

Sube un PDF, CSV o Excel y analiza la carrera por ciclista, categoría y equipo

cargando…
Dashboard Director
Introduce tu correo para acceder
🔒 Aviso de privacidad y protección de datos
👋 Bienvenido, Director
Cargando…

📊 Resumen general

Datos cargados

🚴 Próximas pruebas

🚀 Accesos directos

🎯 Centro de pendientes

💓 Pulso del equipo

🎯 Tu próximo objetivo

🏆 Top corredores de mi equipo

📅 Últimas carreras del historial

📝 Datos de la prueba

Nombre de la carrera *
Fecha *
🕓 Hora inicio (meteo)
Kilómetros
Velocidad media
Localidad
Tipo de prueba
▼

💡 Campos * son obligatorios para el histórico. El análisis es 100% local.

Filtros

Tip: pulsa una fila para analizar al ciclista.
⚙️ Opciones avanzadas

Clasificación filtrada

0 corredores mostrados · Tip: pulsa una fila para abrir el análisis individual
✏️Posición Dorsal Nombre Tiempo Diferencia Seg/km ℹ️ Categoría Pos. Cat. CCAA Equipo
Todavía no hay datos cargados.

👤 Análisis individual

Buscador de Ciclistas

Solo aparecen los equipos y ciclistas que han participado en esta prueba (incluidos los que no terminaron). Escribe el nombre o dorsal para ver su informe táctico, evolución histórica y duelos.

⚔️ Análisis Comparativo de Ciclistas

Selecciona equipo y ciclista en cada columna — se añaden automáticamente a la comparativa.

🧠 Dashboard de Inteligencia Tactica

Analisis automatico basado en los datos de carrera cargados
📊 Estado de mi equipo
—
Clasificacion relativa al resto de equipos
⚔️ Rival a batir
—
Equipo inmediatamente por delante de ti
🎯 Zona de ataque
—
Lo que necesitas para subir un puesto en el ranking

🎯 Plan tactico de mi equipo

Carga una clasificacion y configura tu equipo para ver el plan tactico.

⚠️ Duelos directos a vigilar

Rivales a 5 posiciones de los tuyos

Carga una clasificacion para ver los duelos.

🚨 Alertas de Marcaje

Desequilibrios tácticos detectados

Carga una clasificación para ver las alertas de marcaje.

📋 Informe de Director

Resumen listo para copiar y pegar en WhatsApp

Carga una clasificación para generar el informe.

⚠️ Emergencia de Datos y Validación

🔗 Normalización de Nombres de Equipo

Detecta equipos con nombres similares dentro de la misma clasificación (ej: IKASCOLA AEL y IKASCOLA AEL 1,5). La unificación es solo para esta clasificación — no afecta a otras temporadas. Se comprueba también el historial de este año para sugerir el nombre canónico.

Carga una clasificación para detectar posibles duplicados.

👤 Corrección de Categoría por Ciclista

Detecta ciclistas que aparecen con distintas categorías en la misma temporada (ej: "CADETE" en una carrera y "CAD-2" en otra). Selecciona la categoría correcta para ese ciclista en esa temporada y se aplicará en todo el historial. No modifica Supabase — solo afecta a la visualización.

Pulsa "Escanear historial" para detectar inconsistencias de categoría por ciclista.

📈 Evolución y Seguimiento

Clasificación por equipos

Carga una clasificación para calcular la clasificación por equipos.

Resumen por equipos

Corredores clasificados por equipo

Participación total
Gráfico de barras con el número de ciclistas clasificados por cada equipo.

Rendimiento por equipos

Clic en una barra para filtrar
Posición media por equipo (menor = mejor). La línea roja discontinua marca la media general de la carrera. La barra dorada es el equipo con mejor rendimiento y la verde es tu equipo.

Distribución por categorías

Clic para filtrar
Número de ciclistas por categoría en esta prueba. Haz clic en un sector para filtrar la vista completa.

Mapa de posiciones

Dorsal vs puesto
Cada punto es un ciclista. Pasa el ratón para ver nombre, equipo y tiempo. Los grises están fuera del filtro. Haz clic en un punto para ir a su análisis individual.

Top por equipos

Top 10   Top 20   Top 50  ·  Corredores de cada equipo dentro de cada corte. Cambia a % Efectividad para comparar equipos con distinto número de participantes.

Rendimiento por categoría

Top 10   11–20   21–50   51+  ·  Reparto de cada categoría por franjas de puesto. Cambia a % del total para ver la proporción dentro de cada categoría. Clic en una barra para filtrar.

📝 Notas Tácticas de Carrera

🏁 Top 10 General

Dominio en el Top 10

posiciones por equipo

Análisis de grupos y distancias

⭐ Mi equipo en el Top 10

Histórico

El histórico está disponible desde cualquier dispositivo.

🏆 Power Ranking de Temporada

⏳ Cargando Power Ranking...
📌 Puntuación de Regularidad = suma de todos los puestos en la temporada (menor es mejor). Los equipos se ordenan por la suma de los 3 mejores corredores. Haz clic en un equipo para ver su historial en Tabla, o en un ciclista para ver su trayectoria.

📉 Tendencias de Temporada

Selecciona al menos un ciclista para ver su evolución carrera a carrera.

📐 Posición: resultado real en cada prueba (eje Y invertido — arriba = mejor). ✕ = No Participó. ---- = Media acumulada. Ranking equipo: suma top-3 ciclistas por carrera.

🏆 Selección Autonómica VLC

⏳ Cargando...
⏳ Cargando...
⏳ Cargando...
⏳ Cargando...
⏳ Cargando...
⏳ Cargando...
🕸️ Análisis de la convocatoria
Perfil comparativo (radar)
⏳ Cargando datos...

🔮 Simulador de Carreras

Predicción de la próxima prueba basada en histórico cruzado con la startlist
🔮

Bienvenido al Simulador de Carreras

Selecciona arriba una prueba que tenga lista de inscritos guardada para empezar el análisis.

🧠 Motor Estadístico — Pesos y Fórmulas
🤖 Fase 1 — Árbol de Regresión (Pos. IA) · v5 — Tier 2 (calidad pelotón)
pos = (0.60·recentQ·decay + 0.40·mediaQ) × cadetFactor × relPenalty × fatigueFactor × specialtyFactor
· 📊 Calidad del pelotón (Tier 2): cada carrera del histórico recibe un peso según el nivel medio de sus participantes. Un 5º en carrera fuerte (qualityIndex bajo) cuenta más que un 5º en carrera floja. Pesos acotados a [0.5, 1.5]
· recentDecay: pesos {0.50, 0.30, 0.20} sobre las 3 últimas combinados con pesos de calidad. La última carrera pesa 2.5× más que la 3ª
· cadetFactor: 1er año con ≥3 carreras ×1.00 (su historial ya cubre) · 1er año novato (<3) ×1.05 · 2º año novato ×1.03 · resto cadete ×1.00–1.05 según experiencia
· relPenalty: rel ≥75% ×1.00 · ≥50% ×1.03 · ≥25% ×1.06 · <25% ×1.10
· fatigueFactor 🥵: ≥4 carreras en 7 días ×1.08 · ≥3 ×1.04 · ≥6 en 14 días ×1.03
· specialtyFactor 🎯: ±5% si el corredor es especialista REAL del tipo (σ baja en ≥3 carreras del tipo) o si rinde claramente peor en este tipo
· Filtros: las etapas de vuelta y contrarrelojes se excluyen del histórico
· Rama B: si no hay historial → media del club (rango ±22%)
· Rama C: intervalo σ × {0.6, 0.8, 1.4} según fiabilidad
🎯 Fase 2 — Bernoulli con suavizado (Top 10)
P = (top10Hits + 1) / (carreras + 2)
· Laplace smoothing α=β=1 — evita 0% y 100% extremos con pocas carreras
· Ajuste por dificultad: ×(1 − dif·0.5/100) · dif=50 → ×0.75 · dif=100 → ×0.50
🥇🚨 Fase 3 — Regresión Logística (Podio / Riesgo)
P = σ(z) = 1 / (1 + e−z)
· zpodio = −1.0 − 0.30·(pos−1) + 1.00·trend + 1.50·relN
· zcorte = −3.0 + 0.05·(pos−1) − 1.00·trend − 2.50·relN + 0.040·dif
· trend: ↑=+1, →=0, ↓=−1 · relN = fiabilidad/100
· Candidato podio si ≥60% 🥇 · Alerta de corte si >50% ⚠️

💡 Si no ves tu prueba en la lista, súbele la startlist desde el menú Historial → botón ➕ Añadir startlist.

🧪 Backtest histórico · Precisión del modelo

❓ ¿Qué es el backtest y cómo aprende el sistema con esto?

🧪 ¿Qué hace este botón?

Recorre TODAS tus carreras ya disputadas con resultados, y para cada una hace lo siguiente:

  1. "Olvida" la propia carrera y todas las posteriores (simula que vivimos en el día anterior a esa carrera)
  2. Lanza la predicción IA con solo los datos disponibles en ese momento del pasado
  3. Compara la predicción con el resultado real que conocemos
  4. Acumula los errores y aciertos

Eso es predicción honesta: sin trampa, sin "ver el futuro". Los números que verás son la precisión real del modelo.

📊 ¿Qué significan los 4 KPIs?

  • 📊 Carreras simuladas: cuántas pasaron el filtro (mínimo 3 carreras previas en el histórico)
  • 📏 Error medio (MAE): de cuántos puestos nos equivocamos de media. ±5 es excelente. ±10 es razonable. ±20 es malo. La mediana y el p90 te dicen si los errores se concentran o están repartidos
  • 🎯 Top 10 (F1-score): combina precisión (de los predichos Top 10, cuántos acertamos) y recall (de los Top 10 reales, cuántos predijimos). Un F1 del 70% es muy bueno
  • 🥇 Podio (F1-score): lo mismo pero para el podio (Top 3). Es más difícil porque hay solo 3 plazas

🩺 Los diagnósticos automáticos

Después de los KPIs aparecen 1-4 mensajes de colores con la interpretación:

  • 🟢 verde: el modelo funciona bien
  • 🟡 amarillo: aviso menor — el modelo es razonable pero hay un sesgo
  • 🔴 rojo: problema serio — error medio alto o métricas pobres

Los avisos pueden incluir cosas como "el modelo infraestima de media 5 puestos" → pista para ajustar pesos.

🤖 ¿Y cómo aprende el sistema realmente?

Por ahora el backtest solo te enseña la precisión. El siguiente paso (no implementado todavía) sería usar esos datos para optimizar los pesos automáticamente: probar variantes del peso 60/40 (50/50, 70/30, 80/20), probar factores cadete (1.10, 1.15, 1.20, 1.25), etc., y quedarnos con la combinación que minimiza el error medio.

Eso es ML básico: buscar los parámetros que mejor encajan con los datos históricos. Cuando tengamos suficientes carreras (idealmente >100) podemos hacerlo de forma robusta.

📋 Ejemplos / Cómo interpretarlos

Caso bueno: MAE ±6, F1 Top 10 = 75% → el modelo predice los Top 10 con muy buena precisión y solo se equivoca ±6 puestos de media. Confianza alta.
Caso típico de ciclismo base: MAE ±10-12, F1 Top 10 = 45-55% → razonable. El ciclismo es muy variable (pinchazos, cortes, días malos), perfecto es imposible. Si los Top 10 que dice clavados son acertados >50% del tiempo, vale.
Caso a investigar: MAE ±18, sesgo +6 (siempre infraestima 6 puestos) → algo está mal. Probablemente el factor cadete o la penalización por fiabilidad son demasiado conservadores. Hay que afinar.
💡 Importante: El backtest excluye automáticamente carreras donde tenemos <3 datos previos por corredor (no se puede predecir sin histórico). Si te aparece "0 carreras simuladas" es porque no hay suficiente histórico acumulado. Cuando subas más resultados, la simulación tendrá más muestras y será más fiable.

Pulsa "🧪 Lanzar backtest histórico" para empezar.
Simulará cada una de tus carreras pasadas y te dirá cómo de buenas son las predicciones del modelo.

🏅 Resumen de Temporada

🏅

Resumen de Temporada

Cargando estadísticas...

✅ Disponibilidad semanal

Cargando próxima carrera…

📻 Panel de Radio Vuelta

🚀 Control de fuga actual
🔻 Se van quedando (descolgados)
🏆 Ataques del día
🚩 Registro de pasos
📓 Diario de carrera

🔬 Laboratorio de características

🏷️ Etiquetar tipo de cada carrera (afina la especialización)
🕸️ Ranking de fuerza (Bradley‑Terry)
Rating de fuerza a partir del grafo de duelos (quién acabó por delante de quién). Es el modelo que mejor predice con tus datos. Incluye su validación honesta.
👥 Tipos de corredor (agrupación automática)
Agrupa a los corredores de esta categoría por perfil de rendimiento (nivel, regularidad y techo). Es orientativo y se afina al añadir más carreras.
🧠 Modelo de predicción (GLM) — experimental
Entrena un modelo estadístico con las características de los corredores y lo valida de forma honesta (cada carrera se predice solo con las anteriores). Solo se activará si supera al método actual. No afecta a la predicción en uso.
🔧 Herramienta de admin — Sincronización climática

Rellena el clima histórico (temperatura, viento) de las carreras pasadas que aún no lo tengan. Necesario para activar la Especialización Climática del simulador. Usa Open-Meteo Archive con 1.5 s entre llamadas (no bloqueante).

🏛️
Lector Dinámico — Federación Ciclismo CV
Consulta el calendario oficial de la FCCV y añade pruebas a tu planificación
▾

📅 Calendario de carreras

—
Carrera disputada Carrera planificada Concentración Entrenamiento Hoy
📋 Informe de Plantilla
Selecciona cualquier equipo del historial para generar su informe completo
🏆
Challenge Comunitat Valenciana
Clasificación general acumulada · Sistema oficial de puntuación FCCV

📊 Clasificación general

❓ ¿Cómo funciona la Challenge y cómo se calculan los puntos?

🏆 ¿Qué es la Challenge Comunitat Valenciana?

Es la clasificación oficial de la FCCV que va acumulando puntos de las pruebas que se marcan como puntuables a lo largo de la temporada. Cuando creas o editas una carrera, marcas el check "Challenge CV" para que cuente. Solo se suman los puntos de las pruebas marcadas.

📌 Sistema oficial de puntuación

  • 1º → 45 puntos · 2º → 42 · 3º → 40 · 4º → 38 · 5º → 36
  • Del 6º al 39º → baja 1 punto por puesto (6º=35, 7º=34, ..., 39º=2)
  • Del 40º en adelante → 1 punto fijo
  • DNF / no terminó → 0 puntos

⚖️ Criterio de desempate (en cascada)

  1. Mismos puntos totales? → mira el conteo de primeros puestos. Gana quien tenga más.
  2. Mismo nº de 1ºs? → mira los segundos. Y así sucesivamente.
  3. TODO empatado? → mejor posición en la última prueba puntuable de la Challenge.
  4. Si tampoco así se rompe → empate técnico.

La aplicación lo hace automáticamente. En el ranking verás una etiqueta desempate junto a los corredores que han necesitado uno de los criterios secundarios, indicando cuál se aplicó.

🔍 Verificar el detalle de un corredor

Haz click sobre el nombre de cualquier corredor para abrir un modal con TODAS las pruebas Challenge en las que ha sumado y los puntos exactos de cada una. Útil para validar el ranking si algo te chirría.

🗺️ Equipos y Comunidad Autónoma

Listado de todos los equipos detectados en tu histórico con la CCAA dominante de cada uno. ⚠️ Conflicto = el mismo equipo aparece con CCAA distintas en diferentes pruebas. ❌ Sin CCAA = el equipo no tiene CCAA asignada en ninguna prueba. Pulsa Aplicar para propagar la CCAA elegida a TODAS las pruebas donde aparece ese equipo (en todos los años).
🔧 Corregir comunidades de los CORREDORES (para el ranking por comunidades)
Distinto de la tabla de abajo (que es por equipos). Esto unifica los códigos de comunidad de cada corredor que quedaron sin traducir (EUS→País Vasco, CNR→Canarias, IBA→Islas Baleares, C.Foral Navarra→Navarra, Belgica→Bélgica…), que es lo que hace que en el ranking por Comunidades de la web salgan comunidades repetidas. Es seguro y solo hay que pulsarlo una vez.

🎽 Categorías por ciclista

Listado de todos los ciclistas que aparecen en las pruebas del año seleccionado en los Filtros Globales. La categoría puede cambiar de año (cadete-1 con 15 años, cadete-2 con 16, juvenil con 17), por eso el filtro es por año. ⚠️ Conflicto = el mismo corredor aparece con categorías distintas en distintas pruebas del año. ❌ Sin categoría = no tiene categoría asignada en ninguna prueba. Pulsa Aplicar para propagar la categoría elegida a TODAS las pruebas del año.

📑 Documentos FCCV

Gestor de Autorización de desplazamiento y Boletín de inscripción (Anexo VII)
⚙️ Datos del firmante (Autorización desplazamiento)
ℹ️ Se rellena automáticamente en cada documento hasta que lo cambies aquí.
📥 Importar listados Excel
Sube los tres ficheros oficiales de la FCCV. Cada uno se almacena en tu navegador (localStorage, sin enviar nada a Internet).
Formato esperado: mismas columnas que los Excel oficiales (DNI, Nombre, Apellidos, UCIID, Fecha nacimiento, Telefono, Email, Provincia, Localidad, Domicilio, CP, Temporada, Cat. Licencia, Especialidad, Equipo).
🪪 Licencias almacenadas
⚙️

Panel de Control

Haz clic en tu perfil o en el botón del menú para abrir el panel.

0 ciclistas seleccionados