Todos los proyectos

Kickdex

Terminal de inteligencia futbolística. Sin login, sin anuncios, sin picks — solo los números.

Año
2026
Tipo
Proyecto individual
Datos
91.991 partidos · 11 ligas
Tests
109 con pytest

El problema

Casi todo lo que hay para analizar fútbol con datos está construido para venderte algo: pronósticos de pago, afiliación a casas de apuestas, o un muro de registro antes de enseñarte una sola cifra. El análisis viene envuelto en un producto que tiene otro interés.

Kickdex es lo contrario: la estadística en crudo, con el modelo a la vista y las limitaciones dichas en alto. Ni cuenta, ni anuncios, ni recomendaciones de apuesta.

Cómo funciona

  • Comparador y H2H. Enfrenta dos equipos y consulta su historial de enfrentamientos, forma reciente y datos de árbitros.
  • Scouting de jugadores sobre los datos históricos de las ligas cubiertas.
  • Detección de edge. Compara la probabilidad implícita de las cuotas de cierre con la que predice el modelo propio, y señala dónde se separan.
  • Modelos. Poisson bivariante y Dixon-Coles sobre 91.991 partidos históricos de 11 ligas europeas.

Arquitectura y stack

  • Static-first. El producto público es HTML, CSS y JavaScript modular sin bundler; Python es solo un pipeline por lotes que nunca se expone.
  • Sin backend. Los JSON se pre-generan y se sirven estáticos, así que no hay servidor que mantener ni que caiga.
  • Pipeline en Python con pandas, numpy y scipy sobre los CSV de football-data.co.uk y FBref; GitHub Actions lo ejecuta a diario y commitea los datos.
  • 109 tests con pytest y paridad numérica verificada entre el motor Python y el frontend JavaScript: las dos implementaciones tienen que dar el mismo número. El build de tendencias pasó de 74 s a 1,7 s.

Los edges van etiquetados como estimaciones, calculados sobre cuotas de cierre y no en vivo, y la calidad de los datos se declara liga por liga: hay divisiones donde el histórico es menos fiable y la interfaz lo dice en vez de esconderlo.

Resultado

Publicado y en funcionamiento, actualizándose solo cada día. La decisión de no vender pronósticos ni monetizar con apuestas fue deliberada desde el principio: el proyecto existe para leer los números, no para dirigirlos.