El pitch control es el modelo que estima, para cada punto del campo y en cada instante, la probabilidad de que un equipo controle el balón si este llegara allí. Se calcula con datos de tracking, las coordenadas de jugadores y balón registradas varias veces por segundo, a partir del tiempo que tarda cada futbolista en llegar.
En Sports Data Campus lo consideramos una de las piezas más útiles del Big Data deportivo, y aquí lo desarrollamos desde la fórmula y el código en Python hasta su validación táctica ¿Empezamos?
Cómo se calcula el pitch control en fútbol, del tracking al código Python
Calcular el pitch control no consiste en pintar un mapa de calor, sino en encadenar decisiones de modelado que condicionan el resultado. Primero hay que entender qué mide y en qué se diferencia de la simple cercanía, después preparar unos datos de tracking fiables, luego traducir el movimiento de cada jugador a tiempos de llegada y, por último, comprobar que el mapa coincide con lo que ocurre en el césped.
¿Qué es el pitch control y por qué supera al diagrama de Voronoi?
La manera más habitual de repartir el campo fue durante años el diagrama de Voronoi, que divide el terreno en regiones según el jugador más cercano a cada punto. Su límite aparece en cualquier transición, porque un central parado y un extremo lanzado a máxima velocidad no llegan igual a un mismo metro libre.
El pitch control corrige esa lectura midiendo tiempo y no distancia. William Spearman, que llegó al departamento de datos del Liverpool en 2018, lo define como «la probabilidad de que un jugador pueda controlar el balón si estuviera en esa ubicación«. El tracking de la Premier League con el que trabajaba el club registraba datos 25 veces por segundo, cerca de 1,5 millones de puntos por partido, según explicó Tim Waskett, también de su departamento de datos.
Desde 2018 conviven dos modelos de referencia, ambos presentados en la MIT Sloan Sports Analytics Conference. El cuadro resume en qué se diferencian del Voronoi, sin incluir sus variantes posteriores.
Modelos de pitch control frente al diagrama de Voronoi
| Modelo | Cómo reparte el espacio | Qué tiene en cuenta | Uso más habitual |
|---|---|---|---|
| Diagrama de Voronoi | Asigna cada punto al jugador más cercano | Solo la posición | Lectura rápida de la ocupación |
| Spearman (2018) | Probabilidad según el tiempo de llegada de cada jugador | Velocidad, tiempo de reacción, vuelo del balón e incertidumbre | Valorar pases y recepciones |
| Fernández y Bornn (2018) | Influencia de cada jugador como una distribución de probabilidad que se estira en la dirección de carrera | Posición, velocidad y distancia al balón | Medir la ocupación y la creación de espacios |
La elección depende de la pregunta táctica, ya que el modelo de Spearman encaja mejor cuando interesa evaluar un pase concreto, mientras que el de Javier Fernández y Luke Bornn describe bien cómo un equipo ocupa y genera espacios. Ambos dependen, eso sí, de la calidad de los datos de entrada.
Qué datos de tracking necesitas y cómo prepararlos
El pitch control es tan fiable como el tracking que lo alimenta, así que antes de cualquier fórmula conviene comprobar que los datos cumplen estos requisitos mínimos:
- Posiciones de los 22 jugadores y del balón, con coordenadas x e y en cada fotograma registrado.
- Frecuencia de muestreo de al menos 10 Hz, es decir, 10 registros por segundo o más, aunque lo habitual en el tracking óptico es 25.
- Un sistema de coordenadas único, en metros y con el mismo sentido de ataque en las dos partes.
- Velocidades suavizadas, porque derivar posiciones con ruido dispara valores imposibles.
- Metadatos del partido, con equipo, demarcación y minutos jugados de cada futbolista.
La limpieza consiste después en descartar saltos imposibles, interpolar los huecos cortos y sincronizar el balón con los jugadores. Para las velocidades es habitual el filtro Savitzky-Golay, que ajusta un polinomio en una ventana móvil y suaviza la señal sin aplanar los sprints.
Para practicar con datos abiertos, Metrica Sports publica partidos de muestra a 25 Hz, SkillCorner ofrece 10 partidos de la A-League australiana 2024/25 a 10 Hz a partir de la señal de televisión y PFF FC da acceso, previo registro, a los 64 partidos del Mundial 2022. La librería kloppy, que unifica formatos de distintos proveedores, los carga en pocas líneas.
import numpy as np
from kloppy import metrica
from scipy.signal import savgol_filter
# Metrica, en metros
ds = metrica.load_open_data(match_id=1, coordinates="secondspectrum")
ds = ds.transform(to_orientation="STATIC_HOME_AWAY") # un solo sentido de ataque
df = ds.to_df()
fps = ds.metadata.frame_rate
for p in [c[:-2] for c in df.columns if c.endswith("_x") and c != "ball_x"]:
x, y = df[f"{p}_x"].interpolate(), df[f"{p}_y"].interpolate()
vx = savgol_filter(x, 7, 1, deriv=1, mode="nearest") * fps
vy = savgol_filter(y, 7, 1, deriv=1, mode="nearest") * fps
pico = np.hypot(vx, vy) > 12 # descarta picos imposibles
df[f"{p}_vx"] = np.where(pico, np.nan, vx)
df[f"{p}_vy"] = np.where(pico, np.nan, vy)
Con las velocidades listas, el siguiente paso es calcular los tiempos de llegada.
Cómo calcular el pitch control paso a paso, fórmula y código
El cálculo arranca con el tiempo que tarda cada jugador en llegar a cada punto del campo. El modelo de Spearman supone que el futbolista mantiene su carrera durante el tiempo de reacción y después corre en línea recta a velocidad máxima hacia ese punto.
τi = tr + ‖r − (pi + vi · tr)‖ / vmáx
Aquí r es el punto del campo, pᵢ y vᵢ la posición y la velocidad del jugador, tᵣ el tiempo de reacción y vₘₐₓ su velocidad máxima. La implementación de Laurie Shaw para Friends of Tracking, la comunidad divulgativa que impulsó, entre otros, David Sumpter, usa 0,7 segundos de reacción y 5 m/s de velocidad máxima.
Luego se compara el mejor tiempo de cada equipo y su diferencia se convierte en probabilidad con una función logística, cuya pendiente β depende de la incertidumbre σ, fijada en 0,45 segundos.
PClocal = 1 / (1 + e−β (τvisitante − τlocal))
con β = π / (√3 · σ)
Es una versión simplificada, porque el modelo original suma la aportación de todos los jugadores e incorpora el vuelo del balón, pero se programa con NumPy y resuelve un fotograma entero de una sola vez.
import numpy as np
REACCION, VMAX, SIGMA = 0.7, 5.0, 0.45
def tiempo_llegada(pos, vel, rejilla):
p = pos + vel * REACCION # dónde estará tras reaccionar
d = np.linalg.norm(rejilla[:, None] - p[None], axis=2)
return REACCION + d / VMAX
def pitch_control(pos_loc, vel_loc, pos_vis, vel_vis, rejilla):
t_loc = tiempo_llegada(pos_loc, vel_loc, rejilla).min(axis=1)
t_vis = tiempo_llegada(pos_vis, vel_vis, rejilla).min(axis=1)
beta = np.pi / (np.sqrt(3) * SIGMA)
return 1 / (1 + np.exp(-beta * (t_vis - t_loc)))
xs, ys = np.meshgrid(np.arange(-52.5, 53, 1), np.arange(-34, 35, 1))
rejilla = np.column_stack([xs.ravel(), ys.ravel()])
Un 0,8 equivale a un 80 % de probabilidad de que el local controle ese punto.
Cómo validar el pitch control y llevarlo al análisis táctico
Un mapa de pitch control solo es útil si supera una validación antes de llegar al cuerpo técnico. Conviene automatizar estas comprobaciones mínimas en cualquier pipeline, la cadena de procesos que va del dato bruto al informe:
- Coherencia numérica: En cada punto, la probabilidad del local y la del visitante deben sumar 1.
- Simetría: Si se intercambian los equipos, el mapa debe invertirse por completo.
- Sensibilidad: Variar un 10 % la velocidad máxima o el tiempo de reacción no debería cambiar la lectura general del mapa.
- Calibración: En los pases hacia zonas con un 70 % de control, el atacante debería recibir en torno al 70 % de las veces, algo que muestra un diagrama de fiabilidad.
- Contraste con vídeo: Revisar transiciones y salidas de presión para confirmar que el mapa se mueve con la jugada.
Superados esos filtros, el pitch control se convierte en una herramienta táctica. Permite medir si la presión cierra los pasillos interiores o solo empuja al rival hacia la banda, detectar bolsillos entre líneas que el atacante alcanza antes que su defensor y valorar desmarques que no reciben el balón pero arrastran al central. Así complementa métricas de eventos como VAEP, que solo valoran lo que ocurre con balón, y añade una capa espacial al scouting con datos.
Sus límites también deben quedar por escrito, porque el modelo no conoce la orientación corporal ni sabe si una línea de pase está bloqueada. Cada informe debería indicar la fuente del tracking, la frecuencia de muestreo y los parámetros utilizados.
Llegar hasta aquí exige combinar programación, análisis de datos y lectura del juego, el mismo cruce de disciplinas que reúne el Máster en Big Data Deportivo, con módulos de análisis de datos con R y Python y de análisis individual, colectivo y del rival ¿Te animas a convertir el tracking en decisiones?
Rellena el siguiente formulario para obtener información del Máster en Big Data Deportivo y aprende a transformar datos de rendimiento y juego en decisiones reales
Preguntas frecuentes sobre el pitch control
¿En qué se diferencia el pitch control del xT y del EPV?
El pitch control indica qué equipo controlaría cada punto, pero no cuánto vale ese punto. El Expected Threat (xT), que popularizó Karun Singh en 2018, valora cada zona con datos de eventos. El EPV (valor esperado de la posesión) de Fernández, Bornn y Cervone usa tracking para estimar en cada instante la probabilidad de marcar o encajar el siguiente gol. Por eso se combinan a menudo, como hace Spearman al multiplicar el pitch control por la probabilidad de gol para anticipar de dónde saldrá el próximo disparo.
¿Se puede calcular el pitch control sin datos de tracking?
Solo de manera aproximada, porque los datos de eventos no registran la posición de todos los jugadores. StatsBomb 360 añade en cada acción una instantánea con los futbolistas que aparecen en la imagen y liberó gratis la Eurocopa 2020. Como esa foto no incluye velocidades, permite un diagrama de Voronoi o un pitch control estático, que supone a todos los jugadores parados, pero no uno que tenga en cuenta cómo se mueven.
¿Qué librerías de Python incluyen modelos de pitch control?
Una de las implementaciones más usadas del modelo de Spearman es el repositorio LaurieOnTracking, que Laurie Shaw publicó para Friends of Tracking. La librería databallpy incorpora el modelo de Fernández y Bornn en su módulo de ocupación del espacio, con una salida de pitch control entre 0 y 1. Por su parte, kloppy estandariza el tracking de distintos proveedores antes del cálculo.
¿Se usa el pitch control en otros deportes?
Sí, con adaptaciones en otros deportes de invasión que disponen de tracking. En la NFL, el sistema Next Gen Stats registra la posición de los 22 jugadores diez veces por segundo, y varios finalistas del Big Data Bowl 2020, dedicado a predecir las yardas de las carreras, calcularon zonas de control del campo a partir de la posición y la velocidad de los jugadores. En baloncesto, Luke Bornn ya había usado el tracking óptico de la NBA para estimar el valor esperado de cada posesión junto a Daniel Cervone, Alexander D’Amour y Kirk Goldsberry.
