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.