arrow_back Prototipos
Transparencia · Datos abiertos
En vivo

¿A cuántos lugares se puede volar desde cada ciudad?

Contar pasajeros es lo fácil. Lo difícil es medir conectividad: cuántos destinos tiene cada aeropuerto, qué rutas se abrieron, cuáles se cayeron y en manos de cuántas aerolíneas quedó todo.

FastAPI · SQLite · APScheduler · Junta de Aeronáutica Civil · :8026

Estado
En vivo · se actualiza solo
Fuente de datos
Junta de Aeronáutica Civil (JAC) · datos.gob.cl
Stack
FastAPI · SQLite · APScheduler
Cadencia
Chequeo semanal del origen (miércoles)
Cobertura
253.772 tramos · 510 meses · ene-1984 a jun-2026
Infraestructura
Raspberry Pi · $0 cloud

El problema

Las cifras de tráfico aéreo que circulan cuentan pasajeros, y eso responde una pregunta distinta de la que a mí me interesaba. Un aeropuerto con mucho tráfico hacia un solo destino está peor conectado que uno con la mitad de pasajeros y ocho destinos. La Junta de Aeronáutica Civil publica el dato que permite medir eso —tramo a tramo, mes a mes, desde enero de 1984—, pero en un formato con varias trampas que producen conclusiones falsas bastante convincentes. Quise construir la vista de conectividad y, de paso, dejar esas trampas a la vista.

Qué construí

Un monitor con cuarenta y dos años de tráfico aéreo desde y hacia Chile, abierto por ruta, aeropuerto, aerolínea y mercado.

  • check_circle La serie mensual completa desde 1984, con suma móvil de doce meses e índice anclado en 2019, que es lo único que deja leer la recuperación sin confundirla con el rebote desde el pozo de 2020.
  • check_circle El ranking de rutas y una matriz origen-destino direccional: la fila es de dónde sale el avión y la columna a dónde llega, así que no es simétrica.
  • check_circle Qué destinos se abrieron y cuáles se perdieron entre dos años cualesquiera, comparando siempre la misma ventana de meses.
  • check_circle La concentración del mercado por grupo empresarial con su índice HHI, y el factor de ocupación mensual —RPK sobre ASK—, que responde si volaron más personas porque hay más vuelos o porque los aviones van más llenos.
  • check_circle Corre 24/7 sobre una Raspberry Pi, con $0 de costo cloud. Apache hace de proxy hacia el servicio interno; la ingesta revisa el origen sola cada semana.

Cómo funciona

Los tres archivos de la fuente pesan 42 MB. A diferencia de otros monitores del laboratorio, acá se guarda el grano de origen completo: los 253.772 tramos entran tal cual, porque el archivo es chico y el grano —un tramo por mes, aerolínea y par de aeropuertos— es justo el que hace falta, así que agregarlo en la ingesta solo cerraría preguntas que la base responde gratis en SQL. La carga es atómica y, antes de descargar, compara el metadata_modified del origen: si la JAC no publicó nada nuevo, no baja los 42 MB. Una corrida completa demora 23 segundos en la Pi.

Decisiones técnicas

Cada fila describe el mismo vuelo dos veces

La JAC describe cada tramo con dos lógicas simultáneas: unas columnas traen el vuelo direccional realmente volado y otras el par de ciudades canónico, con una marca de ida o vuelta. Son dos vistas del mismo dato, no dos datos: sumarlas juntas duplica el tráfico. En el monitor los cortes por aeropuerto usan la primera y los cortes por ruta la segunda, y ninguna consulta las mezcla. De paso quedó verificado que en vuelos internacionales el origen de la ruta es siempre el aeropuerto chileno: cero filas lo incumplen en cuarenta y dos años.

En 2022 cambiaron los códigos, y eso parece una docena de rutas cerradas

Hasta 2021 la fuente usaba códigos de ciudad metropolitana; desde 2022 usa códigos de aeropuerto. BUE (Buenos Aires) deja de tener tráfico y aparecen AEP y EZE con el mismo tráfico. Igual con São Paulo, Río, París, Nueva York, Londres, Chicago y Houston. Mi primera versión reportaba 39 rutas nuevas y 36 caídas comparando 2019 con 2026; casi todas eran esa renumeración. Agrupando por la glosa de ciudad que escribe la propia JAC —sin inventar ninguna tabla de equivalencias— quedan 24 y 22, que sí son reales.

Cuando el nombre de la ciudad tampoco basta: desempatar por distancia

Un nivel más abajo aparece el mismo problema con el país: Malvinas figura como PSY con país I.Fakland/Malvinas hasta 2021 y como MPN con país Reino Unido desde 2007, así que se partía en un destino que nace y otro que muere. Pero ignorar el país tampoco sirve, porque hay homónimos de verdad: Los Ángeles es Chile y Estados Unidos, Santiago es Chile y España, Río Grande es Argentina y Brasil. El desempate lo da la distancia, que la JAC publica fija por par: desde Punta Arenas los dos códigos de Malvinas están a 900 km, mientras Los Ángeles de Chile está a 470 y el de California a 8.980. Mismo origen y misma distancia es el mismo lugar.

Dos archivos publican los mismos 48 meses

El histórico llega a 2025 y el corriente parte en 2022, así que se solapan cuatro años. La ingesta compara los dos mes a mes antes de unirlos —pasajeros y número de tramos— y guarda el resultado. Hoy los 48 meses coinciden exactamente; si algún día dejan de hacerlo, la discrepancia aparece en el dashboard en vez de convertirse en tráfico duplicado.

Qué encontré

  • hub El 85 % de los pasajeros nacionales pasa por Santiago. En 2025 hubo 39 rutas domésticas que no lo tocan —Calama-La Serena, Antofagasta-Concepción y otras—, pero entre las 39 movieron apenas el 14,6 % del tráfico interno.
  • trending_up El mercado se concentró y no ha vuelto atrás. El HHI tocó su mínimo en 1991 (1.941, con 27 grupos operando), saltó de 2.451 a 5.558 entre 2000 y 2002 —cuando la cuota del grupo LATAM pasó de 44 % a 74 %— y hoy está en 4.078. Sobre 2.500 se considera un mercado concentrado.
  • flight Tráfico alto no es lo mismo que estar bien conectado: Calama movió 1,37 millones de pasajeros con solo 5 destinos, mientras Concepción movió menos y tiene 14. Santiago tiene 97.
  • swap_vert Contra 2019, y comparando los mismos seis meses, se abrieron destinos a Cali, Medellín, Estambul y Brasilia, y se perdieron Roma, Quito, Frankfurt y Rosario. Dentro de Chile apareció Puerto Montt-Puerto Natales y se cayó Temuco-Punta Arenas.
  • airline_seat_recline_normal Los aviones van bastante más llenos que hace veinte años: el factor de ocupación de las aerolíneas chilenas pasó de rondar el 66 % en 2003 a 78 % en junio de 2026, con SKY subiendo desde 56 % hasta emparejar al resto.

Qué es real y qué es parcial

Es un prototipo, no una estadística oficial, y conviene ser preciso.

  • verified Real y fresco: es la serie con más profundidad y menos rezago que encontré en el catálogo de datos abiertos. La JAC publica mensualmente y al momento de escribir esto el último dato disponible era junio de 2026, cerrado el mes anterior.
  • schedule Parcial: el factor de ocupación solo cubre aerolíneas con origen legal en Chile. Es la cobertura de la fuente, no una decisión mía: las extranjeras aparecen en el conteo de pasajeros pero no en ese indicador.
  • help Lo que no inventé: el indicador de ocupación identifica a cada aerolínea por su código OACI, y la JAC no publica la tabla de equivalencias código → nombre. El monitor muestra el código tal cual en vez de adivinarlo.
  • build Lo que la fuente no permite: son tramos, no viajes —quien vuela Calama-Santiago-Lima aparece en dos tramos, y con conexión el origen de la fila no es el del viaje real—. Tampoco hay coordenadas de aeropuerto, así que no hay mapa: la matriz origen-destino hace ese trabajo sin fabricar geografía.
  • visibility A la vista: el dashboard termina con una sección que muestra la verificación del solape entre archivos, las 22 glosas de aeropuerto que la reconciliación tuvo que descartar y las ciudades que cambiaron de código. Incluido el caso más incómodo: CPO es Copiapó en 6.990 tramos y aparece rotulado Calama en dos tramos de 2014.

¿Y tu ciudad, a dónde vuela?

El monitor corre ahora mismo sobre la Pi y se actualiza solo.

Abrir el prototipo arrow_forward