Procesando…

⚽ LaLiga 2025-26

Sin datos

Ejecuta python build.py para cargar resultado.xlsx, luego npm run dev.

Sin datos

Ejecuta python build.py para cargar resultado.xlsx, luego npm run dev.

Sin datos

Ejecuta python build.py para cargar resultado.xlsx, luego npm run dev.

⚽ LaLiga 2025-26 · ELO + Simulador

Herramienta de análisis y simulación de la clasificación final de LaLiga basada en el sistema de puntuación ELO.

📊 Las tres pestañas

  • Dificultad — Muestra el índice de dificultad del calendario restante de cada equipo, calculado como la media del ELO compuesto de sus rivales pendientes.
  • ELO — Tabla ordenable con el ELO temporada, ELO forma y ELO compuesto de los 20 equipos, más el gráfico de evolución a lo largo de las jornadas.
  • Simulador — Permite fijar resultados para las jornadas pendientes y ver en tiempo real la clasificación final proyectada con zonas europeas y descenso.

📈 Sistema ELO

Cada equipo arranca en ELO 1000. Tras cada partido se ajustan los puntos según la probabilidad esperada y el resultado real:

E = 1 / (1 + 10^((ELO_rival − ELO_local − 50) / 400))

El factor K varía según la diferencia de goles:

DiferenciaFactor K
0 goles (empate)24 × 1.0 = 24
1 gol24 × 1.2 = 28.8
2 goles24 × 1.4 = 33.6
≥ 3 goles24 × 1.6 = 38.4

El equipo local recibe +50 puntos de ventaja en el cálculo de la probabilidad esperada.

⚖️ ELO Temporada vs ELO Forma

  • ELO Temporada — ELO acumulado desde el inicio de la temporada (J1 hasta hoy).
  • ELO Forma — ELO calculado solo con los últimos N partidos (ventana configurable, por defecto 6). Refleja el momento actual del equipo.
  • ELO Compuesto — Combinación ponderada: ELO_comp = ELO_temp × peso_temp + ELO_forma × peso_forma. Los sliders permiten ajustar el peso de cada componente (suman 100%).

🗓️ Índice de dificultad

Para cada equipo se calcula la media del ELO compuesto de todos sus rivales pendientes:

Índice = Σ ELO_rival / nº partidos restantes

El nivel se asigna comparando el índice del equipo con la media global:

Diferencia vs mediaNivel
< −50🟢 Muy fácil
−50 a −15🟡 Fácil
−15 a +15🟠 Medio
+15 a +50🔴 Difícil
> +50🔴 Muy difícil

🎮 Simulador

  • Para cada partido pendiente se sugiere automáticamente el resultado más probable según las probabilidades ELO.
  • Puedes modificar cualquier resultado manualmente con los botones 1 / X / 2.
  • Simular todo por ELO — Rellena todas las jornadas con el resultado más probable según ELO.
  • Reiniciar — Devuelve todos los partidos al estado original (sugerido por ELO).
  • La clasificación final se actualiza en tiempo real al cambiar cualquier resultado.
  • Las flechas ↑ ↓ = muestran el cambio respecto a la clasificación actual real.

🏆 Zonas competitivas

PuestosCompetición
1 – 4Champions League (UCL)
5 – 6Europa League (UEL)
7Conference League (UECL)
8 – 17Sin competición europea
18 – 20Descenso a Segunda

⚖️ Criterios de desempate

Cuando dos o más equipos tienen los mismos puntos, se aplica este orden:

  1. ¿Se han enfrentado ya todos entre sí (ida y vuelta)?
    • Sí → Clasificación particular: puntos en enfrentamientos directos entre esos equipos.
    • Si persiste empate → diferencia de goles en esos enfrentamientos.
    • Si persiste → goles a favor en esos enfrentamientos.
  2. No se han completado todos los cruces → Diferencia de goles general.
  3. Goles a favor generales.
  4. Orden alfabético (desempate estable).

El desempate particular se aplica de forma recursiva: si 3 equipos empatan en puntos particulares, el algoritmo se vuelve a ejecutar solo entre esos 3.

📂 Fuente de datos

  • Los datos provienen de resultado.xlsx (380 filas, una por partido).
  • Los partidos sin marcador (null) se consideran pendientes.
  • Para actualizar: añadir los resultados en el Excel y ejecutar python build.py.
  • También se puede cargar el Excel directamente en el navegador con el botón Cargar Excel.

📷 Exportar imagen

El botón Descargar imagen captura la vista activa como PNG a resolución 2×. El nombre del archivo incluye la pestaña y la fecha (laliga_elo_2026-04-16.png).