El Proyecto Iso es un motor de analítica automatizada diseñado específicamente para la gestión deportiva del Club Atlético Independiente. El sistema ingesta datos públicos de rendimiento, los normaliza y emite decisiones cuantitativas y accionables sobre el plantel, basándose en un algoritmo diseñado a medida para las reglas deportivas y de negocio del club.
El proyecto lleva el nombre de Iso en honor a Pedro Iso, uno de los presidentes más destacados y exitosos en la historia del Club Atlético Independiente. Durante sus mandatos, la institución vivió épocas doradas, consolidando su identidad como el "Rey de Copas". Nombrar a este motor analítico "Iso" representa la búsqueda de la excelencia deportiva, la estabilidad institucional a largo plazo y la gestión basada en datos, inspirada en los mayores éxitos históricos del club.
El sistema opera a través de un flujo continuo:
- Adquisición de Datos: Elude las protecciones básicas contra bots para extraer los datos del plantel y su rendimiento desde Transfermarkt.
- Consolidación de Entidades: Unifica múltiples fuentes de datos utilizando algoritmos de coincidencia de cadenas (fuzzy matching).
- Motor de Métricas: Normaliza las estadísticas para generar un
Performance_Score(Puntaje de Rendimiento) y asigna unPhysical_Risk_Score(Puntaje de Riesgo Físico) basado estrictamente en la edad biológica. - Clasificador de Decisiones: Evalúa a los jugadores frente a reglas estructurales del club (duración del contrato, límites de edad, potencial de reventa) para recomendar acciones precisas como "Renovar", "Vender (Hacer Caja)", o "Ciclo Cumplido (No Renovar)".
Este repositorio está configurado para ejecutarse automáticamente mediante GitHub Actions el primer día de cada mes a las 00:00 UTC. El reporte analítico resultante se integra continuamente de vuelta al repositorio en la carpeta output/.
Para ejecutar el pipeline localmente:
source venv/bin/activate
python main.pyEl motor algorítmico evalúa a los jugadores mediante dos métricas normalizadas:
Performance Score (Z-Score Estructurado): Calcula el impacto ponderado de un jugador basándose en minutos jugados y acciones defensivas u ofensivas.
Physical Risk Score (Penalización por Edad): Aplica una curva exponencial de riesgo físico sobre los jugadores mayores a 30 años.
La matriz de decisión se adhiere estrictamente a la siguiente lógica:
- Capitalización de Juveniles: Los jugadores menores de 25 años con altos minutos defensivos son catalogados para su venta con el fin de generar ingresos (Hacer Caja).
- Limitaciones a Veteranos: Los jugadores de 35 años o más con contratos por vencer son marcados para rescisión (Ciclo Cumplido), salvo que presenten métricas de rendimiento absolutas excepcionales (goleadores o jugadores clave).
- Gestión de Riesgo Contractual: Los contratos a largo plazo con bajos rendimientos se someten a evaluación inmediata para préstamo o rescisión.
Este proyecto está bajo la Licencia MIT - ver el archivo LICENSE para más detalles.
(Última actualización de la base de datos: 2026-06-21)
| Player | Position | Min | Performance_Score | Physical_Risk_Score | Contract_Type | Contract_Expires | Decision |
|---|---|---|---|---|---|---|---|
| Rodrigo Rey | Goalkeeper | 1620 | 100 | 95 | Owned | 31/12/2026 | Renovar (Corto Plazo) |
| Iván Marcone | Defensive Midfield | 1376 | 91.7 | 99 | Owned | 31/12/2026 | Renovar (Corto Plazo) |
| Gabriel Ávalos | Centre-Forward | 1582 | 91.7 | 90 | Owned | 31/12/2026 | Renovar (Corto Plazo) |
| Matías Abaldo | Left Winger | 1488 | 91.7 | 23 | Owned | 30/06/2026 | Renovar |
| Matías Abaldo | Left Winger | 0 | 91.7 | 18 | Owned | 30/06/2026 | Renovar |
| Santiago Arias | Right-Back | 1003 | 87.5 | 77 | Owned | 31/12/2027 | Mantener |
| Facundo Zabala | Left-Back | 1231 | 87.5 | 36 | Owned | 31/12/2028 | Mantener |
| Kevin Lomónaco | Centre-Back | 1369 | 81.2 | 22 | Owned | 31/12/2028 | Vender (Hacer Caja) |
| Ignacio Malcorra | Attacking Midfield | 1273 | 75 | 88 | Owned | 31/12/2026 | Ciclo Cumplido (No Renovar) |
| Maximiliano Gutiérrez | Right Winger | 539 | 75 | 13 | Owned | 31/12/2026 | Renovar |
| Santiago Montiel | Right Winger | 738 | 75 | 41 | Owned | 31/12/2028 | Mantener |
| Sebastián Valdez | Centre-Back | 1262 | 68.8 | 63 | Owned | 31/12/2027 | Mantener |
| Lautaro Millán | Attacking Midfield | 800 | 66.7 | 20 | Owned | 31/12/2027 | Mantener |
| Leonardo Godoy | Right-Back | 707 | 62.5 | 77 | Owned | 31/12/2028 | Mantener |
| Luciano Cabral | Attacking Midfield | 0 | 62.5 | 76 | Owned | 31/12/2027 | Mantener |
| Milton Valenzuela | Left-Back | 479 | 62.5 | 42 | Owned | 31/12/2026 | Vender urgente |
| Luciano Cabral | Attacking Midfield | 338 | 62.5 | 71 | Owned | 31/12/2027 | Mantener |
| Rodrigo Fernández Cedrés | Defensive Midfield | 474 | 58.3 | 77 | Owned | 31/12/2027 | Vender / Ceder |
| Ignacio Pussetto | Centre-Forward | 489 | 58.3 | 68 | Owned | 31/12/2027 | Vender / Ceder |
| Facundo Valdez | Left Winger | 197 | 58.3 | 17 | Owned | 31/12/2027 | Mantener / Evaluar |
| Juan Fedorco | Centre-Back | 704 | 56.2 | 47 | Owned | 31/12/2028 | Mantener / Evaluar |
| Mateo Pérez Curci | Attacking Midfield | 637 | 45.8 | 12 | Owned | 31/12/2028 | Mantener / Evaluar |
| Nicolás Freire | Centre-Back | 107 | 43.8 | 68 | Owned | 30/06/2026 | Echar (Dejar Libre) |
| Joaquín Blázquez | Goalkeeper | 90 | nan | 34 | Owned | 31/12/2026 | Sin Datos (Minutos insuficientes) |
| Lucas Lavagnino | Goalkeeper | 0 | nan | 21 | Owned | 31/12/2026 | Sin Datos (Minutos insuficientes) |
| Jonathan De Irastorza | Left-Back | 0 | nan | 16 | Owned | 31/12/2026 | Sin Datos (Minutos insuficientes) |
| Federico Mancuello | Central Midfield | 6 | nan | 85 | Owned | 30/06/2027 | Sin Datos (Minutos insuficientes) |
| Joel Medina | Central Midfield | 22 | nan | 21 | Owned | 31/12/2027 | Sin Datos (Minutos insuficientes) |