Los usuarios de Grab, la aplicación de transporte más popular de Filipinas, están en manos de un algoritmo opaco que calcula los precios del servicio.
Cuando reservan un trayecto, el importe a pagar por la distancia recorrida y el tiempo de viaje suele ir acompañado de un recargo que, según la empresa, "refleja las condiciones del mercado en tiempo real" y permite equilibrar la oferta y la demanda entre conductores y usuarios. Grab afirma que, para calcular el precio final, el algoritmo tiene en cuenta factores como el tráfico, la ubicación y el número de conductores disponibles, pero no ofrece explicaciones claras sobre cuándo se aplica el recargo y cómo se calcula exactamente.
Nuestra investigación, llevada a cabo por el Centro Filipino de Periodismo de Investigación (PCIJ) en colaboración con la AI Accountability Network del Centro Pulitzer, reveló que este recargo siempre está vigente, independientemente de la hora y el lugar en que se reserve el viaje, y que pagar por viajes más caros no se traduce necesariamente en tiempos de espera más cortos. Llegamos a esta conclusión tras reunir y analizar miles de datos.
El desafío de obtener los datos
Uno de los principales problemas a la hora de informar sobre algoritmos patentados es la opacidad. El algoritmo de precios de Grab es un ejemplo clásico de la llamada "caja negra": el sistema recibe un input, en este caso los lugares de recogida y destino seleccionados por el usuario, y luego devuelve un output, que es el precio a pagar.
Entre el input y el output hay una serie de cálculos en los que intervienen una serie de variables inaccesibles para los usuarios.
Como no podemos ver lo que ocurre dentro de la caja, trabajamos sistemáticamente sobre los inputs y outputs para producir esta historia. Elegimos un conjunto de datos de entrada (pares de puntos de recogida y destino) y los mantuvimos constantes a lo largo del tiempo, para analizar qué ocurría con los datos de salida.
Durante una semana, reunimos datos sobre los precios de Grab a lo largo del día en 10 rutas de Gran Manila. Lo hicimos mediante dos vías: manualmente, desde la propia aplicación, simulando reservar un viaje; y automáticamente, a través de una API pública de Grab llamada Farefeed, disponible en la herramienta de consulta de tarifas online de la empresa. Una API, o interfaz de programación de aplicaciones, permite interactuar más directamente con el código y los datos de un programa, eludiendo la interfaz del usuario, y en general permite extraer datos de forma sistemática.
En total, recogimos 1.328 puntos de datos de la aplicación y 6.720 de la API. El uso de dos fuentes distintas nos permitió complementar las limitaciones de cada método y disponer de diferentes variables para analizar los datos más a fondo.
Para explorar los datos que recolectamos, entra aquí.
Dos métodos de recolección de datos
Un equipo de 20 investigadores intentó reservar viajes en 10 rutas de Gran Manila cada hora, desde las 6 de la mañana hasta la medianoche, entre el 14 y el 20 de febrero de 2024. En cada intento de reserva, hicieron capturas de pantalla de la página de reservas de la aplicación con información sobre la tarifa de un GrabCar de cuatro plazas, la hora estimada de llegada al destino y la ruta sugerida.
Después de cada intento de reserva, también hicieron una captura de pantalla en Google Maps con la ruta sugerida automáticamente por Google. El objetivo era registrar el tiempo y la distancia recomendados por Google, ya que la aplicación no muestra la distancia.
Si la ruta predeterminada de Google Maps no coincidía con la de la aplicación, los investigadores replicaban la ruta de Grab en Google Maps y tomaban una segunda captura de pantalla. Esto era necesario para obtener la distancia estimada del viaje, un dato clave para desglosar la tarifa.
Los investigadores llevaron a cabo un simulacro del proceso para detectar deficiencias en la metodología y mejorarla antes de proceder a la recopilación real de datos.
Al mismo tiempo, creamos un script en Python para obtener datos de la API de consulta de tarifas de Grab para las mismas 10 rutas, pero cada 15 minutos, para obtener una mayor granularidad.
Cómo analizamos los datos
Luego de reunir los datos de ambas fuentes y verificar su consistencia, desglosamos las tarifas utilizando la matriz tarifaria aprobada por el gobierno.
Una vez desglosadas, pudimos comprobar que siempre había un recargo. Con la ayuda de especialistas en estadística de dos universidades locales, hicimos un análisis para determinar científicamente si el tiempo de espera para un viaje disminuye cuando el recargo es mayor.
Los resultados no mostraron una correlación significativa entre la tasa de incremento y los tiempos de espera. Esto contradice la hipótesis de que tarifas más altas incentivan a más conductores a salir a la calle, reduciendo así los tiempos de espera.
Lecciones sobre la investigación de algoritmos
- Aunque no podamos entrar en la caja negra de un algoritmo, podemos obtener información muy relevante si trabajamos sobre inputs y outputs. La clave está en diseñar una metodología de recolección sistemática de datos.
- Cuando se diseña un experimento de recolección manual de datos, es importante probarlo antes de llevar a cabo la recolección real. Las reuniones previas y el simulacro nos permitieron establecer una línea de base clara y coherente para trabajar con los datos, identificar los puntos débiles y mejorarlos.
- No se necesitan conocimientos avanzados de programación para auditar los resultados de un algoritmo: puede bastar con una recolección manual de datos bien hecha.
- Al auditar un algoritmo, piensa en otras fuentes de datos que puedan complementar la información que falta. En nuestro caso, por ejemplo, Google Maps nos permitió establecer la distancia estimada de los viajes, un dato que ni la API ni la aplicación de Grab proporcionaban.
- Si tienes muchos datos y variables que analizar y la relación entre ellos es compleja, la ayuda de un especialista en estadística te permitirá identificar patrones relevantes y además evitar hacer suposiciones precipitadas. También reforzará tus conclusiones.
- Cuando se investiga un tema técnico, como un algoritmo que calcula tarifas, es clave incluir también una perspectiva humana. Los testimonios de usuarios y conductores nos permitieron mostrar el impacto de estos sistemas en las personas y la verdadera magnitud del problema.
Esta historia fue originalmente publicada por el Centro Pulitzer. Fue editada y traducida por IJNet con permiso.
Fotio de Marfil Graganza Aquino via Pexels.